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