个人理解
首先JAVA是一门面向对象语言,那它本可以将所有变量都用类来保存,但是它本没有这样做,还是保留了八个基本类型。
那了解过JVM虚拟的朋友会知道,运行时的基本变量会放在运行栈内,对象类型变量会存在堆内而只在栈内放一个引用地址,结合我们操作系统以及计算机组成原理的知识,内存和磁盘交互会因为IO速度不匹配而采用高速缓存来过渡,这其中又会涉及到缓存的置换策略与命中率,而且对象类型变量会因为存储的是引用地址,又会多一个地址解析的过程。并且对象类变量在编译后会带有对象头属性,里面有很多标志信息会很占空间。
综上所属,若全部采用对象类型,对一些简单的使用就会造成存储空间,运行时间上的浪费。