您的位置:首页 > 其它

关于String类的一些理解

2014-11-04 14:11 330 查看
一、了解==和equals的区别

== 如果比较的是对象,则是比较的该对象引用的地址,如果比较的是简单的数值类型,则比较的 是实际的值。
equals 在object中的定义如下:

Object
类的 equals 方法实现对象上差别可能性最大的相等关系;即,对于任何非空引用值
x
y
,当且仅当
x
y
引用同一个对象时,此方法才返回
true
x
== y
具有值
true
)。
不同的封装类继承了Object类,可能出现不同的方法重写(对equals()方法的重写),则会出现不同的结果 Integer类中的equals定义为:比较此对象与指定对象。当且仅当参数不为
null
,并且是一个与该对象包含相同
int
值的
Integer
对象时,结果为
true

例如,有如下代码:


出现的结果为:


二、关于String类





s/s1指向了一个常量,而在串池中,同一个常量只会保存一次,所以s和s1指向的是同一个对象
而s3指向的是一个常量加上一个变量组成的对象,因此此对象会存放在堆区,所以不是同一个对象
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: