java - 定义常量标识符的最佳方法?

标签 java android

在我的 Java 应用程序中,我的一个对象只有一组值中的一个值。现在我想知道如何定义它们以提高性能:

private static final String ITEM_TYPE1= "type1"

private static final int ITEM_TYPE1= 1

定义 int 比 string 更好吗? (我应该将值转换为字符串,所以我喜欢定义为字符串,但只是担心性能原因,因为比较 ints 可能比 srtings 更简单)

编辑:我知道枚举,但我只想知道整数是否比字符串具有更好的性能?这取决于 JDK 和 JRE 如何处理 underging。 (在 Android dalvik 或 ART 中..)

最佳答案

In my java application one of my objects has exactly one value from a set of values

这就是java enums是为了。

关于“整数比字符串有更好的性能”这个问题,这几乎是荒谬的。

你说的是静态常量。即使它们在您的应用中使用了 100 次或 1000 次,性能在这里也无关紧要。重要的是编写易于阅读和维护的代码。因为这样 JIT 就可以启动并将其转换为经过优化的机器代码。

请理解:过早的优化是万恶之源!您的应用程序的性能好坏取决于许多其他因素,绝对不是将常量表示为整数或字符串。

除此之外:Java 中某些事物的类型 应该反射(reflect)其性质。如果它是一个字符串,就把它变成一个字符串(比如当你想主要将它用作字符串,并将它连接到其他字符串时)。当您有数字并将它们作为数字处理时,将其设为 int。

关于java - 定义常量标识符的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54688653/

相关文章:

java - 即使指定了列名也是错误的

java - 方法覆盖访问修饰符和返回类型限制

android - Color_FormatSurface 实现

android - 带有 Google API 的 Robolectric - AnnotationFormatError

android - 从膨胀的布局中删除黑色边框

android - 如何在加载新请求之前完全重置 Android webview

java - 如何从 arrays.xml 文件中获取字符串数组

java - 使用 java、xml 和 spring 学习/实现 Web 服务的最佳书籍/教程

java - RMI - 客户端如何获取服务器控制台输出?

android - 我在 Android Q 中将 IMEI 设为空?