通常版 创建2个String 对象, 都为 "xyz". 严禁版 要看 外部条件, 在标准SUN JVM里, 如果在此代码之前的代码中有"xyz"的声明
那么只会创建 一个String 对象 即通过new 关键字创建出来的. 在括号内的"xyz" 会使用JVM 之前创建的对象.
=============================================================================
String s = new String("xyz");创建了几个String Object?
两个?
new一个String()是一个
("xyz")也1个???
如题 创建了三个对象
1.new String("xyz");
2."xyz";
3.s
楼主这样写 造成了不必要的资源浪费
===============================
我所说的创建了三个对象
并不是错与对的关系
而是堆和栈的问题与逻辑知识 如果你不懂 去翻书查阅
你提到了”指针” 那你是否明白指针的概念?
你又是否知道 指针所指的对象 就是由堆指向栈的对象
但当楼主写String s = new String("xyz");的时候
确实生成了 三个对象 只不过指针指向的是 xyz 的地址
也就是你所说的”没有错误”
错误是肯定没有的!这点谁也不否认
但是!确实是浪费了资源!
有没有牛B的人出来说句话啊^
并不是错与对的关系
而是堆和栈的问题与逻辑知识 如果你不懂 去翻书查阅
你提到了”指针” 那你是否明白指针的概念?
你又是否知道 指针所指的对象 就是由堆指向栈的对象
但当楼主写String s = new String("xyz");的时候
确实生成了 三个对象 只不过指针指向的是 xyz 的地址
也就是你所说的”没有错误”
错误是肯定没有的!这点谁也不否认
但是!确实是浪费了资源!
有没有牛B的人出来说句话啊^
======================================
问题出在 楼主的问题
String s = new String("xyz");创建了几个String Object?
他并没有说 运行时 或者说 最终^
只说了创建了几个
那就是三个 没有疑问的东西^
String s = new String("xyz");创建了几个String Object?
他并没有说 运行时 或者说 最终^
只说了创建了几个
那就是三个 没有疑问的东西^