值类型和引用类型的区别和联系

来源:百度知道 编辑:UC知道 时间:2024/05/22 00:46:19
String A =new String("aa");
String B="aa";
第一句是引用类型,因为引用对象A是指向new String("aa")这个对象,而后一句是值类型,对象B直接指向值aa,这样的说法对不?

那怎么理解堆和栈这两个概念?

对的。
引用类型存储的是'aa'的引用,具体在内存里存储的是'aa'的内存地址。
值类型直接存储的是'aa'。

如果把A赋值给G,那么A和G指向同一个内存地址,所以如果这时候A改变了,
比如A='CC',那么G也跟着改变了。

而如果把B赋值给H,修改B='DD',那么H是不会改变的。H还是等于'aa'.

引用类型在堆上,值类型在栈上。具体的可以看看大学里的数据结构这本书。