Java值类型

本文引自 Java 有值类型吗? 作者王垠
所有的数据都是引用类型就是 Scheme 和 Java 最初的设计原理。原始类型用值来传递数据只是一种性能优化(叫做 inlining),它对于程序员应该是透明(看不见)的。那些在面试时喜欢问“Java 是否所有数据都是引用”,然后当你回答“是”的时候纠正你说“int,boolean 是值类型”的人,都是本本主义者。
关于inlining
参考透彻了解inlining的里里外外
这篇博文不是很切题,但是其中一段话:
可以消除函数调用所带来的开销
猜测java对int,boolean采用这种优化是为了:
1、节省寻址开销,如果保存引用,那么去地址空间寻值必然浪费一个cpu周期
2、一般来说int类型4字节,boolean1个字节,然而64位机器中的地址长度就是8个字节,放到堆上浪费空间
以上纯属推测,暂时无法验证,若有异议请留言。