DESKTOP-IL3AS1R_20200827-陈鑫

问题:

Java String判等问题

“==”判断符号左右两个对变量是否指向同一内存地址

equals()方法判断两个对象是否一样

“hello”是放在常量池中的,所以,虽然a,b都等于“hello”,但是其value值是相同的,所以“==”的结果为true

String a = "hello";
String b = "hello";
System.out.println(a == b); //true
System.out.println(a.equals(b));    //true

new方法决定了两个不同的string,new出来的都在堆,所以 "hello"被创建放在了堆上,分别被a和b所指向,因此“==”返回了false

String a = new String("hello");
String b = new String("hello");
System.out.println(a == b); //false
System.out.println(a.equals(b));    //true

吐槽:

码云感觉挺麻烦的,多用就熟练了,就是网络不太允许。

标签

© 2021 成都云创动力科技有限公司 蜀ICP备20006351号-1