java中调用方法传值问题详解,Java架构师面试资料

本文详细探讨了Java中基本数据类型和引用数据类型在方法调用时的传值方式,通过实例展示了传基本数据类型时值不变,而传引用数据类型时会改变原始值的原因。同时,提供了丰富的Java面试学习资源,包括多线程、算法题、面试真题解析及视频教程,助力提升技能,获取更多offer。
摘要由CSDN通过智能技术生成
  • 基本数据类型的存储:在方法中定义的非全局基本数据类型变量的具体内容是存储在栈中的

  • 引用数据类型的存储:只要是引用数据类型变量,其具体内容都是存放在堆中的,而栈中存放的是其具体内容所在内存的地址

代码演练

====

有了上面的基础知识储备,我们来讲三个代码示例,帮助大家理解 在 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核心架构笔记集)

image

(2)刷的算法题(还有左神的算法笔记)

image

(3)面经+真题解析+对应的相关笔记(很全面)

image

(4)视频学习(部分)

ps:当你觉得学不进或者累了的时候,视频是个不错的选择

在这里,最后只一句话:祝大家offer拿到手软!!

]

(2)刷的算法题(还有左神的算法笔记)

[外链图片转存中…(img-bvf7u2ZR-1631375798891)]

(3)面经+真题解析+对应的相关笔记(很全面)

[外链图片转存中…(img-fykUy5OC-1631375798892)]

(4)视频学习(部分)

ps:当你觉得学不进或者累了的时候,视频是个不错的选择

在这里,最后只一句话:祝大家offer拿到手软!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值