java new一个对象的内存是怎样运行的
时间: 2024-02-19 19:01:34 浏览: 59
当调用`new`关键字创建一个对象时,Java虚拟机会在堆内存中分配一块连续的内存空间,用于存储这个对象的实例变量。同时,Java虚拟机也会自动为这个对象调用构造函数,来完成初始化工作。
在分配内存空间时,Java虚拟机会根据对象的大小来决定使用哪种方式进行内存分配。如果对象很小,虚拟机会使用TLAB(Thread-Local Allocation Buffers)来进行分配。如果对象比较大,虚拟机会直接在堆上分配内存。
当对象不再被引用时,Java垃圾回收器会扫描堆内存中的对象,并将没有被引用的对象标记为垃圾对象,将其所占用的内存空间释放回堆内存池,以便后续的对象创建和分配。
阅读全文