android - SQLiteOpenHelper android中变量的可见性

标签 android database sqlite

为什么在 SQLiteOpenHelper 类变量的所有演示和教程中总是:public static final

看看:

    public static final String ORDER_ID = "order_id";
    public static final String ORDER_LOGIN_NAME = "login_name";
    public static final String ORDER_RESTO_U_NAME = "resto_uniqe_name";

我的问题是:我正在制作一个应用程序,但它的数据库太大了。所以,我将不得不制作至少 60-70 个此类变量。不会影响应用性能吗?因为这些是静态变量。

任何帮助将不胜感激....

最佳答案

好吧,它们是public还是private还是package-protected取决于你的需要,但是final static是根据 Android 指南声明常量的好方法,请在此处查看解释:http://developer.android.com/training/articles/perf-tips.html#UseFinal

考虑类顶部的以下声明:

static int intVal = 42;
static String strVal = "Hello, world!";

编译器生成一个名为 的类初始化方法,该方法在首次使用该类时执行。该方法将值 42 存储到 intVal 中,并从类文件字符串常量表中提取 strVal 的引用。稍后引用这些值时,将通过字段查找访问它们。

我们可以用“final”关键字来改善事情:

static final int intVal = 42;
static final String strVal = "Hello, world!";

该类不再需要方法,因为常量进入 dex 文件中的静态字段初始值设定项。引用 intVal 的代码将直接使用整数值 42,而访问 strVal 将使用相对便宜的“字符串常量”指令而不是字段查找。

关于android - SQLiteOpenHelper android中变量的可见性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22554733/

相关文章:

java - Android Firebase实时数据库获取数据这么慢

php - Laravel 中缓慢的 MySQL 查询在其他地方却很快

java - 我想制作一个 recyclerview,将数据显示到 SQLITE 数据库中的新 Activity

ios - 是否使用 Core Data?

android - 像在新的 GMail 应用程序中一样从侧面滑出 ListView

javascript - 无法在 Android 中获取 Phone Gap 来提供当前时间

java - 使用 Intents 从 Android 上的照片库中选择多个图像

mysql - 字符串作为主键?

MySQL 图片和类别之间的多重关系

python - SUM() 查询为每个条目返回 0