177 01 Android 零基础入门 03 Java常用工具类02 Java包装类 02 包装类学习 06 需要知道的几点知识(中)

177 01 Android 零基础入门 03 Java常用工具类02 Java包装类 02 包装类学习 06 需要知道的几点知识(中)

本文知识点: 需要知道的几点知识(中)

说明:因为时间紧张,本人写博客过程中只是对知识点的关键步骤进行了截图记录,没有对截图步骤进行详细的文字说明(后面博主时间充裕了,会对目前的博客编辑修改,补充上详细的文字说明);有些步骤和相关知识点缺乏文字描述,可能会难以理解。读者如有不明之处,欢迎博客私信或者微信(本人微信在博客下方的“关于博主”处)与本人交流,共同进步

需要知道的几点知识(中)

上一篇文最后,留了思考问题,详细问题如下:

我们之前学习了包装类和基本数据类型之间的拆装箱操作
mark

我们来看下面这段代码,请思考,这段代码的输出结果应该是怎样的呢?
mark

这段代码的正确输出结果如下:
mark

这个结果和你想的一样吗?为何会产生这样的结果,就是我们接下来要学习的内容。

很显然,下图中的结果是false。我们之前学习过,如果等号两边放的是对象名的话(即比较对象),它实际上比的是对象在内存中的引用,而不仅仅是里面的值。
通过new关键字的操作,我们实际上是在内存中开辟一块新的内存空间。
one和two分别指向的是不同的内存空间,只不过这两个空间存的值都是100罢了。
虽然值一样,但是用了两次new关键字,所以它俩指向的是不同的空间。
所以,当我们用“==”(相等)符号去判断的时候,返回的结果一定是false。
mark
mark
mark

mark
mark

关键点在valueOf方法的在内存中的缓存区:
mark

原文地址:https://www.cnblogs.com/xlfcjx/p/13854269.html