Java基础5

什么是内存垃圾
什么是垃圾回收 GC (garbage collection)
  手动gc, JDK提供了一个gc函数, 调用这个函数, 就完成对JVM虚拟机内存进行一次GC
  System.gc()
  自动gc, 当JVM虚拟机启动后, 后台会自动运行一个gc程序, 负责内存的gc操作
  这个后台的gc程序会定时做gc操作, 或者是当JVM内存不够用的时候, 会立刻触发gc

JDK自带的jvisualvm工具,安装Visual GC插件

同一个对象可以被多个指针同时指向
一个指针可以指向不同的对象, 但是同一时刻只能指向一个对象

测试当对象有指针指向的时候, 对象不会被垃圾回收器回收
当对象没有指针指向的时候, 对象会被垃圾回收器回收, 会不会立即回收?

方法区Method Area  ---> JDK1.8后改名为元空间Meta Space

栈区 Stack Area

堆区 Heap Area
 伊甸园区 Eden
 生存者1区
 生存者2区
 老年区


程序运行过程中很多对象都是朝生夕死
小对象出生在伊甸园区, gc后, 如果能存活下来会被转移到幸存者区, 对象的年龄计数器会+1
当对象经历了16次回收后依然能够存活, 会进入老年代

重对象/大对象一出生就在老年代

Minor GC和Major GC/Full GC的区别

Minor GC 发生在新生代的GC, 速度很快
Major GC/Full GC发生在老年代的GC, 通常Major GC发生的时候都伴随着Minor GC的发生, 速度比较慢

在JVM虚拟机执行GC的时候, 所有的线程都会暂停运行, 有一句叫做"stop the world!" 

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值