方法传递参数的分类

方法传递参数的分类

1.基本数据类型

2.引用数据类型

package com.erlang.idea;
//Java程序默认导入java.lang包下的所有类。

public class ScannerTest {
    public static void main(String[] args) {
        int number = 10;
        System.out.println("调用change方法前:"+number);//16
        change(number);
        System.out.println("调用change方法前:"+number);//16
    }

    public static void change(int number) {
        number = 18 ;
    }
}
    

1.1基本数据类型的参数,形式参数的改变,不影响实际参数

依据:每个方法在栈内存中,都会有独立的栈空间,方法运行结束后就会弹栈消失

package com.erlang.idea;
//Java程序默认导入java.lang包下的所有类。

public class DataTypeTest {
    public static void main(String[] args) {
        int[] arr = {1,2,3};
        System.out.println("调用change方法前:"+arr[1]);//2
        change(arr);
        System.out.println("调用change方法前:"+arr[1]);//18
    }

    public static void change(int[] arr) {
        arr[1] = 18 ;
    }
}
    

2.1对于引用类型的参数,形式参数的改变,影响实际参数的值

依据:引用数据类型的传参,传入的是地址值,内存中会造成两个引用指向同一个内存的效果,所以即使方法弹栈,堆内存中的数据也已经是改变后的结果

原文地址:https://www.cnblogs.com/erlang-sh/p/12576422.html

时间: 2024-12-14 11:22:02

方法传递参数的分类的相关文章

tornado框架的get方法传递参数

tornado框架的get方法传递参数,代码: # encoding: utf-8 """ @version: ?? @author: andu99 @contact: [email protected] @site: http://www.cnblogs.com/andu99/ @software: PyCharm @file: main.py @time: 2018/5/9 0009 上午 11:05 """ from tornado.iol

c# 方法传递参数

一.参数的使用方法: 1.值参数(Value Parameter ) 格式:方法名称(参数类型 参数名称[,参数类型 参数名称]) 2.引用参数(Reference Parameter ) 格式:方法名称(ref 参数类型 参数名称[,ref 参数类型 参数名称]) 3.输出参数(Out Parameter) 格式:方法名称(out 参数类型 参数名称[,out 参数类型 参数名称]) 二.值参数与引用参数及输出参数的区别: 2.1 值参数中实参的值不随形参值变更而变更: 形参与实参值互不影响,

[ActionScript 3.0] 通过内联函数对addFrameScript方法传递参数

虽然说不推荐使用影片剪辑隐藏方法addFrameScript();但是解决某些问题,此方法的确会方便很多. 但是却不能直接传递参数,不过可以用迂回的方法,如下: mc.addFrameScript(mc.totalFrames-1,function():void{ execute.call(null,mc); }); private function execute(mc:MovieClip):void { //操作参数mc }

MVC学习系列2--向Action方法传递参数

首先,新建一个web项目,新建一个Home控制器,默认的代码如下: public class HomeController : Controller { // GET: Home public ActionResult Index() { return View(); } } 现在我要向Index方法,传递一个参数,id,为了方便测试,适当的修改一下代码 public class HomeController : Controller { // GET: Home public string I

[ExtJS5学习笔记]第二十一节 Extjs5中使用config配置给ext.widget或者create方法传递参数

本文地址:http://blog.csdn.net/sushengmiyan/article/details/39252805 官方例子:http://docs.sencha.com/extjs/5.0/apidocs/#!/api/Ext.Class-cfg-config 本文作者:sushengmiyan ----------------------------------------------------------------------------------------------

Ajax中Put和Delete请求传递参数无效的解决方法(Restful风格)

本文装载自:http://blog.csdn.net/u012737182/article/details/52831008    感谢原文作者分享 开发环境:Tomcat9.0 在使用Ajax实现Restful的时候,有时候会出现无法Put.Delete请求参数无法传递到程序中的尴尬情况,此时我们可以有两种解决方案:1.使用地址重写的方法传递参数.2.配置web.xml项目环境. 测试的程序为: @RequestMapping(value = "/member", method =

CLR via C#深解笔记四 - 方法、参数、属性

实例构造器和类(引用类型) 构造器(constructor)是允许将类型的实例初始化为良好状态的一种特殊方法.构造器方法在“方法定义元数据表”中始终叫.ctor. 创建一个引用类型的实例时: #1, 首先为实例的数据字段分配内存 #2, 然后初始化对象的附加字段(类型对象指针和同步块索引) #3, 最后调用类型的实例构造器来设置对象的初始状态 构造引用类型的对象时,在调用类型的实例构造器之前,为对象分配的内存总是先被归零.构造器没有显示重写的所有字段保证都有一个0或null值.和其它方法不同,实

C#方法的参数类型

在C#中,方法的参数类型有四种: 值类型 引用类型 输出类型 数组型参数 值参数: 所谓值参数,就是利用值向方法传递参数时,编译程序给实参的值做一份拷贝,并将此拷贝传递给该方法,这样做的结果就是被调用的方法不会修改实参的值,保证了实际值的安全,在调用方法时,如果形参的类型时值类型的话,必须保证实参的类型也是值类型的数据. 例子: public class MyClass { public MyClass() { // //TODO: 在此处添加构造函数逻辑 // } public void Ch

Jmeter 跨线程组传递参数 之两种方法

终于搞定了Jmeter跨线程组之间传递参数,这样就不用每次发送请求B之前,都需要同时发送一下登录接口(因为同一个线程组下的请求是同时发送的),只需要发送一次登录请求,请求B直接用登录请求的参数即可,直到登录接口的参数失效了,需再次发送一次登录接口,又可以多次使用其参数,下面举例子: 1.登录接口中利用 Json Path Extractor 获取到登录接口的响应参数,(怎么获取上一节讲过) 终于搞定了Jmeter跨线程组之间传递参数,这样就不用每次发送请求B之前,都需要同时发送一下登录接口(因为