java基础题 第九,String s = new String("xyz");创建了几个String Object?答:两个为什么? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 /**run:true*/public class Main { public static void main(String[] args) throws Exception { System.out.println(""+("123"instanceof String)); String s=/**第二个*/new String(/**第一个*/"123"); }} 一个常量池的"xyz"对象一个heap里的对象 分析内存:栈里面的s(一个对象)指向堆中的"xyz"(第二个对象)。 呵呵呵,这个问题确实是经久不衰啊两个:1)"xyz"是一个String Object2)new String(。。)产生第二个String ObjectString s中s只是一个引用,不是对象。 强烈建议某大虾或者版主将此类问题做一个永久置顶贴,永不下落,因为无论何时,无论何地,只要有Java的存在就一定会有人问这个问题。而且不停问,反复问,总是问,经常问。 2个啦 第一个是String池里面的第二个是 new出来的,在堆内存中s是引用,两个对象都是xyz另外如果把你的题目改下String s1=new String("xyz");//产生了几个对象? 2个String s2=new String("xyz");//产生了几个对象? 1个好好体会吧 如果“xyz”内存池已经有了,那么string是flyweight实现的话。。 支持!!!!看一下《java6编程指南》,比较基础、实用,对新手有不少的好处。书名我记得不是很清楚,只记得蓝色封皮,1千多页! 我的Jtable为什么不能跟窗体大小而改变 用正则表达式处理个字符串 JAVA按钮组件问题 关于swt,table数据实时更新。 怎么用java编一个记事本? [求教]请问如何在JPanel中加入Scroll? 24点扑克牌游戏编程算法详解 连接池的问题 mp3服务器问题,大家教教!如果有类似经历的会很简单。 请问jdbc2.0现在可以用了吗,现在的最高版本是多少? *********求myeclipse8.0m1 下载地址***** JDialog大小无法改变
/**run:
true
*/
public class Main { public static void main(String[] args) throws Exception {
System.out.println(""+("123"instanceof String));
String s=/**第二个*/new String(/**第一个*/"123");
}
}
一个heap里的对象
栈里面的s(一个对象)指向堆中的"xyz"(第二个对象)。
呵呵呵,这个问题确实是经久不衰啊
两个:
1)"xyz"是一个String Object
2)new String(。。)产生第二个String Object
String s中s只是一个引用,不是对象。
第一个是String池里面的
第二个是 new出来的,在堆内存中
s是引用,两个对象都是xyz
另外如果把你的题目改下
String s1=new String("xyz");//产生了几个对象? 2个
String s2=new String("xyz");//产生了几个对象? 1个
好好体会吧
看一下《java6编程指南》,比较基础、实用,对新手有不少的好处。
书名我记得不是很清楚,只记得蓝色封皮,1千多页!