Java中字节/整数数组的实际数据大小是多少

时间:2019-06-13 12:14:54

标签: java networking udp byte

我的问题是一个非常基本的问题,但我仍然很难完全理解它:

我的任务是发送包含512字节随机数据的UDP数据包(Java)。因此等于4096位。如果我发送大小为4096的字节数组(填充为“ 0”),是否等于512字节?

非常感谢:)

1 个答案:

答案 0 :(得分:1)

我在这里找到了一篇有趣的文章:dzone.com

以下是重要部分:

  

如何计算Java对象的内存使用量?:非常简化的解释,说明了如何计算Java对象的内存。例如,假设您要计算一个Java对象的内存,该对象包含两个int变量,一个布尔变量,一个Long对象以及对其他对象的引用。内存结果如下:

     
      
  • 对象标题的8个字节

  •   
  • 2 x 4 = 8个字节(用于两个int变量)

  •   
  • 1个字节的布尔变量

  •   
  • 8个字节(对象引用)+ 8个字节(用于长数据类型)= 16个字节(用于长对象)
  •   
  • 4个字节以引用其他对象
  •   
     

上述对象的总大小为8 + 8 + 1 + 16 + 4 = 37字节+ 3字节(用于填充)= 40字节。

     

如何计算Java数组的内存使用量?:该页面提供了有关如何计算Java数组对象的大小的示例。

     

例如,假设一个Java数组由20个Integer对象组成。以下是尺寸的详细信息:   数组标头对象为12个字节(标头为8个字节,数组的存储长度为4个字节)==> 20 x 16字节=整数对象为320个字节。