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);
}
本文深入探讨了Java中String类型的两种实例化方式:直接赋值和new关键字创建。详细解释了这两种方式下JVM如何处理字符串,以及它们在内存中的存储位置差异。
933

被折叠的 条评论
为什么被折叠?



