问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

关于String a = "AA";和String b = new String("AA");的区别

发布网友 发布时间:2024-10-19 15:24

我来回答

1个回答

热心网友 时间:2024-11-23 11:31

先说几个概念吧

1.常量池

指的是在编译期确定,并被保存在已编译的字节码文件中的一些数据,它包括类、方法、接口等中的常量,也包括字符串常量。

2.==: 比较是否是同一个对象

3.equals(): 比较的是对象里的内容

下面我开始说区别

第1种:
String a="abc"; String b="abc"; System.out.print(a==b);
结果:true

原因:编译时,这两个"abc"被认为是同一个对象保存到了常量池中;运行时JVM则认为这两个变量赋的是同一个对象,所以返回true。

第2种:
String a=new String("abc"); String b=new String("abc"); System.out.print(a==b);
结果:false

原因:用构造器创建的对象,是不会被放入常理池中的,也很明显这完全是两个对象,只是内容相同罢了,结果当然为false了。用equals()或者System.out.print(a.intern()==b.intern());就返回true了。

第3种
String a="abc"; String b=new String("abc"); System.out.print(a==b);
结果:false

原因:同上

第4种
String a="abcdef"; System.out.print(a=="abcdef");
结果:true

原因:运行出现的字符串常量,若是在常量池中出现过,则JVM会认为同一个对象,以节省内存开销,所以这两个字符串会被认为是同一个对象。

第5种
String a="abcdef"; String b=""; String c=a+b; System.out.print(c=="abcdef");
结果:false

原因:编译时,先将"abcedf"放在常量池中,而c的值则是在运行时在堆里创建的。所以为false。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
人大政协辅助岗是什么 政务辅助人员是干什么 政府辅助人员是什么 努比亚的海拔什么意思 北非努比亚现在怎么样了啊 相邻权的相关法律 梦见老公离世了什么预兆 梦见自己老公走掉 你出轨后 怎么操作才没被发现? 评评怎么造句 String a = "a"; String b = "a"; 为什么a==b true a.equals(b)==true... ...String a = "杨浦区黄兴路长阳路"; String b= "黄兴路"; string a = "a"; string b = "b"; a = b; 创建了几个对象 ...b ="b"; String c = a+b; System.out.println("ab"==c); 原味芝士蛋糕做法大全 请教各位:大学生大型暑期社会实践需要统一服装,拉赞助拉什么,具体联 ... 如何成立社会实践部门 叶圣陶先生二三事中表现与本文中作者的情感是平淡的还是浓烈的,加以分 ... ...林轩凤生的奉紫啊,什么时候有的啊,林轩凤上了重莲,重莲为什么... 户口在眉山,驾驶证在郫县,在郫县能换证吗? 表,在郫县可以办理换领驾驶证吗 歌词最后有句you feel life ,oh love me的歌是什么歌啊?大神帮帮我吧... 成都驾照问题 ...中文版又有英文版的,英文版第一句歌词的最后两个词是love me... 想在淘宝上买东西但是可能收货时人不在家,可以先寄到那个快递店自己去取... 淘宝快递如果到了,人不在学校能不能以后去拿 ...到了,可是两次我没有空收到,快递员让我去公司拿,我也没有去,然后... 代签合同该如何签才有效 发现假冒伪劣产品如何维权 戊戌日柱女命运好不好戊戌日柱女命特点是什么 ...男'; String b="女"; String c="a+b"; System.out.println(c);_百 ... 我手机是乐视乐2,我用的指纹解锁,但是他昨天要我用数字密码解锁才 ...1)由角CBE=角A可以判定哪两条直线平行? 根据什么 ...1)由CBE=∠A可以判定哪两条直线平行?根据是什么?(2)由CBE=_百度... 如图,BE是AB的延长线.(1)由∠CBE=∠A可以判断哪两条直线平行?根据是什 ... 如图所示,BE是AB的延长线,量得∠CBE=∠A=∠C 1.从∠CBE=∠A,可以判断... 急急急 如图所示,BE是AB的延长线,指出下面各组中的两个角是由哪两条直... ...已知∠DEC=∠ADE,可以判定哪两条直线平行为什么? 2024年中秋节微信朋友圈文案 中秋节微信朋友圈祝福语文案 送女朋友的15款愚人节礼物 大学对农村孩子意味着什么? 上大学给农村孩子带来了什么? 婆婆帮忙带孩子,我应该给婆婆生活费吗? 你赚钱了会给婆婆生活费吗我给了一千五? 设计常规尺寸系列-UI设计尺寸 ...房贷利率年利率是5.88月利率是4.9是改固定利率好还是浮动利率好? 台球的三种发力技巧 有一只毛毛虫要过河、前面没有桥、问它是怎么过去的、?答案、变成蝴蝶... ...过河,可是河没有桥没有船,可是过了几天毛毛虫过去了,这究竟为啥呀...