java中toStrig类的重写,String类的详解。

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_33322074/article/details/86418925

一、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类的方法

猜你喜欢

转载自blog.csdn.net/qq_33322074/article/details/86418925