Java中相同长度的int和Integer数组内存占用是怎样的

新手上路,请多包涵

请教各位大佬,如题所问:另外关于java中,包装类和基本数据类型,在jvm层对应内存结构及大小,以及Java的基本类型数组和对象数组的区别。

感谢~

阅读 3.2k
1 个回答

基本类型:
byte 1个字节= 8位
short 2个字节= 16位
int 4个字节= 32位
long 8个字节 = 64位
char 2个字节 = 16位
double 8个字节 = 64位
float 4个字节 = 32位


包装类
包装类的对象都是对象(废话), 所以都有引用和实际对象, 引用自然是在调用时的局部变量方法栈中,对象都在堆内存中, 包装类的对象也都是在堆内存中;

可以这么理解: 想看对象在哪里 ?

基础类型

  1. 如果是定义在方法中, 每次调用都会生成一个方法调用栈, 调用完毕销毁,所以, 是在虚拟机栈中!
  2. 如果是定义在类中, 则运行中是作为对象的实例变量存储在堆内存中的;

包装类型

  1. 如果是定义在方法中:类引用在栈中, 对象在堆内存中;
  2. 如果是定义在类中: 属于实例变量, 存在于堆内存!

数组类型

数组的实际内容都有一块连续的空间, 存在于堆内存;

Java数组在内存中是如何存放的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题