知识大全 在String中==和equals的区别

Posted 常量

篇首语:非淡泊无以明志,非宁静无以致远。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 在String中==和equals的区别相关的知识,希望对你有一定的参考价值。

在String中==和equals的区别  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

下面是源代码(存为Java文件 编译运行 推敲下结果) public class DosShell     public static void main(String[] args)         // 开始测试了         System out println( Hello world );        //定义两个对象 并初始化         String c = Check equal method ;        String d = Check ;        //这样d 和 c是一样的么?        d += equal method ;        System out println( c equals(d)的结果并不表示c和d到底是不是引用的一个对象 因为它被重载了 结果 + (c equals(d)));            System out println( c==d的结果表示c和d到底是不是引用的一个对象 结果 + (c==d));          //intern方法是干什么的呢?原来是返回 常量池 中的常量的引用(如果没有就创建一个) 那么下面的结果是什么呢?        System out println( use intern method c==c intern() > + (c==c intern()));        System out println( use intern method d==c intern() > + (d==c intern()));        System out println( use intern method c==d intern() > + (c==d intern()));        System out println( use intern method d==d intern() > + (d==d intern()));        //原来c直接是引用的常量池中 而d不是 难怪c!=d;            //下面这个简单        String s = ;        String s = ;        System out println( String s = \\ \\ String s = \\ \\ );        System out println( s ==s : + (s ==s ));        System out println( s equals(s ): + s equals(s ));        System out println( s hashCode()==s hashCode(): + (s hashCode()==s hashCode()));        //让s 的引用变一下        s = ;        System out println( s = \\ \\ ; );        System out println( s ==s : + (s ==s ));        System out println( s equals(s ): + s equals(s ));        System out println( s hashCode()==s hashCode(): + (s hashCode()==s hashCode()));        //原来都是true 都是引用的常量池 如果这样呢?        s = new  String( );        System out println( s = new  String(\\ \\ ); );        System out println( s ==s : + (s ==s ));        System out println( s equals(s ): + s equals(s ));        System out println( s hashCode()==s hashCode(): + (s hashCode()==s hashCode()));        //new 方法在堆中创建了一个新的对象 而s 引用了它 不再是原来引用的常量池了                 //看看这个结果                s = new String();        System out println(s );        //这个语句相当于s = new String( );和下面的不一样                 String s = null;        System out println(s );        //再来看看intern方法 说明了什么??        String s = new String();        System out println( use intern method s ==s intern() > + (s ==s intern()));        //new 在堆创建了了个 对象 当然和常量池的 不一样了啊         本文出自 CTO 技术博客 cha138/Article/program/Java/hx/201311/25812

相关参考

知识大全 c#中String和string的区别

c#中String和string的区别  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  strin

知识大全 C#的==运算符和Equals()方法区别

C#的==运算符和Equals()方法区别  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  usi

知识大全 ViewState与Request.Form及string和String的区别

ViewState与Request.Form及string和String的区别  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,

知识大全 string、Empty和null三者的区别

string、Empty和null三者的区别  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  这是

知识大全 String和stringBuffer类字符串的区别

String和stringBuffer类字符串的区别  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 改写equals的时候遵守约定

  在java里面objectequals()的概念是两个引用指向的是同一个对象即两者指向同一个对象才equals()但是也有特例比如说一些原始类型integerstring等属于值相等就是说值相等也

知识大全 在.NET程序中正确使用String类型[2]

在.NET程序中正确使用String类型[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nb

知识大全 在.NET程序中正确使用String类型[1]

在.NET程序中正确使用String类型[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nb

知识大全 Apache Commons Lang之hashCode()、equals()

ApacheCommonsLang之hashCode()、equals()  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我

知识大全 VC2005中System::String转换为std::string

VC2005中System::String转换为std::string  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶