Object String类
1. Java.lang.Object
2. API application programming interface
3. 一共11(其实是9个,三个重载),
4. toString,
String 重写了toString
Object 默认输出所属类名@hashcode(16进制内存地址)
clone,
equals, hashSet
getClass,
notify,notifyAll, wait(),wait(lont timeout),wait(long timeout,int nanos)
5. 进制
16进制转10进制 123=1*16二次方+2*16一次方+3*16零次方
6. String
String str1=”bbb”,String str2=”bbb”(字面值的方式赋值) str1==str2 ---true
String a=”bbb” String b=new String(“bbb”)(new方式赋值) a==bfalse string pool(str1=”bbb”,str2=”bbb”先检查有无这个对象,如果没有创建新的对象,如果没有,指向str2)
7. String s=”hello” String s1=”hel” String s2=”lo” s==s1+s2->false (String 类是fianl,所以是不能被改变的,s1+s2会生成s3)
8. 重写equals方法
public boolean equals(Object o){
if(this==o){
return true;
}
if(o instanceof TestClass){
TestClass tc=( TestClass)o;
if(tc.equals(this)){
return true;
}
}
return false;
}
9. String 类是fianl,所以是不能被改变的,s1+s2会生成s3
10. string pool(字面赋值)如果string pool中存在,直接返回string pool中的内存地址。
如果不存在,存在不创建任何对象,直接将string pool地址传回
11. (new方式赋值)检查string pool中查找有没有内容为”aaa”这个对象,如果有直接在堆中创建string pool对象,将堆地址传给引用,如果没有内存中创建对象,并在堆中创建对象
12. Intern()方法
“hello”.intern() 如果string pool
如果具有内容相同的对象,对象就会被返回回来
如果没有创建一个对象,并返回对象地址
13.String :"aa"+"bb"会生成3个对象影响效率
解决办法:StringBuffer buffer=new StringBuffer();
buffer.append("aa").append("bb");
String a=buffer.toString;//效率高
1. Java.lang.Object
2. API application programming interface
3. 一共11(其实是9个,三个重载),
4. toString,
String 重写了toString
Object 默认输出所属类名@hashcode(16进制内存地址)
clone,
equals, hashSet
getClass,
notify,notifyAll, wait(),wait(lont timeout),wait(long timeout,int nanos)
5. 进制
16进制转10进制 123=1*16二次方+2*16一次方+3*16零次方
6. String
String str1=”bbb”,String str2=”bbb”(字面值的方式赋值) str1==str2 ---true
String a=”bbb” String b=new String(“bbb”)(new方式赋值) a==bfalse string pool(str1=”bbb”,str2=”bbb”先检查有无这个对象,如果没有创建新的对象,如果没有,指向str2)
7. String s=”hello” String s1=”hel” String s2=”lo” s==s1+s2->false (String 类是fianl,所以是不能被改变的,s1+s2会生成s3)
8. 重写equals方法
public boolean equals(Object o){
if(this==o){
return true;
}
if(o instanceof TestClass){
TestClass tc=( TestClass)o;
if(tc.equals(this)){
return true;
}
}
return false;
}
9. String 类是fianl,所以是不能被改变的,s1+s2会生成s3
10. string pool(字面赋值)如果string pool中存在,直接返回string pool中的内存地址。
如果不存在,存在不创建任何对象,直接将string pool地址传回
11. (new方式赋值)检查string pool中查找有没有内容为”aaa”这个对象,如果有直接在堆中创建string pool对象,将堆地址传给引用,如果没有内存中创建对象,并在堆中创建对象
12. Intern()方法
“hello”.intern() 如果string pool
如果具有内容相同的对象,对象就会被返回回来
如果没有创建一个对象,并返回对象地址
13.String :"aa"+"bb"会生成3个对象影响效率
解决办法:StringBuffer buffer=new StringBuffer();
buffer.append("aa").append("bb");
String a=buffer.toString;//效率高