当前位置:首页 > 内存 > 正文

java对象在内存中如何存储

  • 内存
  • 2024-06-08 06:59:21
  • 6872

一、java中基本数据类型inta=10,a在栈中存着,10是在常量池中存着吗?inta=10如果是这种情况,那么10在栈中
intergera=10,那么这个在常量池中
a在-128到127之间,就不会在堆中创建对象而是直接返回到IntegerCache中已有的值,如果该值不在上述范围内,则从堆中创建对象。使用=valueOf()方法,valueOf(int)将使用缓存。
Intergera=newInterger(10)这是在堆中
二、java对象的属性在内存里以什么形式存在?Java对象是引用类型,引用类型对象的内存是在堆上分配的。
如果堆中分配的Java对象包含属性,可以分两种情况来分析:
1.属性都是基本类型(byte、char、int等)所以对象的堆内存存储的是基本类型本身的值。
2.该属性是引用类型(Stringisoftypereference)
对象堆内存只存储该属性的引用,该属性指向的对象分配在另一个内存堆中。
所以,你的理解1是正确的,就是属性是引用类型的情况。但理解并不完整,还应该包括属性为基本类型的情况。
三、JAVA中哪些数据类型能存储值10?选出所有的答案.ACD
首先,10是一个数字,所以只能存储整数或浮点类型
char中实际存储的值是2字节整数,所以可以存储整数和char可以看作是无符号字节类型