Java中String类通过new创建与直接赋值的区别

时间:2022-03-18 20:27:49 类型:JAVA
字号:    

Java中String类通过new创建和直接赋值字符串的区别

方式一:String a = “aaa” ;

方式二:String b = new String(“aaa”);

常量池中已经有字符串常量”aaa”

常量池中没有字符串常量”aaa”


注:常量池:常量池(constant pool)指的是在编译期被确定,并被保存在已编译的.class文件中的一些数据。它包括了关于类、方法、接口等中的常量,也包括字符串常量。


1.寄存器:最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制.

2. 栈:存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(字符串常量对象存放在常量池中。)

3. 堆:存放所有new出来的对象。

4. 静态域:存放静态成员(static定义的)

5. 常量池:存放字符串常量和基本类型常量(public static final)。

6. 非RAM存储:硬盘等永久存储空间

<