基本和引用数据类型的改变

1、Java中的方法:完成特定功能的代码块。

2、方法的重载和重写:

方法的参数如果是基本数据类型:
        形式参数的改变不影响实际参数的改变。
        形式参数:用于接收实际参数的变量(在方法的声明上)。
        实际参数:实际参与运算的变量。

A、方法的形式是基本数据类型图解:

方法区存储的是 Class 字节码文件,而 main 方法和 change 方法都在 ArgsDemo 里面,所以如图方法区有一个区域,
存储了 ArgsDemo.class,里面有 2 个方法:main、change 方法。

程序执行开始, main 方法首先会开始执行进栈(栈里的方法是先进后出),进栈后会为main方法开辟一块内存空间,进行
a、b的赋值,打印出 a=10,b=20。

程序继续往下走,调用 change(a,b) 方法,change方法会从方法区加载到栈中,进行内存区域分配,首先明确一点 a、
b的原始值分别是10、20。然后在change方法中进行赋值操作,进而在change方法中打印出a、b的值分别是20、40。当
change 方法走完成后,就会从内存中消失。就只剩下一个 main 方法,所以再次打印 a、b还是10、20。

B、方法的形式是引用数据类型图解:

和上面类似,程序执行开始, main 方法首先会开始执行进栈,创建 arr 数组,栈中数组 arr 通过地址值 001 指向堆中
new 出来的数组,进行赋值 1、2、3、4、5。

程序继续往下走,调用 change(arr) 方法, change 方法会从方法区加载到栈中,进行内存区域分配。而在调用chage方法
时,会把 arr 的地址值传递过去(这就是我们经常提到的2个引用指向同一个堆内存,任何一个应用对其的操作都会直接影响
另外一个引用),当 change 方法运算完成后,就会从内存中消失。

当我们再次遍历数组时候,就会发现这个数组发生了改变。

猜你喜欢

转载自www.cnblogs.com/miantiao312/p/10547526.html