Java 学习笔记:基本数据类型和引用数据类型的区别

一、核心结论

Java 的数据类型大体可以分为两类:

  1. 基本数据类型

  2. 引用数据类型

一句话理解:

基本数据类型:变量里面直接存的是“值”。
引用数据类型:变量里面存的是“地址”,通过地址找到真正的数据。


二、基本数据类型

1. 什么是基本数据类型?

基本数据类型是 Java 自带的 8 个基础类型。

byte
short
int
long
float
double
char
boolean

这些类型的变量里,保存的是具体的值。


2. 基本数据类型示例

int age = 18;
double height = 1.75;
char gender = '男';
boolean isStudent = true;

三、引用数据类型

1. 什么是引用数据类型?

引用数据类型不是直接存具体内容,而是存一个地址。

最常见的引用类型是:

String

例如:

String name = "张三";

可以简单理解成:

name 变量里面存的不是“张三”本身,
而是“张三”这个对象所在的位置。

2. 常见引用数据类型

String
数组
类
对象
接口

示例:

String name = "张三";
int[] nums = {1, 2, 3};

其中:

String name = "张三";      // 引用类型
int[] nums = {1, 2, 3};    // 引用类型

四、核心区别表

对比项基本数据类型引用数据类型
存的是什么 具体的值 对象的地址
常见例子 intdoublecharboolean String、数组、对象
是否可以为 null 不可以 可以
赋值时复制什么 复制值 复制地址
修改后是否互相影响 一般不影响 可能会互相影响

五、代码理解:基本数据类型

int a = 10;
int b = a;

b = 20;

System.out.println(a);
System.out.println(b);

输出结果:

10
20

原因:

int b = a;

这句话是把 a 里面的值 10 复制一份给 b

所以:

a 和 b 是两个独立的变量。
修改 b,不会影响 a。

六、代码理解:引用数据类型

int[] arr1 = {10, 20, 30};
int[] arr2 = arr1;

arr2[0] = 99;

System.out.println(arr1[0]);
System.out.println(arr2[0]);

输出结果:

99
99

原因:

int[] arr2 = arr1;

这句话不是复制一个新的数组,而是把 arr1 的地址复制给了 arr2

所以:

arr1 和 arr2 指向的是同一个数组。
通过 arr2 修改数组内容,arr1 看到的内容也会变化。

七、判断练习

判断下面代码是基本类型还是引用类型:

int a = 10;
double price = 9.9;
String name = "李四";
boolean isVip = false;
char level = 'A';
int[] nums = {1, 2, 3};

答案:

int a = 10;                  基本类型
double price = 9.9;          基本类型
String name = "李四";        引用类型
boolean isVip = false;       基本类型
char level = 'A';            基本类型
int[] nums = {1, 2, 3};      引用类型

八、记忆口诀

8 个基本类型:
byte short int long float double char boolean

除了这 8 个,先都可以当成引用类型理解。

例如:

String        // 引用类型
数组           // 引用类型
类             // 引用类型
对象           // 引用类型
接口           // 引用类型

九、当前阶段先记住

基本数据类型:变量里直接存值。
引用数据类型:变量里存地址。

示例:

int age = 18;              // 基本数据类型
double price = 3.5;        // 基本数据类型
boolean flag = true;       // 基本数据类型
char gender = '男';        // 基本数据类型

String name = "张三";      // 引用数据类型
int[] nums = {1, 2, 3};    // 引用数据类型
posted @ 2026-06-21 00:19  忧桑の民工  阅读(5)  评论(0)    收藏  举报