Java"=="和"equals"的区别以及常量池的内存图解

开门见山-------炼金术师

“==” : 比较的是地址值(基本数据类型比较的是值)
“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及以前:方法区里的一个空间
以上就是笔者的一点想法,希望可以帮助大家

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值