Java中equals与"=="的使用区别
2014-03-05 11:46
579 查看
在使用equals和“==”判断变量是否相等时,老是犯迷糊。有时候忽然间就不知道该用谁。所以今天特意做一下笔记。
输出:
解释说明:
因为第一个示例中,aa和bb都指向常量池中的同一个字符串"longsan",而cc指向堆区中常量"longsan",dd却指向栈区中的对象new String("longsan"),由此可以说明,equals在判断字符串时,只是判断它们的值是否相同。“==”在判断字符串时,是判断它们是否指向同一个存储地址,即同一个对象。但是在非字符串对象的使用是,equals和“==”的用法相同。因为String重写了equals方法。
public static void main(String[] args) { // TODO Auto-generated method stub //指向常量池同一个字符串 String aa="longsan"; String bb="longsan"; System.out.println(aa==bb); System.out.println(aa.equals(bb)); System.out.println("====================================================="); //一个指向常量池,一个指向栈区 String cc="longsan"; String dd=new String("longsan"); System.out.println(cc==dd); System.out.println(cc.equals(dd)); System.out.println("====================================================="); }
输出:
true true ===================================================== false true =====================================================
解释说明:
因为第一个示例中,aa和bb都指向常量池中的同一个字符串"longsan",而cc指向堆区中常量"longsan",dd却指向栈区中的对象new String("longsan"),由此可以说明,equals在判断字符串时,只是判断它们的值是否相同。“==”在判断字符串时,是判断它们是否指向同一个存储地址,即同一个对象。但是在非字符串对象的使用是,equals和“==”的用法相同。因为String重写了equals方法。
相关文章推荐
- "==" 和 equals的区别 java 日期Date类的使用 自动装箱和自动拆箱
- Java "equals"和"=="的区别
- Java中"equals"和"=="的区别
- Java中"=="与equals()方法的区别
- Java中"=="与equals()方法的区别
- java中"=="和equals方法究竟有什么区别?
- java 中,"=="和 "equals"的区别
- java之"equals"和"=="的区别
- java装箱和拆箱已及"=="与"equals"的区别
- 浅谈Java中连接字符串时使用"+"号和使用StringBuilder类的区别
- 细说java面试“=="和"equals"方法的区别以及常量池的概念及使用
- java中"==" 和 equals区别
- Java基础回顾: "=="和equals()方法的区别
- JAVA中null,"",equals,==相互之间使用详解
- Java中"equals"和"=="的区别
- Java中"=="和"equals"区别
- Java杂谈之String----"=="与equals的区别
- Java中的String str="abc"; String str=new String("abc");和String str = new String();的区别以及==与equals()的不同。
- Java中"equals"和"=="的区别
- java中"=="和equals()的区别