是干什么的?
jdk是开发人员使用的,有了jdk可以开发java程序。
jre是用来运行程序的,jre包含了jvm,JVM是运行Java程序的虚拟机,但是运行java程序不仅仅需要核心虚拟机,还需要其他环境
回收内存
显示回收会造成忘记回收造成程序瘫痪,或者回收的时候回收了核心库的内存,会使系统崩溃。
JRE可以自动回收内存:
什么时候回收?
当没有引用变量指向原来分配给某个对象的内存的时候。
也即是,当一个对象不再被引用的时候,内存收回它占领的空间。
利弊
1.回收的是无用对象的内存空间,对于物理资源(数据库连接、磁盘I/O)无能为力
2.垃圾回收算法有很多,可以适当了解一些。所以回收时间会不确定,cpu空闲时,定时,或者到内存消耗到一定程度的时候。
3.目前垃圾回收机制能实现多线程。