Java中怎么对参数进行传递

介绍

本篇文章给大家分享的是有关Java中怎么对参数进行传递,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

可以理解当我们要调用一个方法时,我们会把指定的数值,传递给方法中的参数,这样方法中的参数就拥有了这个指定的值,可以使用该值,在方法中运算了。这种传递方式,我们称为参数传递。在这里,定义方法时,参数列表中的变量,我们称为形式参数。

调用方法时,传入给方法的数值,我们称为实际参数

在Java中调用方法时,如果参数是基本类型(字节/短/int/长/浮动/双/字符/布尔)以及字符串类型时,形式参数的改变不影响实际参数。

最开始时,方法区中存入主要()方法文件,然后在栈中主要()方法入栈(压栈),局部变量入栈初始化,执行到改变()方法,方法区中有变化()文件,接着改变()入栈,实参a/b将自己的值赋值给形参a/b,执行方法中的代码,形参一个变为20,形参b变为40岁,执行完后,改变()方法立刻出栈(弹栈),形参a/b也从内存中消除。期间并没有影响到实参的值。

癑ava中怎么对参数进行传递"

如果是引用数据类型(不包括字符串),比如数组int[],形参的改变会影响到实参。

最开始时,方法区中存入主要()方法文件,然后在栈中主要()方法入栈(压栈),创建用静态方法创建数组,相当于新了一个int[],凡是新出的来的都要进入堆中,在堆中划出一块内存空间,分成5份用来存储5个元素,先初始化元素的值全为0,然后将每个变量赋值1,2,3,4,5,然后将开辟的这块内存地址0 x1234赋给由执行到改变()方法,方法区中有变化()文件,接着改变()入栈,实参arr将地址值赋值给形参加勒比海盗,实参和形参都指向堆中开辟的内存,然后在改变()中,将数组中的偶数元素变为2倍,改变的就是堆内存中的数据,然后改变()方法执行完后出栈,主方法中打印数组,实参arr仍指向对内存中的已经改变的数组,并输出。形参的改变影响到实参的数值。

对于字符串类型比较特殊,它本身是引用数据类型,但是在这里按基本数据处理。因为字符串的本质是字符数组,在方法区中有专门一块地方叫字符串常量池用来存储字符串常量。这里记住:凡是用双引号引起来的都是字符串常量,存储在字符串常量池当中。如图中的“你好”字符串存储在字符串常量池中,地址值为0 x666,然后Stirng str1=新的字符串(“hello”),在堆中开辟一块内存,将“hello”的地址值0 x666存储在内存中,同时将该内存的地址值0 x999赋给str1。然后字符串str2=癶ello”,将“hello”的地址值0 x666直接赋给str2。

癑ava中怎么对参数进行传递"

字符串有一个特点,每改变一次就会在字符串常量池中生成一个新的常量,比如字符串s=癶ello”在字符串常量池中的地址是0 x666,然后s=癶ello”+ 1,此时的字符串常量池会开辟一块新的空间给“hello1”地址值为0 x333,再将地址值赋值给s。所以,字符串s=癶ello”,将年代作为实参传递给方法时,无论形参中的年代怎么改变都不会影响到0 x666的“你好”,也不会影响到实参。所以字符串虽然作为引用数据类型,但它形参的变化不会影响到实参。

以上就是Java中怎么对参数进行传递,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。

Java中怎么对参数进行传递