- 基本数据类型的存储:在方法中定义的非全局基本数据类型变量的具体内容是存储在栈中的
- 引用数据类型的存储:只要是引用数据类型变量,其具体内容都是存放在堆中的,而栈中存放的是其具体内容所在内存的地址
代码演练
====
有了上面的基础知识储备,我们来讲三个代码示例,帮助大家理解 在 java 中 参数是如何传递的。
第一种:传 基本数据类型
package test;
/**
* ClassName: changeData <br/>
* Description: 调用方法 传递的是基本数据类型 能改变其值吗?
* date: 2021/5/6 16:16<br/>
*
* @author yiqi<br />
* @since JDK 1.8
*/
public class changeData {
public static void main(String[] args) {
int a = 10;
System.out.println("改变前的a ->" + a);
changeA(a);
System.out.println("改变后的a ->" + a);
}
private static void changeA(int temp) {
temp = 12;
}
}
结果证明:调用方法,传入 基本数据类型 变量的值 ,原始值没变
原因分析:因为 基本数据类型 作为方法参数 传递给方法 是 一种值拷贝,你改变的是他的兄弟,不是他自身。
图解分析:
第二种:传 引入数据类型
package test;
/**
* ClassName: changeData <br/>
* Description: 调用方法 传递的是引用数据类型 能改变其值吗?
* date: 2021/5/6 16:16<br/>
*
* @author yiqi<br />
* @since JDK 1.8
*/
public class changeData {
public static void main(String[] args) {
person p = new person();
System.out.println("改变前的age ->" + p.age);
changeA(p);
System.out.println("改变后的age ->" + p.age);
}
private static void changeA(person temp) {
temp.age = 12;
}
}
class person{
int age = 10;
}
结果证明:调用方法,传入 引用数据类型 变量的值 ,原始值变了
原因分析:因为 引用数据类型 作为方法参数 传递给方法 是 一种地址(引用)拷贝,你改变了这个地址对应的值,就是改变了他自身。
Java网盘:pan.baidu.com/s/1MtPP4d9Xy3qb7zrF4N8Qpg
提取码:2p8n
最后在出来放一波福利吧!希望可以帮助到大家!
**[CodeChina开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频】](
)**
千千万万要记得:多刷题!!多刷题!!
之前算法是我的硬伤,后面硬啃了好长一段时间才补回来,算法才是程序员的灵魂!!!!
篇幅有限,以下只能截图分享部分的资源!!
(1)多线程(这里以多线程为代表,其实整理了一本JAVA核心架构笔记集)
(2)刷的算法题(还有左神的算法笔记)
(3)面经+真题解析+对应的相关笔记(很全面)
(4)视频学习(部分)
ps:当你觉得学不进或者累了的时候,视频是个不错的选择
在这里,最后只一句话:祝大家offer拿到手软!!
]
(2)刷的算法题(还有左神的算法笔记)
[外链图片转存中…(img-bvf7u2ZR-1631375798891)]
(3)面经+真题解析+对应的相关笔记(很全面)
[外链图片转存中…(img-fykUy5OC-1631375798892)]
(4)视频学习(部分)
ps:当你觉得学不进或者累了的时候,视频是个不错的选择
在这里,最后只一句话:祝大家offer拿到手软!!