【问题标题】:byte z[] = new byte[5]; - What does this mean? [duplicate]字节 z[] = 新字节[5]; - 这是什么意思? [复制]
【发布时间】:2015-04-14 15:51:08
【问题描述】:

我目前正试图了解我发现的一段代码。首先,我不确定为什么代码看起来像:

byte z[] = new byte[5];

代替:

byte[] z = new byte[5];

我的意思是,byte z[] 不是用来声明bytes 的数组吗?还是这段代码在做其他事情?

其次,为什么有人会选择bytes 而不是doublesintsbyte 似乎是 -128 到 127 之间的任何数字。选择 double 有什么意义?

【问题讨论】:

  • 选择双倍的有什么意义?消耗更少的内存。每种数据类型都需要一些内存。 Read more about it.
  • 完全不相关的两个问题最好问。否则你要求人们回答两个问题。
  • 这也取决于你想对这些值做什么。例如,如果您正在执行按位运算,您将不想使用double

标签: java


【解决方案1】:

byte[] z 等价于byte z[] 只是表示相同的两种不同方法。

请注意,sun(在成为 Oracle 之前)的 Java 代码约定建议使用第一个而不是第二个。所以最好使用

byte[] z = new byte[5];

而不是

byte z[] = new byte[5];

关于你问题的第二部分。

byte uses 1 byte
char uses 2 bytes
int  uses 4 bytes
long uses 8 bytes

所以最好是使用最小的数值类型来避免内存占用。

【讨论】:

  • 一个可爱的答案。谢谢。
【解决方案2】:

对于数组声明:Java 支持 c 风格的数组声明以及通常使用的自己的方式。 byte[] z 等价于 byte z[]bytedoubleint 占用更少的内存,并且比更大的数据类型提供更好的性能(尤其是优于 double)。

【讨论】:

  • "并提供比更大数据类型更好的性能。"来源?
  • 加法总是更快,数据类型越小。仅仅由于加法器的构建方式,由于需要加载的数据量较少等事实。我不会在来源中搜索那个明显的东西。
  • This answer 表示在 CPU 的本机字大小上的操作往往比其他大小更快,这与您的说法相反。
猜你喜欢
  • 2014-11-06
  • 1970-01-01
  • 2021-03-09
  • 2011-04-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-31
  • 1970-01-01
相关资源
最近更新 更多