以一个小例子来说明java中 == 与 equals() 的区别
来源:互联网 发布:淘宝培训 编辑:程序博客网 时间:2024/04/30 23:42
<span style="font-family:Microsoft YaHei;font-size:14px;">public class StringAndStringBuffer { public static void main(String[] args) { String str1="hello"; String str2="he"+"llo"; String str3="he"+new String("llo"); String str4=new String("hello"); System.out.println(str1==str2); System.out.println(str1==str3); System.err.println(str1.equals(str3)); System.err.println(str1==str4); }}</span>
结果:true
false
true
false
分析:
1) 因为在比较中使用了== ,所以返回的值为一个布尔值
2)==与.equals()都可以比较值是否相等,但是局限于基本数据类型;在String类中==判断的是其在内存中的地址是否相等, .equals可以比较值是否相等,所以如果比较两个字符串的值是否相等,最好还是用equals(),如上面的str1==str3 与str1.equals(str3)的区别
3)"hello","he","llo"都为字符串常量,第一次出现字符串常量时会在池中创建一个新的,之后出现就不会创建了,而是直接把引用指向第一次创建的对象。但对于new出来的对象,无论怎样赋值,new一次创建一次(在堆中),不会考虑之前是否已经已存在相同的。而且,字符串是不可追加的,所以每次使用连接符号其实相当于先产生一个常量,然后再赋给引用,原来指向的串就成垃圾被回收了。
str3创建过程中,new String("llo")存在于堆内存中,所以所得到的字符串对象在自己的内存中,而不再缓冲池中
str2创建的过程中,"he","llo"都已经存在缓存池中,得到的str2="hello"已经存在缓冲池中,所以直接引用str1
str4创建的对象存在于堆内存中,不能直接引用。
4)System.out.println与System.err.println()都是打印出来,但是后者显示的为红色,而且在显示顺序上始终在out的后面。
比较两个字符串是否相等,优先使用
1)StringUtils.equals(str1,str2);
org.apache.commons.lang.StringUtils
2)str1.equals(str2);
3)str1==str2;
转载地址:http://www.cnblogs.com/lshblogs/p/4742659.html
0 0
- 以一个小例子来说明java中 == 与 equals() 的区别
- Java中,equals()方法与"=="区别小实例
- 几个例子说明JAVA中的equals和==区别
- 【java中==与equals的区别】java中==与equals的区别
- 黑马程序员——02几个例子说明equals与"=="的区别
- java中equals的用法,与“==”的区别
- java中“==”与equals区别
- java中equals与==区别
- Java中"equals()"与"=="区别
- Java中equals()与==区别
- Java中equals与==区别
- java中“==” 与 equals 区别
- 一个例子看清 == 和 Equals()等的区别
- java中equals与==的区别
- java中equals() 与==的区别
- java中“==”与“equals”的区别
- java中“==”与“equals”的区别
- Java中==与equals的区别
- Redis的安装和使用
- HTTPS是如何工作的
- 超级授权专业版 SuperSU Pro v2.68 简体中文版
- zabbix-agent安装
- 将递归函数转化为非递归练习
- 以一个小例子来说明java中 == 与 equals() 的区别
- 面向对象程序设计上机练习七(类和对象)
- ArcGIS 10.2 JavaScript API本地部署离线开发环境
- 温故已学知识点1
- datagrid view使用方法及设置默认打开为折叠
- 分页查询SQL
- sqlserver查询存储过程的创建时间及最后修改时间
- 属性过滤选择器
- OS X EL Capitan安装CocoaPods遇过的坑,希望有帮助