堆内存中的老年代(Old)不同于这个,老年代里面的对象几乎个个都是在 Survivor 区域中熬过来的,它们是不会那么容易就 “死掉” 了的。...GC Root根节点有哪些: 线程栈的本地变量, 静态变量, 本地方法栈的变量等等.
在Math中, 我们看栈中main方法的局部变量表中的math变量. 方法区中的user变量....程序还在继续运行, 又会产生新的对象放入到Eden区, 当Eden区又被放满了, 就会再次出发GC, 此时会寻找Eden+sruvivor(一个区域)中的GC Root, 将其标记,
没有被引用的对象被回收...new ArrayList(): 是放在堆中的一个对象
new User(): 在堆中构建一个新的User对象, 并将这个对象添加到new ArrayList()中....那就是没有对象引用他了.通常会回收这块内存空间地址 这个时候, 如果主线程也在运行, 刚好有一个变量存放在这个内存地址了, 而你并行的触发了GC, 这时候程序就发生混乱了.