1:
List.class.isAssignableFrom(f.getType())
2:
java.beans.Introspector.getBeanInfo(Bean.class)
3:
AtomicLong AtomicInteger voliate
4:
Guava 瓜娃 Apache commons包
5:Runtime.getRuntime().addShutdownHook
6:
isDeamond Deamond线程
7:
ToStringBuilder.reflectionToString(this, ToStringStyle.MULTI_LINE_STYLE);8:9:LazyDynaBean懒惰动态的bean 可以动态添加属性值
Java 提供了很多服务提供者接口(Service Provider Interface,SPI),允许第三方为这些接口提供实现。常见的 SPI 有 JDBC、JCE、JNDI、JAXP 和 JBI 等。
10:identityHashCode 拿到一个对象的hash值,不同于hashCode()方法的是不论对象是否重载该方法都能够通过native函数identityHashCode拿到对象的hash值
11:
Collections.unmodifiableCollection
12:
在velocity中调用一个变量如student.name的话,velocity会按照以下方法去寻找name,查找有没有public的name域->查找有没有getName方法->查找有没有get(String)方法,如果有get(String)方法就直接把name作为string扔进去得到返回值。
13:Java and javax:java 是java j2sdk 中的类库,也就是Java Development kit 。 它提供也一些基础的东西,如io库、桌面程序的类库,如awt。集合库(如Collection、List、Map)。等这些最基础的类库
14:MD5加签原理,post请求的参数key和value拼接后+签名Key进行MD5计算,然后在请求中把这个MD5算出来的结果带到服务端,服务端接收到请求后,也把请求中的key和value拼接起来(不包含签名Key)和服务端存储的签名Key拼接,然后进行MD5计算,将计算结果和请求中带过来的那个计算结果进行比对,如果一样就说明是持有Key的发送发发送的请求,如果不一样,就是非法请求,注意拼接的顺序。 javax是java的扩展包,如j2ee 中的类库,包括servlet,jsp,ejb,数据库相关的一些东西,xml的等
15:
JAVA基础类型自动拆装箱;
Long i = null; long j = i; 以上代码会报NullPointerException
16:
ibatis resultMap和resultClass坑爹,resultClass为基础类型,resultMap为对象和数据库的映射表17:public class Main { public static void main(String[] args) { Long l1 = new Long(1); Long l2 = new Long(1); System.out.println(l1 == l2); System.out.println(l1.equals(l2)); } }输出结果为fasle,true 对象比较用==会返回false,不要和l1==1自动拆装箱混淆18:Bean在实例化的过程中:Constructor > @PostConstruct >InitializingBean > init-method
Bean在销毁的过程中:@PreDestroy > DisposableBean > destroy-method
19:
转义的含义就相当于功能切换按键fn,如果一个字符在某种语言中含有特殊含义,那么转义后就变成了普通字符,如果某个字符原本是普通字符,那么转义后就变成了含有特殊含义的元字符