技术背景
客户端在使用HTTPS方式与Web服务器通信时有以下几个步骤,如图所示
现象
业务上需要通过axis基于HTTPS调用某服务商的WSO2 server
,但是服务方并没有提供证书,因此调用时会抛出异常如下:
Write Technology Record
客户端在使用HTTPS方式与Web服务器通信时有以下几个步骤,如图所示
业务上需要通过axis基于HTTPS调用某服务商的WSO2 server
,但是服务方并没有提供证书,因此调用时会抛出异常如下:
声明中具有一个或多个类型参数的类或者接口,称之为泛型(generic)类或接口。泛型类和泛型接口统称为泛型(generic type)
每个泛型都有一个原生态类型(raw type),即不带任何实际类型参数的泛型名称。例如:List<E>对应的原生态类型是List。
在类进行编译时编译器自动进行类型转换,并且在编译时告知是否插入类型错误的对象,并在运行时擦除它们的元素类型。
泛型相关术语
术语 | 实例 | 所在条目 |
---|---|---|
参数化的类型 | List<String> | 第23条 |
实际类型参数 | String | 第23条 |
泛型 | List<E> | 第23、26条 |
形式类型参数 | E | 第23条 |
无限制通配符类型 | List<?> | 第23条 |
原生态类型 | List | 第23条 |
有限制类型参数 | <E extends Number> | 第26条 |
递归类型参数 | <T extends Comparable<T>> | 第27条 |
有限制通配符类型 | List<? extends Number> | 第28条 |
泛型方法 | static <E> List<E> asList(E[] a) | 第27条 |
类型令牌 | String.class | 第29条 |
Serializable
接口有可能“泄漏”私有或包私有域final
域以外,公有类都不应该包含公有域。并且要确保公有静态final
域所引用的对象都是不可变的。null
引用值x
,x.equals(null)
返回false
Float
或Double
相等使用Float.compare
或者Double.compare
方法,因为存在Float.NaN/-0.0f
以及类似的double
常量电脑通过VPN访问公司服务器的内网时无法访问互联网
如果你电脑同时装了双网卡(包括无线网卡),且分别属于不直接相连的网段,此时如果在两个属性里都设了网关,Windows
只认其中一个导致两
个网段不能同时上。由于windows
系统不支持共用路由问题(server
级别除外),所以在同一时间不能同时上两个网。
Windows
也是有路由表的,只不过大家平时上网的时候大多数是用一块网卡,很少用到路由概念
如果是两块网卡,那就有两条默认路由,虽然两条默认路由的有着不同的Metric
(Metric即跃点数,值越小优先级越高),然而windows还没聪明到能够首辨认哪条路由到外网网关,哪条路由到内网网关。它所能做的就是找一条路由作为全部数据包的出口,至于选择的对错与否,那它就不再过问了。
那怎么办呢?办法就是人为操控windows的路由表,来告诉它,哪个网卡ip是走哪个网关。
批量插入时间价格表,如果某个套餐的某天的价格存在,则更新,不存在则插入
oracle 9i
及其以后版本支持的merge into
语句,用于实现insertOrUpdate
的功能mybatis
的动态SQL
语法foreach
循环插入,待插入的实体bean
的List
通过查询数据库dual
形成表,通过foreach
的separator
属性设置每次循环的隔离词为union
连接每次形成的表为一个总表java.util.List
中的实体的属性 采用union
拼接sql
,导致问题sql
过长,耗时,性能不好,且达到一定量会超出sql
长度限制,不推荐;
一般20
字段以内的表新增,数据2000
条以内可用,经过测试。
注意 union all
会把所有结果集拼接在一起,union
也会拼接所有结果,但会去除重复
Java
线程类也是一个object
类,它的实例都继承自java.lang.Thread
或其子类。
可以用如下方式用java
中创建一个线程:1
Tread thread = new Thread();
执行该线程可以调用该线程的start()
方法:1
thread.start();
在上面的例子中,我们并没有为线程编写运行代码,因此调用该方法后线程就终止了。
编写线程运行时执行的代码有两种方式:一种是创建Thread
子类的一个实例并重写run
方法,第二种是创建类的时候实现Runnable
接口。接下来我们会具体讲解这两种方法: