java – LOST String对象会发生什么
发布时间:2020-12-14 05:32:30 所属栏目:Java 来源:网络整理
导读:Line 1: String x = "Java";Line 2: x.concat(" Rules!");Line 3: System.out.println("x = " + x); 输出是“x = Java” 第1行:创建一个新的String对象,给出值“Java”,并将x引用到它. 第2行:VM创建第二个String对象,其值为“Java Rules
Line 1: String x = "Java"; Line 2: x.concat(" Rules!"); Line 3: System.out.println("x = " + x); 输出是“x = Java” 第1行:创建一个新的String对象,给出值“Java”,并将x引用到它. 第2行:VM创建第二个String对象,其值为“Java Rules!”但没有提到它.第二个STRING对象即将失去;你无法得到它. 由于这些String对象是在Heap中创建的,因此第二个对象将是Garbage Collected. 解决方法
Enosh,在java字符串中是不可变的,所以你应该分配
x = x.concat(" Rules"); 对于第二行然后它将工作. 第二个对象最终将是GC’d,因为不再有实体引用它. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |