【发布时间】:2011-02-17 14:59:31
【问题描述】:
以下内容取自 Best practice: Writing efficient code 但我不明白为什么
private static String x = "example";
快于
private static final String x ="example";
谁能解释一下。
对字符串使用静态变量
当您定义静态字段时(也 称为类字段)类型的字符串, 您可以通过以下方式提高应用程序速度 使用静态变量(非最终变量) 而不是常量(最终)。这 原始数据则相反 类型,例如 int。
例如,您可以创建一个字符串 对象如下:
private static final String x = "example";对于这个静态常量(表示为 最后的关键字),每次你 使用常量,一个临时字符串 创建实例。编译器 消除“x”并将其替换为 字节码中的字符串“example”, 以便 BlackBerry® Java® Virtual 机器执行哈希表查找 每次引用“x”时。
相反,对于静态变量(无 final 关键字),创建字符串 一次。 BlackBerry JVM 执行 哈希表查找仅当它 初始化“x”,因此访问速度更快。
private static String x = "example";您可以使用公共常量(即 最终字段),但您必须标记 变量作为私有变量。
【问题讨论】:
标签: java blackberry