创建的小对象通常会被分配在新生代中的Eden区。当Eden区中的对象达到一定大小时,JVM会触发一次Minor GC,会将存活的对象移动到Survivor区。如果Survivor区也满了,JVM会把对象移动到老年代中。
对于小对象,它们的生命周期较短,可能在经过几次GC后就被回收了,所以通常不会进入老年代。但是,如果一个小对象经过多次GC后仍然存活,可能会被移动到老年代中。这种情况通常发生在以下两种情况下:
- 对象经过多次Minor GC后仍然存活:在Survivor区中存活了多次的对象,可能被认为是"有生命力的"对象,JVM会将其移动到老年代中。
- 大对象:如果一个对象的大小超过了Eden区的大小,它就会被直接分配到老年代中。如果一个小对象被多次创建并且达到了一定的数量,它们的总大小可能会超过Eden区的大小,这时它们会被认为是大对象,会直接被分配到老年代中。
综上所述,小对象通常不会进入老年代,但在某些情况下可能会被移动到老年代中,例如经过多次Minor GC后仍然存活或者是大对象。