java 中String中的equals和==

本文详细解析了Java中的String类特性,包括它在内存中的存储方式与基本类型的区别,以及如何使用equals方法比较字符串内容。通过实例演示字符串池的概念与应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

java新手,如有错误,请多多指教!

java中有一个类很特殊,就是String 这个类表示字符串的意思,与基本类型不同的是他的值是存储在内存堆中的,而基本类型是存储在栈中的,别的引用类型是要用new生成对象,而它是既可以用new生成对象,也可以直接用=赋值,鉴于基本类型和引用类型之间,当然本质是引用类型,这种形成的原因是String类底层是finall的数组。


java中的有一个方法是equals,这个方法 是 继承始类Object的,并重写了Object的方法,使得可以比较String内部的字符串内容是否相等。对于符号==是比较的是两个地址的。

 如下题目:


String s1="abc";

String s2= "abc";

String s3=new String("abc");

s1==s2; true;

s1.equals(s2);  true;


s1==s3; false;

s1.equals(s3) true;


如上面的,第一个是都相等 的 ,是因为java中有个字符串池的概念,java程序运行是,jvm会创建一个字符池,然后将地址给s1,当执行s2=“abc"时候,会先找字符池中有没有这个字符串,如果有直接将地址给s2。导致上面的两个结果都是true。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值