内存用于在函数内创建对象?

Memory alocated for Creating object inside a function?

本文关键字:创建对象 函数 用于 内存      更新时间:2023-10-16

因为对象是从同一个类创建的。每个对象都包含在类中定义的变量,但在该类的方法中定义的变量除外。同一对象的函数中的变量是共享内存吗?如果我们有一个函数来创建相同类的对象,则引用将驻留在何处?该参考不是也共享吗?

方法在内存使用方面与任何其他函数没有什么不同:局部变量在执行达到其声明时创建,并且(除非static(当执行离开块时,它们被销毁,它们的内存被回收。 (最迟在函数返回时会发生这种情况。 与this对象或其任何成员没有连接。 与方法的类具有相同类型的变量也没有任何区别。

从某种意义上说,这确实使内存"共享":它将迅速回收并(通常(重用。 但这没什么特别的,不要认为它的意义比它更重要:如果一个方法是递归的,或者由多个线程并发调用,则每个副本都有自己的局部变量 - 同样,就像任何其他函数一样。

最后,任何函数或方法都可以动态分配内存;分配对象的生存期和共享可能与用于引用它的变量的生存期和共享无关。