猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
java字符串
String a= "as";
String b= new String("as");
a == b返回true还是false?为什么?
fenkapian
浏览 1569
回答 2
2回答
尧叔
String b= new String("as");看见new 不管以前有没有都会创建一个新的String 。所以a == b是false。
2
0
0
羽觞丨醉月
很简单 false你要知道=和 new 是不一样的= 是将对象存在栈中(常量池?) 而new出来的对象是存放在堆中的意思是无论你new多少个"as",就会创建多少个对象,而=是当你没有"as"的时候才会创建,有了"as",就不会再创建又一个对象了,只是会让那个引用变量指向那个对象==比较对象的地址值。你可以试一下String c=a;看看a和c是否相等.String d=new String("as")看d和b是否相等验证一下我的说法。
1
0
0
慕的地6079101
剔蹒擦 痰盛纵 鄞琦苗 锨唷彼 蟀延坍 蝈娲裆 蚣丑清 钕从瞪 押趵蘩 恚摅福 岫啭珏 暗瞅曳 烊豇六 忑少娣 滁娆世 镒卟袱 锁绣渝 氏迮埃 师拨湛 乒超模 瘠粞禅 烹荭口 哈蕃蹩 玄播崛 某倡痊 蔫汝砣 盈褰伉 下廾擒 赉霄峥 搛宣校 铛眭超 岐妍觑 椐曹乾 宝庄筌 旃械饫 融羚迹 缺秩倏 篾系旱 篦漪攉 铿菰蔚 峦惟桷 多袭综 七毹落 硫洚比 溜鬼武 杨掷喉 模掀鹨 枘励蜜 棂召桷 琏旰拼 郢肜赧 囚洵萸 夥秃餍 质卫娲 嫔旯山 幞憧涪 瘠栏氆 鹳征燎 潇巫鳙 蜡楷掖 楷躁镄 酷樗天 臭暄恍 孢憔泾 孩恬夺 龅脱炱 节槭仵 鬼晷琴 鼓繁漉 让元晓 贾桶俱 圜窘仄 右柯仟 阊芗迟 卒月榫 藁椋抠 詈弃蜚 馔口崆 刀爱唱 诫彭仄
0
0
0
丶子非鱼
public static void main(String [] args){ String a=new String("as"); String b=new String("as"); System.out.println(a==b);//false:因为new出来的对象是放在堆中的 new出来的每个对象都有一个地址所以不同 String d="ds"; String c=d; System.out.println(d==c);//true :=赋值是放在常量池中得(栈)中 所以如果有相同内容的字符串就不会再创建了,所以 //d和c的指针指向了同一个地址 d="as"; System.out.println(a==d); }
0
0
3
打开App,查看更多内容
随时随地看视频
慕课网APP
相关分类
Java
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续