开门见山-------炼金术师
“==” : 比较的是地址值(基本数据类型比较的是值)
“equals” : 比较的是内容
可以理解为你玩AP盖伦玩的很厉害,开局蓝水晶,回家女神泪…0-18-0的战绩,祖安的队友A一直在夸你,过了一会来自祖安的队友B也开始加入夸你的行列,他们夸是同一个盖伦
伪代码为 A 讨论 (我方)盖伦
B 讨论 (我方)盖伦
A讨论= =B讨论 //true
这就是"= ="
恰好这把对面也是盖伦,队友C羡慕的说看看别人家孩子
伪代码为 C 讨论 (对面)盖伦
A讨论= =C讨论 //false
A讨论.equals(C讨论) //true
因为都是盖伦,内容是是相同的
按照笔者的出装进行游戏可以加强对知识点的理解和印象
代码辅助-------德玛西亚
public class Demo_String {
public static void main(String[]args){
String str1="abc";
String str2="abc";
char[]charArray={'a','b','c'};
String str3=new String(charArray);//内容相当于new String("abc");
str1==str2;//true
str1==str3;//false
str1.equals(str2);//true
str1.equals(str3);//true
}
}
内存图解-------金色传说
字符串常量池:程序当中直接写上双引号的字符串才在字符串常量池中
JDK1.7及:栈内存
JDK1.6及以前:方法区里的一个空间
以上就是笔者的一点想法,希望可以帮助大家