知识点:
1、object基类和其方法;
2、string类的基本方法;
3、堆区,栈区和方法区;
java object基类:
所有类的基类,所有类都直接或者间接的继承自它。
方法:
clone:克隆一个对象的副本;完全一样的对象。
和引用=的区别:引用可以改变被引用对象的属性。
equals:数据类型的比较,比较的默认是数据类型的地址值。但是因为string类重写了tostring方法,所以equals比较的是字符串内容是否相同。
==:比较引用类型比较的是地址值是否相同
toString:输出类的属性等。默认引用的是基类的tostring方法,输出的格式是:类名 + @ + 地址值。但是我们为了更好的查看类的各种信息,一般要重写此方法。我们可以利用ide的自动重写方法,更快捷的重写此方法。
string类:字符串一旦被赋值,就不能改变。注意:是值不能变,但是引用可变。
String s = new String(); //默认构造函数,s什么东西都没有
byte[] bytes = {97,98,99,100};//A,B,C,D的hascode值
String s2 = new String(bytes);//输出A,B,C,D
字符串拼接:
String s = “hello”;//在方法区中有,就直接返回;无,则创建;
s +=“word”;//s = helloword 在方法区中没有,要创建。s又是引用另一个地址值
栈区:String s 声明
堆区:存放new出来的对象的地址值
方法区:1、字符串常量池:”hello”—地址“:0x001
区别:
String s2 = new String(“hello”);//在堆区中,实体放在方法区中的字符串常量值中,在栈区中引用的堆区值则是另外一个地址。
String s1 = “hello”;//栈区中的声明,直接引用方法区中的地址值,如果有的话,直接返回地址值。
注意:
1、字符串如果变量想嫁,先开空间,再拼接。
2、字符串如果常量相加,先拼接,然后在常量池中找;有直接返回,无则开空间。
string类的判断功能:
equals(object obj);
equalsIgnorecase(String str);
contains(string str);
startswith(String str);
endswith(String str);
isEmpty();