当前位置: 首页 > 知识库问答 >
问题:

初始化为数组时在java中使用{}

南宫云
2023-03-14
int[] outSize = new int[]{bytes, packets};

new byte[] {0, 0, 0, 0}

第一行代码是什么意思?它如何调整数组大小?第二行代码如何初始化该字节数组(如果是)?

共有2个答案

孟健
2023-03-14

一线

int[] outSize = new int{ bytes, packets };

这将创建一个包含两个整数元素的整数(基元)数组,即字节数据包

第二线

new byte[] { 0, 0, 0, 0 }

这本身会给您一个错误(不是编译),因为它不是一个语句(任何地方都没有变量赋值)。

如果你写

byte[] bytes = new byte[] { 0, 0, 0, 0 };

您正在声明一个名为bytes的字节数组,其中包含四个元素。

使用{}进行数组初始化

请参阅本文件第10章(阵列),特别是第10.1节和第10.2节。

同样值得一读的是原始数据类型。

从上面:

int是一个32位有符号2的补码整数(基数10中的最小值为-2^31,最大值为2^31-1)。

byte是一个8位有符号2的补码整数(以10为底的最小值为-2^7,最大值为-2^7-1)。

它在做什么

第一行使用64位存储两个整数。

第二行使用32位存储四个字节。

桑鸿志
2023-03-14

我们可以在声明时使用给定的syntex初始化数组

int[] outSize = new int[]{5, 9}; //create a Integer array of 2 element named outSize

 int bytes = 5, packets =9;
 int[] outSize = new int[]{bytes, packets}; //create a Integer array of 2 element named outSize.

使用上述两种语句没有区别。

 类似资料:
  • 问题内容: 我有这个代码 有人可以告诉我我在这里到底在做什么错,我该如何纠正?我只需要将所有数组元素初始化为布尔型false。谢谢 问题答案: 我只需要将所有数组元素初始化为布尔型false。 请改用任一方法,以便所有值默认为: 或者 使用填充整个数组: 另请注意,数组索引基于零。该行如你有会导致。要了解有关Java中数组的更多信息,请查阅此基本Oracle教程。

  • 问题内容: 我正在初始化这样的数组: NetBeans在此行指出一个错误: 我该如何解决这个问题? 问题答案: 上面的信息不正确(语法错误)。这意味着你正在分配一个仅可容纳元素的数组。 如果要初始化数组,请尝试使用: 注意两个声明之间的区别。将新数组分配给声明的变量时,new必须使用。 即使你纠正了语法,访问仍然是不正确的(你只能访问,因为Java中的数组索引是基于0的)。访问]将抛出。

  • 问题内容: 我知道当我初始化一个char数组时: 要么 为什么不喜欢 初始化数组: 为什么它们不同?它是Java哲学的本质之一还是其​​背后的某些原因? 问题答案: 如果您曾经使用过 C ,那么答案就非常简单。在 C语言中 ,创建数组的方式是在堆栈上分配一个足以容纳元素数量的静态内存长度,并使用指针指向第一个元素-或堆上动态内存长度,然后用指针指向第一个元素。 在 C ++中 ,第二个版本已更改为

  • 我有以下课程: 现在,我需要使用以下项目初始化2D数组: 我看了这个例子,但它在我的情况下不起作用:Java8流和数组操作。它们使用单个。 问:当然我可以使用嵌套for循环,但我认为它现在已经过时了,而且被认为是不好的。那么,如何应用streams api并以Java8的方式初始化它呢?

  • 据我所知,在Java11中,这两个操作可以在一行中完成,不是吗?

  • 问题内容: 声明多维数组并为其分配值的正确方法是什么? 这就是我所拥有的: 问题答案: 尝试将适当的行替换为: 您的代码不正确,因为子数组的长度为y,索引从0开始。因此,设置为或将失败,因为索引和超出范围。 ;是初始化矩形多维数组的正确方法。如果希望将其锯齿状(每个子数组的长度可能不同),则可以使用类似于此答案的代码。但是请注意,如果您想要一个完美的矩形多维数组,John关于必须手动创建子数组的主