知道String对象的大小

时间:2011-09-12 04:36:23

标签: java string

的两种情况下,为String对象分配了多少内存
String s = new String("abc");
String s = "abc";

2 个答案:

答案 0 :(得分:1)

有许多s = new String("abc"); s2 = new String("abc");等等将导致为此给定字符串分配多个内存。

使用第二种方式 - String s = "abc"; String s2 = "abc"; ...无论您使用此abc值制作“新”字符串多少次,都只会分配一次内存。

在两种方式中,一个对象应使用相同的内存大小。

答案 1 :(得分:1)

String s = new String("abc"); 

用于表示上面分配的字符串的空间取决于平台。对于32位JVM,String占用大约10个32位字。但是,如果以特定的方式创建String,那么这些单词中的5个将与原始的String文本共享...至少使用标准的Java 6类库。


String s = "abc"; 

根本不分配字符串。而是将对现有字符串文字的引用分配给s