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
吐槽:
码云感觉挺麻烦的,多用就熟练了,就是网络不太允许。
点赞