Java方法参数传递如何实现
Java方法参数
首先回顾一下程序设计语言中有关将参数传递给方法的一些专业术语。
1. 按值调用(call by value)表示方法接收的是调用者提供的值。
2. 按引用调用(call by reference)表示方法接收的是调用者提供的变量地址。
一个方法可以修改传递引用所对应的变量值,而不能修改传递值调用所对应的变脸值。“call by”是一个标准的计算机科学术语,它用来描述各种程序设计语言中方法参数的传递方式。
Java采用按值调用。也就是说,方法得到的是所有参数的一个拷贝,特别是,方法不能修改传递给他的任何参数变量的内容。
1: Type actualParameter = value;
2: function(variable);void function(Type formalParameter)
无论function内部的逻辑是怎么样的,它都无法改变方法外actualParameter的值。
Java中变量的类型可以分为两类:
1. 基本数据类型(数字、布尔值)
2. 对象引用
如果方法的参数是对象的引用,这就意味着,actualParameter和formalParameter能够同时引用同一个对象。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
Java方法的参数传递机制实例详解
本文实例讲述了Java方法的参数传递机制.分享给大家供大家参考,具体如下: 参数传递机制 对于程序设计语言来说,一般方法(函数)的参数传递有两种:按值传递和按引用传递. 按值传递意味着当将一个参数传递给一个方法时,方法接收的是原始值的一个副本.因此,如果方法修改了该参数,仅改变副本,而原始值保持不变.按引用传递意味着当将一个参数传递给一个方法时,方法接收的是原始值的内存地址,而不是值的副本.因此,如果方法修改了该参数,调用代码中的原始值也随之改变. 需要注意的是,方法可以修改按引用传递的参数对应
-
在java中实现C#语法里的按引用传递参数的方法
在C#中,在次函数中调用时改变了其中的数值,主函数中也将发生改变 ref 关键字使参数按引用传递.其效果是,当控制权传递回调用方法时,在方法中对参数所做的任何更改都将反映在该变量中.若要使用 ref 参数,则方法定义和调用方法都必须显式使用 ref 关键字 out 关键字会导致参数通过引用来传递.这与 ref 关键字类似,不同之处在于 ref 要求变量必须在传递之前进行初始化.若要使用 out 参数,方法定义和调用方法都必须显式使用 out 关键字. Java里面不像C#那样,Java只有对象类
-
java向多线程中传递参数的三种方法详细介绍
在传统的同步开发模式下,当我们调用一个函数时,通过这个函数的参数将数据传入,并通过这个函数的返回值来返回最终的计算结果.但在多线程的异步开发模式下,数据的传递和返回和同步开发模式有很大的区别.由于线程的运行和结束是不可预料的,因此,在传递和返回数据时就无法象函数一样通过函数参数和return语句来返回数据.本文就以上原因介绍了几种用于向线程传递数据的方法,在下一篇文章中将介绍从线程中返回数据的方法. 欲先取之,必先予之.一般在使用线程时都需要有一些初始化数据,然后线程利用这些数据进行加工处理,并
-
Java方法参数传递机制原理解析
这篇文章主要介绍了Java方法参数传递机制原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Java方法中如果声明了形参,在调用方法时就必须给这些形参指定参数值,实际传进去的这个值就叫做实参. 这就涉及到Java中的参数传递机制,值传递. 基本数据类型 基本数据类型,值传递的体现是数值的传递. public class TransferTempTest { public static void main(String[] args) {
-
深入解析Java编程中方法的参数传递
在阅读本文之前,根据自己的经验和理解,大家可以先思考并选择一下Java函数的参数传递方式: A. 是按值传递的? B. 按引用传递的? C. 部分按值部分按引用? 此处暂不宣布正确答案,我们通过一个简单的例子让大家自己找答案: 1. 先定义一个类型Value public static class Value { private String value = "value"; public String getValue() { return value; } public void
-
浅谈Java中方法参数传递的问题
可以理解当我们要调用一个方法时,我们会把指定的数值,传递给方法中的参数,这样方法中的参数就拥有了这个指定的值,可以使用该值,在方法中运算了.这种传递方式,我们称为参数传递.在这里,定义方法时,参数列表中的变量,我们称为形式参数. 调用方法时,传入给方法的数值,我们称为实际参数 在Java中调用方法时,如果参数是基本类型(byte/short/int/long/float/double/char/boolean)以及String类型时,形式参数的改变不影响实际参数. 以下代码在内存中发生的动作:
-
Java方法参数传递如何实现
Java方法参数 首先回顾一下程序设计语言中有关将参数传递给方法的一些专业术语. 1. 按值调用(call by value)表示方法接收的是调用者提供的值. 2. 按引用调用(call by reference)表示方法接收的是调用者提供的变量地址. 一个方法可以修改传递引用所对应的变量值,而不能修改传递值调用所对应的变脸值."call by"是一个标准的计算机科学术语,它用来描述各种程序设计语言中方法参数的传递方式. Java采用按值调用.也就是说,方法得到的是所有参数的一个拷贝,
-
Java 方法的重载与参数传递详解
目录 方法重载概述 方法重载特特点 方法重载练习 方法参数传递 方法参数传递(基本类型) 方法参数传递(引用类型) 方法重载概述 方法重载指同一个类中定义的多个方法之间的关系,满足下列条件的多个方法互相构成重载 * 多个方法在同一个类中 * 多个放方法具有相同方法名 * 多个方法的参数不相同,类型不同或数量不同 方法重载特特点 * 重载仅对应方法的定义,与方法的调用无关,调用方法参照标准格式 * 重载仅针对同一个类中方法的名称与参数进行识别,与返回值无关,换句话说不能通过返回值来判断两个方法是否
-
Java方法参数是引用调用还是值调用?
方法调用(call by) 是一个标准的计算机科学术语.方法调用根据参数传递的情况又分为值调用( call by reference ) 和引用调用( call by value ) .江湖上有很多关于这两种调用的定义 ,最通常的说法是传递值的是值调用,传递地址的是引用调用.这其实很不恰当,这种 这些说法很容易让我们联想到Java的对象参数传递是引用调用,实际上,Java的对象参数传递仍然是值调用 . 我们首先用一段代码来证实一下为什么Java的对象参数传递是值调用. public class
-
Java 方法引用与ambda表达式的联系
目录 方法引用是什么 冗余的Lambda场景 使用方法引用改进 使用方法 通过对象名引用成员方法 通过类名称引用静态方法 通过super引用成员方法 通过this引用成员方法 类的构造器引用 数组的构造器引用 方法引用是什么 方法引用通过方法的名字来指向一个方法.方法引用可以使语言的构造更紧凑简洁,减少冗余代码. 方法引用同样是Java 8 引入的新特性,而且和Lambda表达式有着不小的联系,它同样可以根据上下文进行推导,进而可以简化代码,可以说是Lambda的孪生兄弟. 下面我会通过最简单的
-
Java方法的可变参数类型实例分析
Java方法中的可变参数类型是一个非常重要的概念,有着非常广泛的应用.本文就以实例形式对此加以分析.具体如下: 一般来说,许多Java初学者在看到下面的这段代码的时候,都会问一个问题:dealArray方法里那三个小点点是什么啊? public class TestVarArgus { public static void dealArray(int... intArray){ } public static void main(String args[]){ } } 这就是本文所要讨论的问题:
-
java方法重写和super关键字实例详解
java方法重写和super关键字 在继承中,其实就是子类定义了和父类同名的方法 就是方法,属性都是相通的 重写限制: 被子类重写的方法不能拥有比父类方法更加严格的权限 super:强行调用父类方法的执行 重载和重写的区别? 重 载是发生在一个类中 对权限没有要求 而且重载的方法参数可以不同 重写发生在继承汇总 被子类重写的方法不能拥有比父类方法更加严格的权限,重写的方法中参数名字完全相同 实例代码: class A{ public void tell(){ Syst
-
Java 方法签名详解及实例代码
java 方法签名,我想做java 开发的朋友也知道,方法签名的重要性,是方法重载的一个比较好的解释,尤其是在后续优化方面,这里记录下,有看到的朋友也可看下, 方法签名的意义 对于同名不同类.同类不同名的方法,方法签名的意义并不是很大,但是对于重载方法来说,方法签名的意义就十分巨大了.由于重载方法之间的方法名是相同的,那么我们势必要从构成方法的其他几个要素中找到另一个要素与方法名组成能够唯一标示方法的签名,方法体当然不予考虑.那么就是形参列表和返回值了,但是由于对于调用方法的人来说,方法的形参数
随机推荐
- PHP实现字符串翻转功能的方法【递归与循环算法】
- highcharts 在angular中的使用示例代码
- SQL Server 2005 定时执行SQL语句的方法
- zTree jQuery 树插件的使用(实例讲解)
- Vue项目中引入外部文件的方法(css、js、less)
- 理解JavaScript原型链
- Perl文件句柄详解
- yii2中添加验证码的实现方法
- Python中的类与对象之描述符详解
- 亲自动手实现Android App插件化
- 在Linux系统的服务器上隐藏PHP版本号的方法
- Eclipse插件开发之新手入门
- apache的access.log和error.log减肥
- jQuery中的编程范式详解
- JavaScript结合HTML DOM实现联动菜单
- 利用麦咖啡(McAfee)打造超安全的Web站点目录
- 怎么样才能支持WAP?
- Android中获取网页表单中的数据实现思路及代码
- C#控制台下测试多线程的方法
- 基于编译虚拟机jvm—openjdk的编译详解