问题:Java的内存模型
Java内存模型(java memory model),即JMM,jvm有一个主内存,变量都存放在主内存中,每个线程都有自己的工作内存,它存放了变量的副本,每个线程都在自己的工作内存中读写数据,最终把数据刷新到主内存中,通过主内存来进行变量的交互。jmm规定了工作内存与主内存变量的访问细节,通过原子性、有序性、可见性来实现线程的有效协同和数据安全。
问题:JVM如何判断一个对象实例是否应该被回收?
垃圾回收器通过创建了有向图的方式进行内存管理,通过gc roots往下遍历,但发现对象不可达时,它就会被标记,以便下次gc来回收它。
问题:说说JVM的垃圾回收策略。
jvm采用分代垃圾回收策略,在jvm的内存空间把堆空间分为年轻代和年老代,如果对象被创建后又很快销毁就被放入年轻代,相应的运行周期更长的对象就会被放入年老代。