字符串比较问题,我有点想不通啊 String st1 = "abcde"; //生成对象,存入常量池 String st2 = "abcde"; //从常量池取出所以是同一个对象,所以==用new就是新建对象,所以不等 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 String st1 = "abcde"; String st2 = "abcde"; st1和st2指向同一内存区"abcde",String st1 = new String("abcde");String st2 = new String("abcde");他们要先建立String对象"abcde" 然后赋给st1;再建立String对象"abcde" 然后赋给st2; 1、编译器对所有 String s = "a string" 初始化的字串建立一个表,它不包括用 new String() 在堆中创建的字串,然后查询字串表,看是不是已经存在有一个值为"a string"的字串.如果存在, s 将取得此引用,如果不存在, 建立新的字串, 并注册到表中, 返回引用给s.所以(st1 == st2) = true.2、Object类的equals()方法比较的是两个对象的引用,当且仅当两个引用指向同一内存地址时,equals()的返回值为true.但String类覆盖了Object类的equals()方法,只对内容进行比较,不对内存地址进行比较. 线程和单例问题! jframe和frame的区别 关于设置lock的一个问题 JDBC连接数据库的问题 [转帖]一百万元的首页,打造网络神话,把不可能变成可能 我是Jave的初学者,有一个小问题 为什么在applet中画的图一放大缩小页面就错位!!! int to char有没有这样的方法? 关于地址 java这个简单的 输入怎么弄?【急】!【急】! 怎么得到一个String 变量当前采用的编码方式 在线求助,回答立刻给分1
String st2 = "abcde";
st1和st2指向同一内存区"abcde",String st1 = new String("abcde");
String st2 = new String("abcde");
他们要先建立String对象"abcde" 然后赋给st1;
再建立String对象"abcde" 然后赋给st2;
2、Object类的equals()方法比较的是两个对象的引用,当且仅当两个引用指向同一内存地址时,equals()的返回值为true.但String类覆盖了Object类的equals()方法,只对内容进行比较,不对内存地址进行比较.