关于Java传参时是引用传递还是值传递,一直是一个讨论比较多的话题。
有人说Java中只有值传递,也有人说值传递和引用传递都是存在的,比较容易让人产生疑问。
关于值传递和引用传递其实需要分情况看待。
一、Java数据类型
我们都知道,Java数据类型分为「基本数据类型」和「引用类型」两大类。
- 基本数据类型(8种)
数据类型 | 关键字 | 在内存中占用的字节数 | 取值范围 | 默认值 |
布尔型 | boolean | 1个字节(8位) | true,false | false |
字节型 | byte | 1个字节(8位) | -128 ~ 127 | 0 |
字符型 | char | 2个字节(16位) | 0 ~ 216-1 | 'u\0000' |
短整型 | short | 2个字节(16位) | -215 ~ 215-1 | 0 |
整型 | int | 4个字节(32位) | -231 ~ 231-1 | 0 |
长整型 | long | 8个字节(64位) | - 263 ~ 263-1 | 0 |
单精度浮点型 | float | 4个字节(32位) | 1.4013E-45 ~ 3.4028E+38 | 0.0F |
多精度浮点型 | double | 8个字节(64位) | 4.9E-324 ~ 1.7977E+308 | 0.0D |
- 引用类型
引用类型可分为类引用类型(类)、接口引用类型(接口)和数组引用类型(数组)。