如果String和其他字符串一样是一个类,如何使用双引号将其初始化?
Java的设计者决定保留面向对象语言中的原始类型,而不是将所有内容都变成对象,以提高语言的性能。原语存储在调用堆栈中,这需要较少的存储空间,并且操作成本较低。另一方面,对象存储在程序堆中,这需要复杂的内存管理和更多的存储空间。
出于性能原因,Java的String设计为介于基本体和类之间。
例如
String s1 = "Hello"; // String literal String s2 = "Hello"; // String literal String s3 = s1; // same reference String s4 = new String("Hello"); // String object String s5 = new String("Hello"); // String object
注意: 字符串文字存储在公共池中。这有助于共享具有相同内容的字符串的存储,以节省存储空间。String通过new运算符分配的对象存储在中heap,并且没有共享相同内容的存储。
String
new
heap