一、从概念方面来说
基本数据类型:变量名指向具体的数值
引用数据类型:变量名指向存数据对象的内存地址,即变量名指向hash值
二、从内存构建方面来说
基本数据类型:变量在声明之后java就会立刻分配给他内存空间
引用数据类型:它以特殊的方式(类似C指针)指向对象实体(具体的值),这类变量声明时不会分配内存,只是存储了一个内存地址。
三、从使用方面来说
基本数据类型:使用时需要赋具体值,判断时使用“==”号
引用数据类型:使用时可以赋null,判断时使用equals方法
举个简单例子说明
class A{
private int age;
private String name;
}
int是基本数据类型,当你new A()得时候,age自动赋值为0;
但是对于引用类型name来说,此时只会分配一个引用,指向null, 当你想使用name得时候不能直接引用,必须实例化之后才能使用。否则,会引起空指针exception