1、构造器用来进行初始化、GC用于清理
2、方法的重载以及怎么进行重载
3、this关键字
- 返回当前对象的引用
- 调用构造函数(最多一次,且位于当前构造函数的第一行)
- static中就没有this的概念
4、finalize() 一旦GC准备好释放对象占用的存储空间,首先调用该方法,并且在下一次GC动作发生时,才真正回收对象占有的内存。用来清理非Java代码创建的内存(C/C++),或者进行对象终结条件的验证(所有人都应该被签退)。重写本方法时应当调用super()。
5、Java垃圾回收机制
- 内存分配以较大的块为单位,每块对应的代数,表示被引用的次数
- Java监视系统,若对象稳定,垃圾回收期的效率降低,则切换为“标记-清扫”(遍历所有,标记活的,清理死的)
- 堆空间碎片过多,切换到“停止-复制”(遍历所有,标记活的,复制到另一块,改变引用)
- 遍历方式
- 每个对象被引用就计数+1;容易出现两个无用对象互相引用
- 便利堆栈和静态存储区域,对于所有引用追踪其引用的对象
- JIT(Just-In-Time)即时编译技术,将程序全部或部分翻译成本地机器码(原来是JVM的活),程序的运行速度提升,当需要装载某个类时,编译器会先找到其.class文件,然后将该类的字节码装入内存
- 全部:加载时间长,增加可执行代码的长度,页面调度导致降低程序速度
- 惰性评估,在必要的时候进行代码编译。Java HostSpot使用。执行次数越多,运行速度越快。
6、初始化顺序
- 父类早于子类
- 自动初始化(成员变量、数组)早于手动初始化
- 对于自动初始化,先静态对象
7、静态代码块static {}、常规代码块 {} 用于初始化