我知道方法的变量存储在堆栈中,而类变量存储在堆中。那么我们创建的类和对象在Java中存储在哪里呢? 最佳答案 JVM中的运行时数据区可以划分如下,方法区:已编译类文件的存储区。(每个JVM实例一个)堆:对象的存储区域。(每个JVM实例一个)Java栈:局部变量、中间操作结果的存储区域。(每个线程一个)PC寄存器:如果下一条指令是native方法,则存储要执行的下一条指令的地址,则pc寄存器中的值将是未定义的。(每个线程一个)native方法堆栈:帮助执行native方法(用Java以外的语言编写的方法)。(每个线程一个)
我知道方法的变量存储在堆栈中,而类变量存储在堆中。那么我们创建的类和对象在Java中存储在哪里呢? 最佳答案 JVM中的运行时数据区可以划分如下,方法区:已编译类文件的存储区。(每个JVM实例一个)堆:对象的存储区域。(每个JVM实例一个)Java栈:局部变量、中间操作结果的存储区域。(每个线程一个)PC寄存器:如果下一条指令是native方法,则存储要执行的下一条指令的地址,则pc寄存器中的值将是未定义的。(每个线程一个)native方法堆栈:帮助执行native方法(用Java以外的语言编写的方法)。(每个线程一个)
采取以下措施:Aa;classB;//NocontentforbrevityclassA{public:A(){b.SetTitle("hi");}private:Bb;}intmain(){return0;}这里的问题是在A中声明的b是声明在堆上还是栈上。如果在堆上,这是否意味着它会被自动删除,或者我必须也删除它吗?附带问题:这是我最初做的,但我觉得我有点愚蠢,因为我不得不在任何地方都声明所有东西都是新的..如果上面的东西在堆栈上,我想它不是那么愚蠢吧?Aa;classB;//NocontentforbrevityclassA{public:A(){this->b(newB());/