String表示字符串类型,属于引用数据类型,不属于基本数据类型。
1、在Java中随便使用双引号括起来的都是String对象,双引号括起来的字符串是不可变的。
2、在JDK当中双引号括起来的字符串都是直接存储在“方法区”的“字符串常量池”当中的。
3、关于String类中的构造方法
* String s = new String(" ");
* String s = " "; 最常用
* String s = new String(char数组);
* String s = new String(char数组,起始下标,长度);
* String s = new String(byte数组);
* String s = new String(byte数组,起始下标,长度);
以下例子加深理解:
public class StringTest {
public static void main(String[] args) {
String s1 = "hello";
System.out.println(s1);//结果为hello,因此可得出结论,String类已经重新书写了toString()方法
byte[] bytes = {97,98,99};
String s2 = new String(bytes);
//输出一个引用的时候,会自动调用toString()方法,默认Object的话,会自动输出对象的内存地址。
System.out.println(s2);//结果为abc,因此可得出结论,String类已经重新书写了toString()方法
//输出字符串对象的话,输出的不是对象的内存地址,而是字符串本身
}
}
可得出结论: String类已经重新书写了toString()方法,输出字符串对象的话,输出的不是对象的内存地址,而是字符串本身。
输出结果为: