string 如何实现的 有哪些重要的方法
(源码)多构造方法
String 为参数的构造方法
public String (String original){
this.value = original.value;
this.hash = original.value;
}
char[] 为参数的构造方法
public String (char value[]){
this.vlaue =Arrays.copyOf(value,value.lenght);
}
stringBuffer为参数的构造方法
public String (StringBuffer buffer){
synchronized(buffer){
this.vlaue =Arrays.copyOf(buffer.value,buffer.lenght());
}
}
StringBuilder为参数的构造方法
public String (StringBuilder builder){
this.vlaue =Arrays.copyOf(builder.value,builder.lenght());
}
equals比较字符串的源码
public boolean equals (Object anObject){
if(this == anObject){return true;} //对象引用相同返回true
if(anObject instanceof String){
String antherString=(String ) anObject;
int n =value.lenght;
if(n == antherString.value.lenght){
//把两个字符串转换为char数组对比
char v1[] =value;
char v2[] = antherString.value;
int i = 0;
//循环对比两个字符串的每一个字符
while(n-- !=0){
if(v1[i] = v2[i])return false;
i++;
}
return true;
}
}
return false;
}
instanceof使用例子
Object oString = "123";
Object oInt = 123;
System.out.pringtln(oString instanceof String); //返回true
System.out.pringtln(oInt instanceof String); //返回false
compareTo(); 比较两个字符串 (0 相等 正数是大于 负数是小于)
compareTo与equals区别
equals可以接受一个Object类型的参数 而compareTo只能接收String类型的参数
equals 返回值为Boolean 而compareTo返回Int
String 的其它方法

其它问题:








拼接后 s1 == s2 //true
本文详细解析了Java中String类的实现原理,包括其构造方法、equals方法的源码分析,以及instanceof关键字的使用示例。同时,对比了String类中的equals与compareTo方法的区别,介绍了String类的其他常用方法。
1368

被折叠的 条评论
为什么被折叠?



