English 中文(简体)
静态扼杀物在 Java似乎就地str的长寿
原标题:On the longevity of static strings vs seemingly local strings in Java
  • 时间:2009-10-07 18:35:42
  •  标签:

鉴于以下氮 theA

private static final String SQL = "SELECT * FROM TABLE WHERE ID = ?";

页: 1

public List<MyObject> getData(final Long id){
    return (List<MyObject>)template.query("SELECT * FROM TABLE WHERE ID = ?",id);
}

页: 1

public List<MyObject> getData(final Long id){
    return (List<MyObject>)template.query(SQL,id);
}

B和C是否有效? 我在B里的扼杀(young的产生)是否得到了 g。 因为它具有地方范围?

最佳回答

无论是B还是C,都不会形成<条码>。 <代码>String将在编码装载时创建(如果该编码尚未作为接口的<编码>编码/编码>)。 它将与守则的其他部分一起收集垃圾(除非另外提及同样的<代码>String。

问题回答

固定不变值总是intered。 每当你叫 sB时,它都会使用同样的标语。 基本上,它相当于氮化A+C。

确实,具有相同特性的两种强硬的恒定会也使用提及相同特征的内容:

String x = "a" + "b";
String y = "ab";

System.out.println(x == y); // true

B和C两种都使用同样的扼杀价值,因为所有扼杀基本上都是由联合核查组“确定的”。 只要需要,他们就记忆犹新。

是否使用B或C是可读性(和可维持性)的问题。 办法B提供了库瑞尔角紧邻使用其结果的守则的优点,因此,不应质疑所询问的用点是什么。

方法 如果你在很多地方重新使用同样的卡片,使你能够确定整类(或一揽子,甚至)。 如果你不得不改变它所使用的一切,那么你只需要改变这一定义。





相关问题
热门标签