String是引用数据类型,实例化方式有两种:
1:直接赋值
执行 String name1=“Tom”;后,Jvm在常量池中开辟一定的空间存放Tom,并让name1指向Tom。
public static void main(String[] args) {
String name1="Tom";
String name2="Tom";
System.out.println(name1);
System.out.println(name2);
}
```java
执行“String name2= "Tom";时,JVM会先检查常量池中是否已经存在了一内容为Tom的空间,如果存在就直接让name2指向该空间,否则就会在开辟一个新的空间存放该字符串,上面的代码等同于下面代码:
public static void main(String[] args) {
String name1="Tom";
String name2=name1;
System.out.println(name1);
System.out.println(name2);
}
2:
1、执行“String name3 ="Tom";后,JVM在常量池中开辟存放Tom的空间并让指向该空间;
2、执行“String name4 = new String(name3);”时,JVM直接创建一个新的对象并让name4指向该对象;
3、执行“String name5 = new String(name3);”时,JVM再次创建一个新的对象并让name5指向该对象;
```java
public static void main(String[] args) {
String name3 ="Tom";
String name4 =new String (name3);
String name5 =new String (name3);
System.out.println(name3);
System.out.println(name4);
System.out.println(name5);
}