我刚开始考虑这个问题,但最终无法想出什么。声明的字符串仅在一个方法中使用,永远不会更改。字符串是应该在方法中声明还是在类中作为静态final?
课堂上的例子:
public class DBHandler {
final String sqlInsertHouse = "INSERT INTO " tableName + " VALUES (?,?)";
public void insertHouse(String name, String type) {
//use sqlInsertHouse string in query.
}
}
方法示例:
public class DBHandler {
public void insertHouse(String name, String type) {
final String sqlInsertHouse = "INSERT INTO " tableName + " VALUES (?,?)";
//use sqlInsertHouse string in query.
}
}
那我应该使用哪一个?如果这取决于具体情况,那么请举一些例子。
答案 0 :(得分:2)
取决于它的调用频率。
如果你在方法之外声明它,那么Javas escape analysis将标记它并在编译为字节代码时用锁定代码将其包围,这意味着效率较低。
在方法中声明它将在每次调用时创建一个新的String,如果它被调用很多就会效率低下。
所以基本上两种方式都很好,这些只是需要注意的事情。要找出哪个更快,你可能需要对其进行分析。
同时强>
你的代码不会编译。 ;)