Java虚拟机种,数据类型分为两类:基本类型和引用类型
基本类型的变量保存原始值,引用类型的变量保存值的引用(地址)
基本类型:int ,short,byte,long ,char,float,double,boolean等
引用类型:string 、类类型、接口类型和数组
堆与栈
栈是运行时的单位,而堆是存储的单位
栈解决程序的运行问题,即程序如何执行,或者说如何处理数据;堆解决的是数据存储的问题,即数据怎么放、放在哪儿。
在Java中一个线程就会相应有一个线程栈与之对应,这点很容易理解,因为不同的线程执行逻辑有所不同,因此需要一个独立的线程栈。而堆则是所有线程共享的。栈因为是运行单位,因此里面存储的信息都是跟当前线程(或程序)相关信息的。包括局部变量、程序运行状态、方法返回值等等;而堆只负责存储对象信息。