技术背景
客户端在使用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)返回falseFloat或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接口。接下来我们会具体讲解这两种方法: