当前位置:首页 > 内存 > 正文

对象名保存在栈内存中对吗

  • 内存
  • 2024-06-30 05:41:08
  • 4478

一、请问Stringstr=“STR”;这样的一条java语句,创建的str对象是存储在堆中还是栈中呢?栈:存储基本类型的数据和对象引用,但对象本身并不存储在栈中,而是存储在堆
堆:存储用new生成的数据
Stringa=newString("abc");//创建2个对象
Stringb="abc";//创建一个对象
"abc"在内存的字符串池里,你的newString("abc")是一个对象,它不存储在字符串池中
所以它在堆栈上。


二、C++中栈和堆的区别及区分对象存储在堆或栈栈区的内存由系统管理,堆区的内存由程序员管理。栈区创建对象的方法:类名对象名(结构参),或者类名对象名=类名(结构参);堆区内存创建方法:类名*对象指针=新类名(构造参数)。也就是说,新的对象都在堆区。
三、Java中栈内存和堆内存怎么理解?Object
obj
=
new
Object();
上面的语句将对obj的引用放置在堆栈内存中。这个名为obj的对象被放置在堆栈内存中。堆栈内存运行速度更快,用于查找索引(或名称)。
并且new
Object()打开一个空间。该对象的堆内存。Object几乎所有的属性和方法都在它里面。也就是说,对象的实体位于堆内存中。
堆内存速度慢,但有大量空间来存储程序。。