堆栈
堆 heap
概念
- 堆用来存储对象,栈里头的对象的引用指向堆内存对应的对象
栈 stack
概念
- 栈用来存储基本数据类型的变量和对象的引用变量
- 方法参数的变量也是存储在栈的
基本数据类型有:byte,short,int,long,float,double,boolean,char
数组类型是对象,所以对象的引用包括数组
区别
JVM 中堆和栈属于不同的内存区域,使用目的也不同。
参考
https://www.51dongshi.com/ebzdssahrvc.html
值传递与引用传递
概念
- 值传递 :方法接收的是实参值的拷贝,会创建副本。
- 引用传递 :方法接收的直接是实参所引用的对象在堆中的地址,不会创建副本,对形参的修改将影响到实参。
程序设计语言将实参传递给方法(或函数)的方式分为值传递与应用传递,很多程序设计语言(比如 C++、 Pascal)提供了两种参数传递的方式,不过在 Java 中只有值传递。
实参(实际参数):用于传递给函数/方法的参数,必须有确定的值。
形参(形式参数):用于定义函数/方法,接收实参,不需要有确定的值。