String 个人理解
2019-03-28 本文已影响0人
从入门到暴毙
1.继承关系
因为string是继承final的,所以他是一个不可变的字符串,并且还不能被继承
重点:String 类中的每一个看起来会修改 String 值的方法,实际上都是创建了一个全新的 String 对象,用来包含修改后的字符串内容,这也可以说明 String 对象具有只读的属性。
2.构造方法
空参数初始化
以上代码创建了两个string对象
1.创建了一个值为空string对象
2.然后创建一个"hello"存在常量池中,因为string继承final,所以是存在常量池中,然后将这个值赋值给第二个string对象
3.在将第二个string对象的引用传递给第一个string对象
带参初始化
以上代码创建一个对象
1.创建一个hello在常量池中,然后赋值给string
equals方法
1.首先会判断他们的引用地址是不是相等的,如果是相等的,说明是他们相同
2.其次是判断他们的长度是不是相同的。如果长度不相同的话说明他们不相同,直接返回false
如果相同的情况下,再去判断他们的值是不是相同的,相同返回true,反之为false
hashCode方法
1.如果string的长度为0的话,直接返回0,反之就通过算法算出他的hashCode值
intern方法
如果常量池中有当前String的值,就返回这个值,如果没有就加进去,返回这个值的引用,
String对“+”的重载
+号会创建一个StringBuilder对象,然后调用的他的append方法将wustor拼接起来,然后在调用append的方法将android拼接起来,最后在电泳他的toString方法。