前言
有时间了就是好,可以有更多时间做自己喜欢的事了,今天代码是敲爽了,也有点累了,就给大家分享一个原理很简单的但是在Java中很重要的小东西传参机制,参数这个东西只要是开始接触Java就开始接触了,但是学习嘛,都会有个过程,一开始都是模仿,这是没有任何错的,是正确的学习方法,但是一直都是这样的话那就是有问题了,所以有时候就得搞懂一些深一点层次的东西,人嘛要向前看,如果这个传参机制不弄清楚,可以说Java白学了,所以给大家来点有意思的。为了让大家有直观的感受,我就不来那些太官方的文字了。
一、基本数据类型
jib
基本数据类型就如上图所示,有4大类,8分支,在参数的传递中都非常常见,这个东西一定要记住他们的特点,今天我们重点不在这。
二、基本数据类型的传参机制(简单)
1.代码演示
为了方便演示我们用基本数据的int类型
代码如下(示例):
public class Test01 {
public static void main(String[] args) {
// 交换两个数,其实是直接传值
int a = 5;
int b = 6;
System.out.println("mian函数没有运行changge方法的a,b为:"+a+","+b);
Test01.changge(a,b);
System.out.println("mian函数运行changge方法的a,b为:"+a+","+b);
}
public static void changge(int a,int b) {
System.out.println("changge没有开始运行的a,b为:"+a+","+b);
int temp = 0;
temp = a;
a = b;
b = temp;
System.out.println("changge运行了的a,b为:"+a+","+b);
}
}
大家可以猜一猜每次输出的地方都是什么,其实争议最大的数main函数运行了方法以后的值,这里就会出现两个选项,一个是5,6另一个是6,5,那到底是什么呢,哈哈,我们接着看输出吧
代码如下(输出):
mian函数没有运行changge方法的a,b为:5,6
changge没有开始运行的a,b为:5,6
changge运行了的a,b为:6,5
mian函数运行changge方法的a,b为:5,6
哈哈,没想到吧,这个输出是5,6,咦,是不是有点诧异,这两个数的交换方法是没奏效吗。其实是不然,这个两个数的交换方法是起了作用的,因为从changge运行了的a,b为:6,5,既可以看出确实是交换过来了的,看程序的运行顺序最后的结果为什么不是6,5呢,这就得和基本数据的传参机制挂钩。
2.基本数据类型传参机制
在虚拟机的内存中有两个主要的储存区域一个叫栈一个叫堆,当参数类型为基本数据类型的时候,实际是保存在栈里面的,没有在堆里面,当实参为基本数据类型的时候它是直接将值复制一份给changge自己去玩,自己的那份还是没动,它们是各不相干的,所以就会出现上面那个不合理的状况,基本数据类型传参传的是值。
总结
今天就先分享一下基本数据类型的传参机制,下次再分享引用数据类型的传参机制,非常感谢大家的支持!!!!!感谢,感谢,感谢