Java的参数传递——形参和实参
问题起源
在写力扣的算法题https://leetcode.cn/problems/merge-sorted-array/时,需要传入一个int类型的数组为形参。在调用时,发现实参没有改变。故写下此博客。
理论知识
在Java中形参与实参对应两种类型:值类型与引用类型
- 值类型:包括8种基本类型(byte、short、int、long、double、float、char、boolean)。为值类型时,形参方法内的参数值改变,不会影响到实参的值
这里要特殊考虑String,以及Integer、Double等几个基本类型包装类,它们都是immutable类型,因为没有提供自身修改的函数,每次操作都是新生成一个对象,所以要特殊对待,可以认为是和基本数据类型相似,传值操作
- 引用类型:数组、类、接口等类型。为引用类型时,形参方法内的参数值改变,会影响到实参的值
代码实践
传值调用
public class tetstest { public static void main(String[] args) { int[] a={1,2,5,8,10}; tetstest c=new tetstest(); c.setarray(a); for(int i:a){ System.out.print(i); } System.out.println(); int x=5; c.set(x); System.out.println(x); } public void setarray(int[] nums){ int[] b={2,2,2,2,2}; nums=b; } public void set(int a){ int b=3; a=b; } }
传引用调用
import java.util.Date; public class tetstest { public static void main(String[] args) { Date data=new Date(); tetstest c=new tetstest(); System.out.println(data); c.set(data); System.out.println(data); } public void set(Date date){ date.setMonth(4); } }
参考博客
https://blog.csdn.net/MCJPAO/article/details/104072989
如有错误,欢迎指正
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)