当前位置:编程学习 > JAVA >>

java string的基础问题 求解答!!!

我就想明白  对内存里面放的还是 匿名对象的引用地址还是 一个字符串?? java  string --------------------编程问答-------------------- String s = "abcd";

s是一个变量,里面保存的是"abcd"的地址,也就是指针。
--------------------编程问答-------------------- --------------------编程问答-------------------- abc,地址存在栈中 --------------------编程问答-------------------- s1是变量 可变化的 --------------------编程问答-------------------- 字符串是一个特殊包装类,其引用是存放在栈里的,而对象内容必须根据创建方式不同定(常量池和堆).有的是编译期就已经创建好,存放在字符串常 量池中,而有的是运行时才被创建.使用new关键字,存放在堆中 --------------------编程问答-------------------- 这个问题我也思考过,应该是abc,不是引用。因为堆里面的是一个对象,不可能是一个地址。 --------------------编程问答-------------------- 栈中的引用直接存堆中对象的地址,0x1111是存在栈中的,堆中只有"abc" --------------------编程问答--------------------   能这样理解吗,对这个硬是有点迷糊,
求指点,栈里面不是放的基本数据类型吗,"abc"不属于基本数据类型应该放在 内存里面的常量区吧,堆里面不是放的对象名称和引用么,对立面指向的内容都是在栈里面吧? --------------------编程问答--------------------
引用 5 楼 ganshenml 的回复:
字符串是一个特殊包装类,其引用是存放在栈里的,而对象内容必须根据创建方式不同定(常量池和堆).有的是编译期就已经创建好,存放在字符串常 量池中,而有的是运行时才被创建.使用new关键字,存放在堆中
这个我当然知道  考虑到会不会是因为节约内存  而s1指向的堆内存里面不放的abc字符串  而是之前那个匿名对象abc的地址  就是图中的0x1111   --------------------编程问答--------------------
引用 1 楼 java2000_net 的回复:
String s = "abcd";

s是一个变量,里面保存的是"abcd"的地址,也就是指针。
画图的时候 可能有点急   我知道s1里面存放的是 堆内存的地址~~  指针 但我的问题 没正面回答哦~~ --------------------编程问答--------------------
引用 8 楼 lichaozhi365 的回复:
  能这样理解吗,对这个硬是有点迷糊,
求指点,栈里面不是放的基本数据类型吗,"abc"不属于基本数据类型应该放在 内存里面的常量区吧,堆里面不是放的对象名称和引用么,对立面指向的内容都是在栈里面吧?
个人觉得你这个 就有点 不正确了吧  5楼 回复的你可以可以看看 --------------------编程问答-------------------- String的直接量不是在常量池么。。。
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,