类的基本成员才有默认值
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对象通常当做静态域存储,使得每个单独的线程都被分配了自己的存储
相关文章
- 记一起Java大对象引起的FullGC事件及GC知识梳理
- JAVA之Mybatis基础入门--框架搭建与简单查询
- Java基础学习 -- 异常
- JAVA基础—线程池
- JAVA基础之ServletContext对象
- Java语言程序设计 基础篇 原书第10版梁勇著 课后编程练习题答案1
- java中String xx xx_JAVA超级基础之String型字符串
- 通过源码学Java基础:InputStream、OutputStream、FileInputStream和FileOutputStream
- 2018.6.20 Java考试试题总结(Java语言基础与面向对象编程)最新版
- Java语言程序设计与数据结构(梁勇版) 基础版 课后习题 第三章