我们使用Math数学类里面的一个方法来演示,叫max方法,我们都知道这个方法用于对用户传入的两个参数的值进行大小的比较,我从jdk给大家先看一下这个方法
这里面是不是要传入两个参数a,b才能进行大小比较,所以当我们使用这个方法的时候,就需要传入两个参数,这两个参数哪儿来的?就是我们手动输入或者在其他方法名传入的参数,这就是实参,既然是输入,那肯定这个实参肯定是一个确定的值,不可能说输入一个都不知道是啥数据的东西是吧?然后就是什么数据都可以输入,比如基本数据类型和引用数据类型,那么问题来了,既然传入了实参是不是得保存起来才能调用,既然要保存,保存到哪呢?文本我已经说过了,基本数据类型保存到堆里面,引用数据类型保存到方法区的常量池里面,到这里就有必要让大家看一下代码在底层是怎么运行的,给大家画一张图
可以看到在jvm底层,基本数据类型放在堆里面,图示我画出了假如a=1,b=2,因为都是基本数据类型中的int整形,所以存放在堆里面,如果传入的是引用数据类型,当然就要放在方法区的常量池里面了,现在讲完存放了,下一步是不是就在栈写一个max方法(凡是方法都是在栈运行的),