没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
A.可用于基本类型和引用类型:当用于基本类型时候,是比较值是否相同 ;
当用于引用类型的时候,是比较对象是否相同。
B.对于 这种类型的特有对象创建方式,
的时候值是相同的。
C.基本类型没有 方法, 只比较值(对象中的内容)是否
相同(相同返回 )。
D.一个类如果没有定义 方法,它将默认继承 中的
方法,返回值与方法相同。
详述:
==和 equals 的实质。
在 中利用比较变量时系统使用变量在栈中所存的值作为比
较的依据。
基本数据类型在栈中存的是其内容值而对象类型在栈中存的是地址
这些地址指向堆中的对象。
包中的 类有 !!"!#方
法它比较两个对象是否相等。
其它对象的 方法仅当被比较的两个引用指向的对象内容相同时对
象的 "#方法返回 。
总之和$比较的是地址也可认为和$比较的是对象句柄
而 "#比较的是对象内容或者说和$比较的是栈中的内容而
"#比较的是堆中的内容
%==操作符。专门用来比较两个变量的值是否相等,也就是用于比较变
量所对应的内存中所存储的数值是否相同,要比较两个基本类型的数据或两个
引用变量是否相当,只能用操作符。
的 基 本 数 据 类 型 为
"&,',&!,,!,(!,)!,!!#。
如果一个变量指向的数据是对象类型的,那么,这时候涉及了两块内存,
对象本身占用一块内存"对内存#,变量本身也占用一块内存,例如 !
*"#变量 ! 是一个内存,*"#是一个内存,此时,变
量所对应的内存中存储的数据就是对象占用的那块内存的首地址。对于指向对
象内存的变量,如果要比较两个变量是否指向同一个对象,即要看这两个变量
所对应的内存中的数值是否相等,这时候就需要用操作符进行比较。
+ 构造器形成的差别。对于 和 来说,由于他们特有的创
建对象的方式。使用构造器和不使用构造器得到一个对象,方法比较所产
生的结果是不同的。 此时 得到
结 果 为 。 * "# *
"#此时 得到的结果为 ,。
此时 的结果是 。*"#
*"#此时 得到的结果为 ,。
通过这一点其实我们也能够更加容易理解对内存的实际操作,实际执
行的是近似于基本类型比较。
String
对象和字符串连接池:
引号内包含文本是 类特有创建对象的方式但是返回的结果
是 为什么呢-因为在 . 内存在字符串池其中保存着很多 对象,
并且可以被共享使用,因此它提高了效率字符串池由 类维护,我们可
以调用 "#方法来访问字符串池。当运用引号 内包含文本创建对象时所创
建的对象是加入到字符串池里面的如果要创建下一个字符串对象. 首先会
到字符串池中寻找是否存在对应的字符串对象如 果存在则返回一个己存在对
象的对象的引用给要创建的对象引用如果不存在才会创建一个新的对象并返
回一个新对象的对象引用给要创建的对象引用以上 这段话理解起来可能比较
拗口用代码理解就是 / 和 是两个对象引用并指向了同一个对象所
以00返回的是
只有引号内包含文本创建对象才会将创建的对象放入到字符串池。
*"#这种方法创建的字符串对象是不放入到字符串池的 。
所以引号内包含文本创建对象的性能要比后来那种方法创建字符串对象的性能
要好。
/
12/33这种创建方式是不放入字符串池的
42)33这种创建方式是不放入字符串池的
52/33这种创建方式是不放入字符串池的
62)33这种创建方式是放入字符串池的这种情况实际上
是创建了 个对象,) 个对象
7)
'8! "/#33返回
'8! "67#33返回
另一个问题:
我们首先来看一段 代码:
*"#
紧接着这段代码之后的往往是这个问题,那就是这行代码究竟创建了几个
对象呢?相信大家对这道题并不陌生,答案也是众所周知的,/ 个。接
下来我们就从这道题展开,一起回顾一下与创建 对象相关的一些
知识。
我们可以把上面这行代码分成 、、和 *"#四部分
来看待。 只是定义了一个名为 的 类型的变量,因此它并
没有创建对象;是对变量 进行初始化,将某个对象的引用(或者叫句柄)
赋值给它,显然也没有创建对象;现在只剩下 *"#了。那么,
*"#为什么又能被看成和 *"#呢?我们来看一
下被我们调用了的 的构造器:
代码
"!#9
33!&!)
:
大家都知道,我们常用的创建一个类的实例(对象)的方法有以下两种:
我们正是使用 * 调用了 类的上面那个构造器方法创建了一个对象,
并将它的引用赋值给了 变量。同时我们注意到,被调用的构造器方法接受
的参数也是一个 对象,这个对象正是。
使用 * 创建对象是调用 ; 类的 * 方法,利用反射机制创建
对象。
<equals 方法。用于比较两个独立对象的内容是否相同,就好比去比较
两个人的长相是否相同,它比较的两个对象是独立的。例如,对于下面的代码:
*",!!#
*",!!#
两条 * 语句创建了两个对象,然后用 这两个变量分别指向了其中一个对
象,这是两个不同的对象,他们的首地址是不同的,即 和 中存储的数值是
剩余12页未读,继续阅读
资源评论
java小王子
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功