Java对象的初始化与清理

本文深入解析Java中的构造器、GC、方法重载、this关键字、finalize()方法、垃圾回收机制、初始化顺序等关键概念,帮助读者理解Java编程的基础与高级特性。

1、构造器用来进行初始化、GC用于清理

2、方法的重载以及怎么进行重载

3、this关键字

  1. 返回当前对象的引用
  2. 调用构造函数(最多一次,且位于当前构造函数的第一行)
  3. static中就没有this的概念

4、finalize() 一旦GC准备好释放对象占用的存储空间,首先调用该方法,并且在下一次GC动作发生时,才真正回收对象占有的内存。用来清理非Java代码创建的内存(C/C++),或者进行对象终结条件的验证(所有人都应该被签退)。重写本方法时应当调用super()。

5、Java垃圾回收机制

  1. 内存分配以较大的块为单位,每块对应的代数,表示被引用的次数
  2. Java监视系统,若对象稳定,垃圾回收期的效率降低,则切换为“标记-清扫”(遍历所有,标记活的,清理死的)
  3. 堆空间碎片过多,切换到“停止-复制”(遍历所有,标记活的,复制到另一块,改变引用)
  4. 遍历方式
    1. 每个对象被引用就计数+1;容易出现两个无用对象互相引用
    2. 便利堆栈和静态存储区域,对于所有引用追踪其引用的对象
  5. JIT(Just-In-Time)即时编译技术,将程序全部或部分翻译成本地机器码(原来是JVM的活),程序的运行速度提升,当需要装载某个类时,编译器会先找到其.class文件,然后将该类的字节码装入内存
    1. 全部:加载时间长,增加可执行代码的长度,页面调度导致降低程序速度
    2. 惰性评估,在必要的时候进行代码编译。Java HostSpot使用。执行次数越多,运行速度越快。

6、初始化顺序

  1. 父类早于子类
  2. 自动初始化(成员变量、数组)早于手动初始化
  3. 对于自动初始化,先静态对象

7、静态代码块static {}、常规代码块 {} 用于初始化

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值