以下两种方式定义了内容为“hello”的字符串:
方式一: String s1 = "hello",s2 = "hello";
方式二: String s3 = new String("hello"),s4= new String("hello");
第一种方式,"hello"为直接数,Java虚拟机把它当作编译时常量,在内存中只会为它分配一次内存,就可以重复使用,s1==s2的结果为true。
第二种方式,每个new语句都会创建新的String对象,s3==s4结果为false。
以下两种方式定义了内容为“hello”的字符串:
方式一: String s1 = "hello",s2 = "hello";
方式二: String s3 = new String("hello"),s4= new String("hello");
第一种方式,"hello"为直接数,Java虚拟机把它当作编译时常量,在内存中只会为它分配一次内存,就可以重复使用,s1==s2的结果为true。
第二种方式,每个new语句都会创建新的String对象,s3==s4结果为false。