详述:String 实例化方式
Sting 是引用数据类型,该String 实例化方式有两种,以代码形式详述
public class Test {
public static void main(String[] args) {
//String;类创建类型有两种:
//第一种:
String name1 = "XXXXX";
System.out.println(name1); //输出XXXXX
// 第二种:
String name2 = new String("xiaoming");
System.out.println(name2); //输出xiaoming
上面代码的第一种实例化方式是采取的是直接赋值的方式,而第二种采取的是构造方式来进行赋值的。
两种方法的区别
但是二者是存在区别的,第一种直接复制的方式,会出现常量池数据共享的情况,也就是代码在执行String name2 = new String("xiaoming");
的时候,JVM在常量池中开辟空间存放一个xiaoming字符串空间,并让name1指向该对象,说明一下,如果上述代码存在String name3 = = "XXXXX;"
则JVM会先检查常量池中是否存在内容为XXXXX的空间,如果存在的话,就直接让name3指向该空间,如果没有,则需要开辟另一个新的空间存放该name3的字符。
而第二种实例化的方式,是创建对象的实例化,在执行上述代码String name2 = new String("xiaoming");
的时候,JVM会直接创建一个新的对象并让name2指向该对象,但是与第一种不同的是,如果上述代码存在String name4 = new String("xiaoming");
JVM会直接又新创建一个对象并让name4指向该对象。