Java参数传递详解——值传递还是址传递?

本文详细探讨了Java中参数传递的方式,包括基本数据类型和引用数据类型的差异。对于基本类型,参数传递是值传递,不会影响原始变量;而对于引用类型,传递的是对象的地址,因此在方法内对对象的修改会影响到原始对象。通过示例解释了这一概念,帮助读者深入理解Java参数传递的机制。
摘要由CSDN通过智能技术生成

Java参数传递——值传递还是址传递?

首先是变量的存储方式

各种变量的存储方式:

基本数据类型:

int age = 20;

变量名age和值20都存储在jvm栈中

引用数据类型:

字符串见 https://blog.csdn.net/oooo2316/article/details/103298996

懒得看的话:字符串常量存储在堆的常量池中,字符串对象存储在堆的非常量池中

对象:

对象本身存储在堆中,包含了对象的成员变量和成员函数。

在这里插入图片描述

对象的地址x0123作为引用,赋值给对象变量obj。

因此,可以将x0123看作obj的值,这样一来,obj的变量名和值都是存储在jvm栈中了,只不过它的值是对象的地址。

程序运行时调用main方法,于是将mian方法的各种东西压入栈桢。

现在,假设main中新建了基本类型变量a和对象类型变量b,对象b中包含一个基本类型变量 i

int a = 5;
B b = new B();
b.setI(10);

还有一个可以将传入的 a</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值