String == 和 equals 的区别的个人理解
2016-03-15 16:35
381 查看
1,==是一种运算符,equals是object方法,string类对其重写了。
2,String a = "abc" 和 String b = new String (“abc") 再常量池没有abc的情况下 ,前者创建了一个对象 ,后者创建了两个对象。如果常量池有abc,前者不创建对象,后者创建一个对象。后者创建的第二个对象是复制常量池里面的。
3,无论是String a = "abc" 还是 String b = new String (“abc") ,a b都是引用类型,值都是地址,常量池也是一个地址。
4,==和==用于基本数据类型一样,都是比较变量的值,因为string变量的值都是地址,即都是比较引用类型,
5,string 的equals方法重写了,是比较值的内容。
例子一:对象不同,内容相同,"=="返回false,equals返回true
例子二:同一对象,"=="和equals结果相同
例子三:
2,String a = "abc" 和 String b = new String (“abc") 再常量池没有abc的情况下 ,前者创建了一个对象 ,后者创建了两个对象。如果常量池有abc,前者不创建对象,后者创建一个对象。后者创建的第二个对象是复制常量池里面的。
3,无论是String a = "abc" 还是 String b = new String (“abc") ,a b都是引用类型,值都是地址,常量池也是一个地址。
4,==和==用于基本数据类型一样,都是比较变量的值,因为string变量的值都是地址,即都是比较引用类型,
5,string 的equals方法重写了,是比较值的内容。
例子一:对象不同,内容相同,"=="返回false,equals返回true
String s1 = new String("java"); String s2 = new String("java"); System.out.println(s1==s2); //false System.out.println(s1.equals(s2)); //true
例子二:同一对象,"=="和equals结果相同
String s1 = new String("java"); String s2 = s1; System.out.println(s1==s2); //true System.out.println(s1.equals(s2)); //true
例子三:
String s1 = "java"; String s2 = "java"; System.out.println(s1==s2); //true System.out.println(s1.equals(s2)); //true
相关文章推荐
- Android之获取手机上的图片和视频缩略图thumbnails
- android string.xml文件中的整型和string型代替
- Android java 与 javascript互访(相互调用)的方法例子
- android上改变listView的选中颜色
- String.intern
- Prototype源码浅析 String部分(二)
- Ruby中的String对象学习笔记
- PostgreSQL ERROR: invalid escape string 解决办法
- 浅谈C++中的string 类型占几个字节
- 标准C++类string的Copy-On-Write技术
- C++实现string存取二进制数据的方法
- C#中string和StingBuilder内存中的区别实例分析
- PHP STRING 陷阱原理说明
- c#中 String和string的区别介绍
- C#实现的图片、string相互转换类分享
- asp.net String.IsNullOrEmpty 方法
- JavaScript中字符串(string)转json的2种方法
- C#中string用法实例详解
- C#中的DataSet、string、DataTable、对象转换成Json的实现代码
- Javascript实现Array和String互转换的方法