目录
一、方法的内存
Java内存分配
栈:方法运行时使用的内存,方法被调用进栈运行
堆:new出来的,都在堆内存中开辟了一个小空间,堆里有地址
方法调用的基本内存原理
多个方法:主方法main,方法1,方法2,调用时依次进栈
方法2运算结束后出栈,再依次执行方法1,主方法运行后出栈
二、基本数据类型与引用数据类型
1.基本数据类型
整数类型
浮点数类型
布尔类型
字符类型
变量中存储的是真正的数据
特点:数据值是存储在自己的空间中,赋值给其他变量,也是赋的真实的值
2.引用数据类型
除了基本数据类型之外的数据类型
只要是new出来的都是引用数据类型,例如数组
如图,arr存储的不是具体的数据,而是存储的地址值
所以说:
- 变量中存储的是地址值
- 引用指的是:使用了其他空间的数据
特点:数据值是存储在其他空间中,自己空间中存储的是地址值,赋值给其他变量,赋的是地址值
二、方法的值传递与引用传递
1.值传递
传递基本数据类型时,传递的是真实的数据,形参的改变,不影响实际参数的值
没有new,由此判断是基本数据类型,单纯的值传递在change方法中对number的操作不会影响main方法中的number(变量是有作用范围的,只能在所属范围内有效)
2.引用传递
传递引用数据类型时,传递的是地址值,形参的改变,影响实际参数的值
3.基本数据类型与引用数据类型的内存图
基本数据类型:数据值是存储在自己的空间中
特点:赋值给其他变量,也是赋的真实的值。
引用数据类型:数据值是存储在其他空间中,自己空间中存储的是地址值。
特点:赋值给其他变量,赋的地址值。如果有一个变量将空间里面的值修改,则所有变量的对应的值都会被修改