码迷,mamicode.com
首页 > 编程语言 > 详细

java中==和equals的区别

时间:2017-08-17 14:34:41      阅读:128      评论:0      收藏:0      [点我收藏+]

标签:new   sys   out   ati   obj   共享   static   generate   pack   

package com.demo02;

public class TestObject {

/**
* @param args
*/
/*
* 1、object类是根类,里面定义的==和equals的作用相同,都是比较引用地址
* 2、而String不可变类重写了里面的equals方法。
* 此时的==是比较引用地址,equals是比较内容
* 3、String类中有何String池(Pool),对于可以共享的字符串对象,会出现在池中查找
* 是否存在相同的String内容(字符串相同),如果有就直接返回,而不是直接创建一个新的
* String对象,减少内存的耗用
*
*
* */


public static void main(String[] args) {
// TODO Auto-generated method stub
TestObject t1 = new TestObject();
TestObject t2 = new TestObject();
System.out.println(t1==t2);//false
System.out.println(t1.equals(t2));//false

String s1 = new String("abc");
String s2 = new String("abc");
System.out.println(s1==s2);//false
System.out.println(s1.equals(s2));//true
String s3 = "hello";
String s4 = "hello";
System.out.println(s3==s4);//true
System.out.println(s3.equals(s4));//true

}

}

java中==和equals的区别

标签:new   sys   out   ati   obj   共享   static   generate   pack   

原文地址:http://www.cnblogs.com/nn369/p/7380791.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!