【问题标题】:Why use long[] instead of Date[]?为什么使用 long[] 而不是 Date[]?
【发布时间】:2012-04-11 13:54:58
【问题描述】:

I read this coding rule 表示您应该更喜欢使用long[] 而不是Date[],但没有提供关于为什么的参考。

我为什么要这样做?与Date 相比,使用long 有什么优势?这会对垃圾回收产生什么影响?或者这只是一堆废话?

【问题讨论】:

  • 没有任何上下文,这样的规则没有多大意义。
  • 我认为 Rational Application Developer(@drgomesp) 已经为他的编码规则使用了其他来源。我在这里找到了规则:appperfect.com/support/java-coding-rules/…,但没有解释原因。

标签: java coding-style date-formatting


【解决方案1】:

这取决于您要达到的目标。例如,long[] 的内存需求比Date[] 小(因为Date 是一个对象,long 是一个原语),但这对您的目的真的很重要吗?

【讨论】:

  • 正确 - 我更多地指的是数组的内容而不是数组对象本身,但感谢您在技术上更正确:-)
  • 我并不是想成为一个聪明人 :) 但事实上你只有一个对象(实际上是一个由 10000 个 longs 组成的数组)或者如果你有 10001 个对象(一个是数组,而 10000 Dates) 对垃圾收集器来说是一个巨大的差异
  • 我认为 Lukas Eder 的回答是正确的:appperfect.com/support/java-coding-rules/…
【解决方案2】:

如果其他人偶然发现了这个问题:

我不是想成为一个聪明人 :) 但事实上你只有一个对象(实际上是一个 10000 个长数组)或者你有 10001 个对象(一个是数组,还有 10000 个日期)对于垃圾收集器来说是一个巨大的差异

来自Lukas Eder

【讨论】:

    【解决方案3】:

    我相信这是因为使用 Date 的数据库可能会遇到很多问题。

    【讨论】:

    • 一些数据库无法识别 Date 类型。我遇到了这个问题,通过将它们保存为 UNIX 时间戳(长)来解决
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-30
    • 1970-01-01
    • 2013-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-06
    相关资源
    最近更新 更多