面向对象的基础_02构造方法及java的垃圾回收

构造方法

构造方法也叫构造器,用于对象的初始化。
要点:

  1. 通过new关键字进行调用
  2. 构造器虽然有返回值,但是不能定义返回值类型(返回值的类型肯定是本类),不能在构造器里使用return返回某个值
  3. 程序员没有定义构造器的话,编译器会自动定义一个无参的构造函数,如果已定义则编译器不会自动添加
  4. 构造器的方法名必须和类名一致

构造方法的重载

  1. 与普通方法的重载相同。
  2. 对于形参变量,使用就近原则,使用局部变量的。
  3. this修饰的是成员变量,表示创建好的对象
  4. 构造方法的第一句总是super(),如果程序员没有写出来,则编译器会自动加上

垃圾回收的原理和算法(了解)

Java有垃圾回收机制,而C++没有。在垃圾回收算法中,要做两件基本事情:

  1. 发现无用的对象
  2. 回收无用对象占用的内存空间
    初学者需要了解两种垃圾回收的算法:
  3. 引用计数法
    堆中每一个对象都有一个引用计数,没引用依次,计数加1,被引用变量值变为null,则计数器减一,直到计数变为0,则表示变成了无用对象。
    优点:算法简单
    缺点:“循环引用的无用对象”无法进行识别
  4. 引用可达法(根搜索算法)
    把所有的引用关系看作一张图,从一个节点开始,寻找对应的引用节点,找到这个节点后,继续寻找这个节点的引用节点,当所有的引用节点寻找完毕后,剩余的节点则被认为是没有被引用到的节点,就是无用节点

通用的分代回收垃圾机制

根据对象内存的存活时间或者对象大小,分为“年轻代”和“年老代”。
“年轻代”中的对象是不稳定的易产生垃圾,
而“年老代”中的对象比较稳定,不易产生垃圾。
持久代是用于存放静态文件,对垃圾回收没有显著影响。
有三个GC:

  1. .Minor GC 用于清除年轻代区域。Eden区满了就会触发一次
  2. .Major GC 用于清除老年代区域
  3. .Full GC 用于清除年轻代,年老代区域。成本较高,会对系统性能产生影响

JVM调优和Full GC

JVM调优主要是对Full GC的调节。
导致Full GC 有以下4个原因:

  1. 年老代被写满
  2. 持久代被写满
  3. System.gc()被显式调用(程序建议GC启动,不是调用GC)
  4. 上一次GC之后Heap的各域分配策略动态变化
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值