equal和==的区别
2015-11-03 17:36
246 查看
equal和“==”都有等于的意思,先来看看吧
public class TestEqual{
public static void main(string[] args){
String str1 = "abcd";
String str2 = "abcd";
String str3 = new String("abcd");
System.out.println(str1==str2);
System.out.println(str1==str3);
System.out.println(str1.equals(str3));
} 运行结果是 true false true
第二个为false的原因在于str1和str3指向的是不同的对象。
==运用在基本数据类型的时候,通过比较它们的实际值来判定是否相同;但是用于比较引用类型的时候。则是比较两个引用的地址是否相同,也就是说是否指向同一个对象。通过new string()来创建的字符串会单独生成一个对象,所以str1和str3指向的并不是同一个对象。java的双引号表达式本身就会创建一个字符串对象。 equal()方法是java.lang.Object的方法。也就是说所有的java类都会有这个方法。它可以被覆盖重写,通过自定义的方式来判定两个对象是否相等,其中默认的方式与==相同。但是java.lang.String类并不同,它是不可以被继承的。它的equal()方法用来比较字符串的字符串序列是否完全相等。
public class TestEqual{
public static void main(string[] args){
String str1 = "abcd";
String str2 = "abcd";
String str3 = new String("abcd");
System.out.println(str1==str2);
System.out.println(str1==str3);
System.out.println(str1.equals(str3));
} 运行结果是 true false true
第二个为false的原因在于str1和str3指向的是不同的对象。
==运用在基本数据类型的时候,通过比较它们的实际值来判定是否相同;但是用于比较引用类型的时候。则是比较两个引用的地址是否相同,也就是说是否指向同一个对象。通过new string()来创建的字符串会单独生成一个对象,所以str1和str3指向的并不是同一个对象。java的双引号表达式本身就会创建一个字符串对象。 equal()方法是java.lang.Object的方法。也就是说所有的java类都会有这个方法。它可以被覆盖重写,通过自定义的方式来判定两个对象是否相等,其中默认的方式与==相同。但是java.lang.String类并不同,它是不可以被继承的。它的equal()方法用来比较字符串的字符串序列是否完全相等。
相关文章推荐
- MAVEN处理项目中引用的第三方JAR包的问题
- linux网卡统计信息清零
- 在Ubuntu 14.04.3上安装python中的paramiko模块
- HTTP协议详解
- Collecting Memory Usage Information For a Process
- java进阶(四)------java编程规范---代码质量检测工具FindBugs、PMD和CheckStyle的安装
- json字符串转换为对象,json字符串中含数组
- java进阶(四)------java编程规范---代码质量检测工具FindBugs、PMD和CheckStyle的安装
- LeetCode---Validate Binary Search Tree
- 迷宫求解算法(栈DFS以及队列BFS)
- eclipse maven创建工程缺少目录的解决办法
- android studio 所打开的,所有文件的标题栏没有了,或者是被移动了,完美解决方案。
- centos 新增用户, 然后他在主目录添加网站403Forbbiden
- 【鸟瞰】软件工程文档
- ubuntu 开发环境配置及安装 nodejs
- ubuntu 开发环境配置及安装 nodejs
- iOS开发系列—Objective-C之内存管理
- ionic infinite
- AutoLayout进阶
- Hybris 预备知识学习列表