一、toString类介绍
即:返回该对象的字符串表示。
如果要输出一个对象,必定会调用toString()语句。
打印p对象和打印s变量其实是一样的结果。因为在打印p对象时,会有这个暗操作p.toString();
注意:当没有重写toString()方法时,会打印地址。如果重写了toString()会打印重写的内容。
二、String类学习
把String 类看引用类型,String是一个不需要new就可以创建对象的类。给String赋值的引号的内容都是String对象的值。
这也解释了为什么打印str变量就能打印str的值而不是地址。因为str调用并重写了Object类的toString()方法。
注意:一定要把String类看成一个引用类型。一个特殊的引用类型。对于引号中的字符串是一个常量,其实是一个数组,一旦写入就会固定不变。
而String类声明的变量 str相当于一个指针。指向字符串的首地址。
三、String str =new String("abc");和String str="abc";的区别
1、这个的区别在于"abe"是一个数组。new String()相当于在堆内存中开辟了一个空间,空间里存储着abc的首地址。String str相当于创建了一个对象指针,指向了String()开辟的空间。当打印str时,相当于重写了toString()方法。打印了abc。
2、对于String str="abc";相当于str对象指针,直接指向了数组abc。
故,两者str地址是不同的。但是由于String类重写了Object类的equals()方法变成了比较字符串。由于字符串是相同的。返回true
四、String类的构造方法
注意:这个编码表是如果值是正的会用ASCALL码。如果值是负的会参照GBK编码汉字。字体-128~127。汉字必须两个字节数字成对出现。
2、构造方法二
注意:只有字节数组会查询编码表。
3、其他构造方法
五、String类的方法