标签:
类的基本成员才有默认值
finalize()并非析构,Java中没有析构,使用finalize()通常在于跨语言调用情景:比如使用C进行malloc内存分配以后,要在finalize()方法中进行free,以便于提供一种内存释放的方法,否则当量达到一定程度时会造成out of memories。Jvm在进行gc时会优先调用finalize(),但这并不意味着一定会释放finalize中指定的对象,因为gc最终只和内存相关,当内存达到回收条件时才会进行垃圾回收
静态块static{xxx;}在类加载时就进行初始化,非静态块和构造函数在创建对象时才会初始化或调用,并且非静态块要优先于构造函数。
内部类可以访问外围类所有成员,包括private成员
通过内部类可以变相的实现“多重继承”
匿名内部类常用于实例初始化
动态代理,通过反射动态地创建Proxy,Proxy用于添加一些你想对Target进行的额外操作,然后在适当的时候将请求转发给Target。换句话说,Proxy在Target上进行了一层封装修改。
HashMap,通过设置容量和负载因子,以调整容器的性能。默认容量达到四分之三满时将自动进行扩充&再散列。因此,如果能够预估存储容量,然后设置一个恰当的初始容量,将可以避免自动再散列的开销
transient关键字可以避免敏感信息字段的序列化
ThreadLocal对象通常当做静态域存储,使得每个单独的线程都被分配了自己的存储
标签:
原文地址:http://www.cnblogs.com/justool/p/java-123.html