定义
JAVA中数据类型分为基本数据类型和引用数据类型。
基本数据类型:byte,short,int,long,char,boolean,float,double;
引用类型:除了基本类型以外的所有类型,比如String是引用类型,我们自己创建的类也属于引用数据类型。
内存分配
引用数据类型,一般变量和实例存储在两块空间,即变量存的不是实例本身而是实例的地址。基本类型变量一般变量存储具体的数值内容,如果在方法体中(局部变量)则分配在栈中(虚拟机栈的局部变量表),如果作为类的成员变量则跟随对象在堆中,总之int a=10只占据一块内存。
修改
对于基本类型变量num,赋值运算符将会直接修改变量的值,原来的数据将被覆盖掉,被替换为新的值。对于引用类型变量str,赋值运算符只会改变变量中所保存的对象的地址信息,原来对象的地址被覆盖掉,重新写入新对象的地址数据。但原来的对象本身并不会被改变,只要不再被任何引用所指向的对象,即“垃圾对象”,后续会被垃圾回收器回收。