<分区>
根据这个答案here
Java 对象和原语都在堆上。那么从 JVM 的角度来看,对象和原语除了对象在堆上占用更多空间外是否相似?本质上,图元只是“轻”对象吗?
最佳答案
Java 基元不是“轻型对象”。他们是原始人。它们作为对象在两个非常重要的方面失败了:它们不能进入 Collection
对象并且它们没有方法。
它们也不在堆上,除非作为实际 Java 对象的字段。你不能做 new int
。另请注意,当您声明原始类型的局部变量时,该变量就会存在。当你声明一个对象类型的局部变量时,你得到的只是一个对象的引用,但它被设置为 null
并且声明类型的对象不会通过简单地声明变量来分配。
请注意 autoboxing稍微模糊了区别,但区别肯定存在。
关于java - Java原语可以被认为是轻型对象吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18048745/