Java编程思想中关于基本数据类型和引用数据类型的区别
? ┏数值型━┳━整数型:byte short int long
????????????? ┏基本数据类型━━┫????????????? ┗━浮点型:float double
????????????? ┃??????????????????????????? ┣字符型:char?????????????????????????????????????????
数据类型╋??????????????????????????? ┗布尔型:boolean?????????????
????????????? ┃??????????????????????????? ┏类(class)
????????????? ┗引用数据类型━━╋接口(interface)
???????????????????????????????????????????? ┗数组(array)
java的数据类型分基本数据类型(原始数据类型)和引用数据类型;
基本数据类型:
???? 基本数据类型基本上都是一些特别小而且特别简单的变量,如果用new创建对象,由于new创建的对象都是存放在堆中,大家知道,由于堆的灵活性决定它的效率要低于堆栈,所以对于8种基本数据类型,Java不采用new创建句柄的方式,而是直接在堆栈中创建了一个非句柄的自动变量,容纳了具体的值,所以能够高效存取。
?
引用数据类型:
???? 引用数据类型就那三种,类似C/C++的指针,它以特殊的方式指向对象实体(具体的值),这类变量声明时不会分配内存,new的时候,存储了一个句柄在堆栈中以便高效引用,其对象实体(具体的值)在堆中开辟了一块内存,通过堆栈中的句柄调用该实体。