我们在上一个文章已经介绍了Java的八大基本数据类型下面我将介绍Java具体有什么数据类型。
首先,java的数据类型分为基本数据类型(也就是上一张的八大基本数据类型)和引用数据类型。
因此下面将介绍引用数据类型。
1)对象类型(Object Types)
2)数组类型(Array Types)
3)接口类型(Interface Types)
4)枚举类型(Enum Types)
5)泛型类型(Generic Types)
类型 | 描述 |
---|---|
对象类型(Object Types) | 用户自定义的类或 Java 内置的类库中的类,变量存储的是对象的引用。 |
数组类型(Array Types) | 一组具有相同数据类型的值的有序集合,大小固定,元素可以是基本数据类型或对象类型。 |
接口类型(Interface Types) | 一种特殊的引用数据类型,定义了一组方法的签名,但没有实现方法的代码。可以被类实现,也可以被其他接口继承。 |
枚举类型(Enum Types) | 一种特殊的类,限定了变量只能取特定的值,每个元素都是枚举类型的实例。 |
泛型类型(Generic Types) | 一种通过参数化类型来实现代码复用的机制,适用于不同的数据类型,使得代码更加通用和灵活。 |
好了现在我们了解了,引用类型和八大基本类型,那他们的区别是什么呢?下面我将向大家继续介绍。
-
存储内容:
- 基本类型:基本类型的变量直接存储值。例如,当我们声明一个 int 类型的变量时,变量直接存储整数值。
- 引用类型:引用类型的变量存储的是对象在内存中的地址或引用,而不是对象本身。当我们声明一个对象类型的变量时,变量实际上存储的是指向对象的引用。
- 默认值:
- 基本类型:基本类型的变量有默认值,如 int 类型的默认值为 0,boolean 类型的默认值为 false。
- 引用类型:引用类型的变量的默认值为 null,表示不指向任何对象。
-
存储位置:
- 八大基本类型:基本类型的变量存储在栈内存中。
- 引用类型:引用类型的变量存储在堆内存中,而引用本身(对象的地址)存储在栈内存中。
-
性能和存储空间:
- 基本类型:基本类型的变量通常比引用类型的变量在存储和访问时更加高效,因为它们直接存储值,而不是对象的引用。
- 引用类型:引用类型的变量在存储和访问时可能需要更多的资源,因为需要额外的内存来存储引用,以及间接地访问对象。
注:因此我们在比较String类型时候要注意,使用字符串带的equal方法而不是用==,因为==只是比较的地址,equal方法比较的是内容。