`

一个基本问题关于引用的

 
阅读更多

问:

int a = 1;
Integer b = new Integer(1);
System.out.println(a==b);
结果为什么是true
但是
String c = "abc";
String d = new String("abc");
System.out.println(c == d);
结果就是false了?
请说一下具体的原因

 

 

答:

==在java中的作用是比较,比较的是左右两个操作数的“直接值”,所谓直接值,对基本类型而言就是其值本身,比如int a = 1,就是1;对引用类型而言,就相当于“内存地址”,引用对象内部所包含的内容(比如String的字符串)不是它所关心的。

Integer对象有在一定范围内自动拆箱概念,为什么会自动拆箱,可能认为这类数值型对象更多的使用价值是其数值内容,而非对象地址,为更实际方便使用。

String 对象有intern(internalize)概念,是为了节省空间,同样内容的String对象只需一个内存实例即可,防止堆中出现过多相同内容的 String对象造成使用上的浪费。String c = "abc"; 这样定义是liternal string,天生就是interned的。

 


http://topic.csdn.net/u/20120515/09/429f3b13-ec97-41ba-a869-9ef831e2d1d4.html?seed=577676173&r=78564159#r_78564159

分享到:
评论

相关推荐

    动态规划算法与分治法类似,其基本思想也是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。

    动态规划算法与分治法类似,其基本思想也是将待求解问题分解成若干...子问题中存在大量的公共子问题,在分治求解过程中被多次重复计算,保存计算结果,为后面的计算直接引用,减少重复计算次数这就是动态规划的基本思想

    值类型和引用类型的区别

    似乎“值类型和引用类型的区别”是今年面试的流行趋势,我已然是连续三次(目前总共也就三次)面试第一个问题就遇到这个了,这是多大的概率啊,100%. 言归正传,咱还是先来探讨探讨这二者之间有什么区别吧。记得有...

    smartptr——基于自动引用计数的智能指针

    智能指针相信大家听说过吧,我理解的智能指针,既是一个C++模板类,重载了指针操作符(->)和(*)操作符,而使它的实例可以"用指针的形式去调用"。 它可以接管任意类型的指针,所以你只需要放心大胆的new出任意对象...

    JavaScript给input的value赋值引发的关于基本类型值和引用类型值问题

    在自己做东西时,遇见了一个问题。就拿博客园的首页右边的搜索举例吧,用控制台操作。      现在我需要从另外一个地方将数据传给input,让其在一刷新的时候就显示数据。  这不难啊,于是我按照我的理解做了 ...

    论JS函数传参时:值传递与引用传递的区别

    ,如果将内存看成一本书,栈好比是书的目录,而堆就是书的内容,基本类型可以看成内容非常少,只要目录就可以概括,而引用类型就相当与内容非常多的文章,需要在书的目录上保存一个地址,然后根据书的地址再找内容。...

    解决问题的基本方法–“七步法”

    遵循80/20原则– 在20小时内写完访谈纪要– 与其在一个星期内完成一个完美的访谈纪要,不如立即做一个有80%准确性的访谈纪要 提及被访谈者对问题的反应,而不仅仅限于她所用语言表达的 引用被访谈者原话,以此强调...

    公式编辑器编号及引用问题

    通过对mathtype的研究,指出了其编号及引用的基本操作,对于word处理中需要大量运用公式编辑的情况,对于公式编辑器的使用有一定的指导作用。

    关于Java的几个经典问题

    到底创建了几个String对象(三)——变量(属性)的覆盖 (四)——final、finally和finalize的区别 (五)——传了值还是传了引用(六)——字符串(String)杂谈 (七)——日期和时间的处理 (八)——聊聊基本...

    你必须知道的495个C语言问题

    中,如果不关心a[]的哪一个分量会被写入,这段代码就没有问题,i也的确会增加1,对吗? 3.11 人们总是说i=i++的行为是未定义的。可我刚刚在一个ANSI编译器上尝试过,其结果正如我所期望的。 3.12 我不想学习那些...

    解决vue多个路由共用一个页面的问题

    下面小编就为大家分享一篇解决vue多个路由共用一个页面的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    基于预测模型的基本养老保险问题分析 (2013年)

    针对单一预测模型误差大的问题,在介绍灰色GM(1,1)模型、二次指数平滑预测及 Logistic曲线方程3种预测方法的基础上,引用最优加权组合建模理论,以均方误差平方和为最小目标函数确定权重系数,建立组合预测模型。...

    你必须知道的495个C语言问题.pdf

    中,如果不关心a[]的哪一个分量会被写入,这段代码就没有问题,i也的确会增加1,对吗? 3.11 人们总是说i=i++的行为是未定义的。可我刚刚在一个ANSI编译器上尝试过,其结果正如我所期望的。 3.12 我不想学习那些复杂...

    数学建模、麻将番及番种的计算,以碰碰和、五门齐、清一色为例,引用了图论算法来简化问题,并对问题进行了验证

    本文根据题设所给不同麻将的不同规则(主要以碰碰和、五门齐...数学建模、麻将番及番种的计算,以碰碰和、五门齐、清一色为例,引用了图论算法来简化问题,并对问题进行了验证 主要使用MATLAB软件进行编程和模型的实现

    《你必须知道的495个C语言问题》

    中,如果不关心a[]的哪一个分量会被写入,这段代码就没有问题,i也的确会增加1,对吗? 38  3.11 人们总是说i=i++的行为是未定义的。可我刚刚在一个ANSI编译器上尝试过,其结果正如我所期望的。 38  3.12 我不...

    C/C++中指针和引用之相关问题深入研究

    ②从内存分配上看,程序为指针变量分配内存区域,而不为引用分配内存区域,因为引用声明时必须初始化,从而指向一个已经存在的对象。引用不能指向空值。 ③从编译上看,程序在编译时分别将指针和引用添加到符号表上...

    【重磅、更新、百万级观测值】1991-2021上市公司专利引用数据合集,海量数据!

    专利引用基本信息(1991-2021),150w+观测值,包括被引用专利号、分类 号、申请日、专利所有权人、专利引用数量、被引用次数等7个变量 2、最全面、公司数 量最多、指标最详细的申请的专利的被引用数量(1991-2021)...

    XmlSerializer基本例子以及注意事项(代码注释)

    有一个Company类和一个Group类。 Company表示一个公司,Group表示一个集团。 二、注意事项: 1. 被序列化的对象必须要有一个构造函数。 2. private 属性将不会被序列化。如果不想序列化一个public属性,则打上 ...

Global site tag (gtag.js) - Google Analytics