在“Hello, Android”的 SQLite 章节中,Constants
创建了一个接口来保存一些常量字符串:表名和字段名。
为什么?TITLE
使用比"title"
直接使用更有用吗?还有什么我想念的吗?
顺便说一句:如果我需要两张桌子,应该如何组织?我应该制作FirstTableConstants
和SecondTableConstants
接口吗?
如果您要多次使用一个字符串,最好为它创建一个常量。它可以防止多次创建字符串。对象分配不是免费的,因此您会看到一些性能提升。
考虑在循环中创建字符串的情况。
for(int i=0;i<n;++i){
System.out.println("title");
}
与使用常量相比:
for(int i=0;i<n;++i){
System.out.println(TITLE);
}
如果分配字符串“title”需要 1 毫秒,则第一个循环代码的运行时间为 NX 1 毫秒。
此外,使用常量构建 SQL 语句将比为类型(文本、整数、)修饰符(唯一,非空)等的语句关键字重复创建新字符串更快。
String TABLE_SCHEMA = "(" +
ID + " integer primary key autoincrement, " +
COL_FOO1 + " text, " +
COL_FOO2 + " text, " +
COL_FOO3 + " text, " + ...
如果您将“文本”设为常量,您就不会一遍又一遍地创建该字符串,因此您的 TABLE_SCHEMA 字符串创建得更快。
String TABLE_SCHEMA = "(" +
ID + " integer primary key autoincrement, " +
COL_FOO1 + TYPE_TEXT +
COL_FOO2 + TYPE_TEXT +
COL_FOO3 + TYPE_TEXT + ...
如果您使用的是一个类,您可能应该将它们作为 public static final String TITLE = "Some Title" 字段。最好以这种方式使用它,这样您在将其键入命令时就不会出错。您只需键入变量名称。