构造函数中声明的变量是否持久存在于创建的对象中
Do variables declared in constructors persist in the created object
如果我想在对象的构造函数中声明一个 temp int,该变量会在构造完成后保留在内存中吗?还是垃圾收集会在完成后将其删除?
一旦变量超出范围并且您没有保留对它的引用并且垃圾收集运行,它将从内存中删除。
但是,这不能保证在构造函数完成执行后立即发生 - 它可能需要一些时间,具体取决于情况。
int
、long
、boolean
和其他原始变量永远不会被垃圾回收,因为它们在线程堆栈中占据 space。
它们的内存利用率在方法调用(包括构造函数)returns 到调用者时恢复。
如果我想在对象的构造函数中声明一个 temp int,该变量会在构造完成后保留在内存中吗?还是垃圾收集会在完成后将其删除?
一旦变量超出范围并且您没有保留对它的引用并且垃圾收集运行,它将从内存中删除。 但是,这不能保证在构造函数完成执行后立即发生 - 它可能需要一些时间,具体取决于情况。
int
、long
、boolean
和其他原始变量永远不会被垃圾回收,因为它们在线程堆栈中占据 space。
它们的内存利用率在方法调用(包括构造函数)returns 到调用者时恢复。