主要是关于:基本类型和引用类型在本质上有什么区别. 基本类型主要包括: boolean、byte、short、char、int、long、float、double。 其它全部的类型都属于引用类型。
这要从堆栈的优点和区别提及:html
因此性能方面来讲,使用基础数据类型确定会比使用引用数据类型速度快。java
堆相对进程来讲是全局的,可以被全部线程访问;而栈是线程局部的,只能本线程访问。打个比方,栈就比如我的小金库,堆就比如国库。你从我的小金库拿钱去花,不须要办什么手续,拿了就花,可是钱数有限;而国库里面的钱虽然不少,可是每次申请花钱要打报告、盖图章、办 N 多手续,耗时又费力。
一样道理,因为堆是全部线程共有的,从堆里面申请内存要进行相关的加锁操做,所以申请堆内存的复杂度和时间开销比栈要大不少;从栈里面申请内存,虽然又简单又快,可是栈的大小有限,分配不了太多内存。jvm