Java原语可以被视为轻型对象

Vic*_*tor 1 java heap primitive object

按照这个答案在这里

java对象和基元都在堆上.那么从JVM的角度来看,除了那些对象在堆上占用更多空间之外,对象和原语是否相似?从本质上讲,原始只是"光"对象吗?

Ted*_*opp 7

Java原语不是"轻量级对象".他们是原始人.它们以两种非常重要的方式作为对象失败:它们不能进入Collection对象而它们没有方法.

除了作为实际Java对象的字段之外,它们也不会进入堆.你做不到new int.另请注意,当您声明一个基本类型的局部变量时,该变量就会存在.当您声明对象类型的局部变量时,您获得的只是对对象的引用,但它被设置为null并且通过简单地声明该变量而没有分配声明类型的对象.

请注意,autoboxing在某种程度上模糊了这种区别,但区别肯定存在.

  • 这是一个很好的短语:原始字段存储为它包含的对象的一部分.这是否在堆上(在当前的Java中它总是碰巧)是无关紧要的.与对象字段相反,其中仅将引用存储为对象的一部分,并且单独分配内容. (2认同)