Java中数据类型的分类

1. 值类型

值类型数据也就是基本数据类型,四类八种:

1.1 逻辑型:boolean

1.2 字符型:char

1.3 整型:byte、short、int、long

1.4 浮点型:float、double

值类型变量的内容是数据本身,例:a = 5,则a的内容是5,5存放在

所以,值类型的数据是存放在

2. 引用类型

除了值类型,其他都是引用类型:数组、类、字符串、接口

引用类型变量的内容是数据地址,例:String str = "abc",则str的内容是"abc"的地址,而"abc"存放在中,

所以,引用类型的数据是存放在中,变量内容(即地址)存放在

变量内容存放在

函数调用中,参数传入都是将实参的内容拷贝一份给形参

3. 值传递

值类型变量的内容数据本身,所以拷贝一份给形参,形参改变后,不影响原数据(修改的拷贝的数据)

4. 引用传递

引用类型变量的内容是数据的地址,拷贝一份给形参后,形参将地址内容修改,实参地址指向的数据也改变(形参和实参指向相同的地址

注:String类型是无法在原内存地址修改内容,在Java API中有这么句话:Strings are constant; their values cannot be changed after they are created. 在上例2中,修改str为:str="123";内部过程为:

在堆区再开辟一块空间并赋值"123"

在将"123"所在地址空间传给str

若无变量引用"abc",则将"abc"所在地址空间回收

5. 垃圾回收机制

栈中的空间:随着方法结束自动释放

堆中的空间:当一个对象不被任何变量引用时,自动释放该对象空间

参考:https://www.cnblogs.com/cycanfly/p/5230119.html

参考:https://blog.csdn.net/qq_22408539/article/details/82945990

猜你喜欢

转载自blog.csdn.net/Faustine___/article/details/92590908
今日推荐