Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
XML字符串资源与Java常量字符串?_Java_Android_Xml_String - Fatal编程技术网

XML字符串资源与Java常量字符串?

XML字符串资源与Java常量字符串?,java,android,xml,string,Java,Android,Xml,String,我有一个字符串类似于stringdata=“apps” 我知道在Android中加载字符串有两种方式 第一个是 所以它是一个常数,我把它定义为 public static final String data="apps"; 另一种类型是在res/vslues/strings.xml文件中定义它,如 <string name="data">apps</string> <string name="hello_world

我有一个字符串类似于
stringdata=“apps”

我知道在Android中加载字符串有两种方式

第一个是

所以它是一个常数,我把它定义为

public static final String data="apps";
另一种类型是在
res/vslues/strings.xml
文件中定义它,如

<string name="data">apps</string>
<string name="hello_world">Hello world!</string>
应用程序
你好,世界!
如果我想用的话

对于第一种方式
ClassName.data

对于第二种方式
context.getResources().getString(resourceid)

问题:

所以现在我的问题是,我想在不同的类中使用相同的
字符串
30次。我有更多的变量。因此,在上述方法中,加载速度更快,占用的内存更少


XML字符串值是可以根据区域设置重写的显示字符串。通过这种方式,您可以通过一个常量键引用一个可翻译的显示值。

但是,在任何情况下,速度都不应该是一个问题。我建议根据合理的情况进行组织

常数类

放置将在内部使用的字符串常量,如数据库列名或其他键

strings.xml

放置为用户显示的字符串。通过这种方式,您可以利用本地化等优势

根据要求,您应该更喜欢第二种方法,即XML 基于


您应该考虑使用XML字符串来向用户显示一些东西,并根据区域设置更改它。


无论如何,
publicstaticfinalstringdata=“apps”来隐藏一些非用户数据,如数据库连接、日志消息等。

我建议您利用Android资源系统

引用这本书:

Android中的资源效率高且速度快。XML资源被编译成二进制格式。这使得它们在开发时很友好,在运行时不会很慢。

我认为速度和内存使用是一样的。类中的常量就像string.xml中的常量一样,它只存储一次,并在需要时在其他地方引用。
然而,存储在string.xml中的优势在于避免了额外的代码导入行。同时,您必须记住,对于string.xml存储,您只能在活动的上下文可访问的地方使用它。

首选第二种。因为如果您在所有活动中使用相同的方法,并且希望再次更改,那么只需要在strings.xml中更改一次。我认为加载过程中不会有太大的差异,这取决于这些常量和资源将在哪里使用。我认为对于java代码,常量更好,因为您不需要像资源一样使用方法来读取字符串值。但是,资源可以更好地用于区域设置处理..strings.xml比常量更快。查一下Raghav的答案Sood@kalyanpvs对我来说,这听起来是最符合逻辑的答案。谢谢