那么他底层是怎么怎样运行的呢?接下来跟我一起来看看吧!
我们java内存分配有堆、栈、方法区....,
方法区:储存可以运行的class文件。
栈内存:方法运行时使用的内存,方法进栈运行,运行完毕后出栈。
堆内存:new出来的,都在堆内存中开辟一个小空间。
方法区中 加载Test.class ->main->change 在加载的方法的同时在栈内存中进行入栈 先入栈的是main方法 基本类型变量a=10会保存在栈内存中,不会创建堆内存。
当change()方法运行完会执行出栈,它所更改a的值也会随着change方法出栈消失。
方法区中 加载Test.class ->main->change 在加载的方法的同时在栈内存中进行入栈 先入栈的是main方法 存中,引用类型数组new int代码的时候,系统会在堆内存创建一块内存给arrs,并把地址返回给arrs。
在传参的时候是通过堆内存中的地址传给change,在change 方法中会拿着传递过来的地址在堆内存中找到arrs这个数组,并把arrs[1]上面的值改为222.随着方法运行完,change出栈,堆内存中的arrs是不会清理的。
总结:创建基本类型不会在堆内存开辟空间存储,基本类型会随着方法的出栈而消失,基本类型传参,传的是值,引用类型传参传的是地址。