String中的==和equal()理解
2017-12-04 12:08
225 查看
首先要明白有两种方式来创建字符串,
第一种
String a = "hello" a本身就是一个对象,他放在字符创常量池中 当你再次以这种方式创建一个内容相同的字符串时候,会在常量池中查看时候存在
第二种
String b= new String("hello') 此时后两个对象,一个new在堆中的 ,一个是字符串本身在常量池中
而==是比较的地址 所以 a==b 是false
由于String重写了equal方法比较的是值内容 ,而不是地址 所以 a.equal(b) 结果是true
任何类都有equal()方法,因为那是属于object的一个方法,并且它是比较地址的,里面也是==符号,但是有的类重写了equal()方法,所以它比较的是内容
第一种
String a = "hello" a本身就是一个对象,他放在字符创常量池中 当你再次以这种方式创建一个内容相同的字符串时候,会在常量池中查看时候存在
第二种
String b= new String("hello') 此时后两个对象,一个new在堆中的 ,一个是字符串本身在常量池中
而==是比较的地址 所以 a==b 是false
由于String重写了equal方法比较的是值内容 ,而不是地址 所以 a.equal(b) 结果是true
任何类都有equal()方法,因为那是属于object的一个方法,并且它是比较地址的,里面也是==符号,但是有的类重写了equal()方法,所以它比较的是内容
相关文章推荐
- Java String中理解起来模糊的东西,我来给我扫扫盲。(String类的intern() 、equal()、 == )
- java String的创建方式以及"=="和equal的理解
- C# ToString("x2")的理解
- 理解String的compareTo()方法返回值
- 几张图轻松理解String.intern()
- 《Beginning Java 7》 - 6 - 深入理解 String
- java基础语法、继承与重载、super、static、finally、String与StringBuffer的深入理解
- String虽然很简单,但他的某些特性你真理解正确了吗?
- public static void main(String[] args)理解
- 理解String的compareTo()方法返回值
- 个人对Java中String对象的传递的理解(错误之处,请给与纠正,
- 我对java String的理解 及 源码浅析
- ==与equal的区别 这次我理解了,你呢?
- 三分钟理解Java中字符串(String)的存储和赋值原理
- Objective-c中 isEqual ,isEqualToString , == 三者的区别
- 理解String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+pa
- 深入理解Java中的String类型
- String、StringBuffer、StringBuilder简单理解
- 关于byte[]转String 和 String 转byte[]自己的理解
- 通过反编译深入理解Java String及intern