Java参数传递实现代码及过程图解

一.下面是一段代码

二.运行的结果为

三.过程分析

1.初始时,栈中有main方法与change方法,在main方法中各个元素进行了初始化。

2.之后执行了change方法,实参值传递到形参中。

3.在change方法中进行了相关操作。

4.查看main中各元素的值。

i为1、str为hello、b为200、arr[0]为2、my.a为11

*上文中的代码如下:

package cn.yang37.zother.example;

import java.lang.reflect.Array;
import java.util.Arrays;

/**
 * @Author Yiang37
 * @Date 2020/4/9 21:42
 * Description:
 * 参数传递机制
 */
public class ParameterPassing {
  public static void main(String[] args) {
    int i = 1;
    String str = "yang";
    Integer num = 200;
    int[] arr = {1, 2, 3, 4, 5};
    MyData my = new MyData();

    change(i, str, num, arr, my);
    System.out.println(i);
    System.out.println(str);
    System.out.println(num);
    System.out.println(Arrays.toString(arr));
    System.out.println(my.a);
  }

  public static void change(int j, String s, Integer n, int[] a, MyData m) {
    j += 1;
    s += "world";
    n += 1;
    a[0] += 1;
    m.a += 1;
  }

}

class MyData {
  int a = 10;
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Java数组传递及可变参数操作实例详解

    本文实例讲述了Java数组传递及可变参数操作.分享给大家供大家参考,具体如下: 方法可以操作传递和返回基本数据类型,但是方法中也可用来传递和返回数组.如果要向方法中传递一个数组,则方法的接收参数处必须是符合其类型的数组.而且数组属于引用数据类型,所以在把数组传递进方法之后,如果方法对数组本身做了任何修改,修改结果都是会保存下来的. 向方法中传递数组 在java中,所有对象都是通过引用进行操作的.而数组也是一种对象,当把数组作为参数传递给方法时,传递的实际上就是数组对象的引用.在方法中对数组的所有

  • 在java中实现C#语法里的按引用传递参数的方法

    在C#中,在次函数中调用时改变了其中的数值,主函数中也将发生改变 ref 关键字使参数按引用传递.其效果是,当控制权传递回调用方法时,在方法中对参数所做的任何更改都将反映在该变量中.若要使用 ref 参数,则方法定义和调用方法都必须显式使用 ref 关键字 out 关键字会导致参数通过引用来传递.这与 ref 关键字类似,不同之处在于 ref 要求变量必须在传递之前进行初始化.若要使用 out 参数,方法定义和调用方法都必须显式使用 out 关键字. Java里面不像C#那样,Java只有对象类

  • Java的数据类型和参数传递(详解)

    Java提供的数据类型主要分为两大类:基本数据类型和引用数据类型. Java中的基本数据类型 名称 大小 取值范围 byte型 (字节) 8bit -128-127 (-2^7到2^7-1) short型 (短整型) 16bit -2^15到2^15-1 int型 (整形) 32bit -2^31到2^31-1 long型 (长整型) 64bit -2^63到2^63-1 float型 (单精度浮点型) 32bit double型 (双精度浮点型) 64bit char型 (字符型) 16bit

  • Java向Runnable线程传递参数方法实例解析

    java Runnable接口:是一个接口,它里面只有一个run()方法,没有start()方法,继2113承Runnable并实现这个方法就可以实现多线程了,但是5261这个run()方法不能自4102己调用,必须由系统来调用. 向线程中传递数据的三种方法: 一.通过构造函数传递参数 public class MyThread1 extends Thread { private String name; public MyThread1(String name) { this.name = n

  • 浅谈Java中的参数传递问题

    /* 思考题1:看程序写结果,然后分析为什么是这个样子的.并画图讲解.最后总结Java中参数传递规律. Java中的参数传递问题: 基本类型:形式参数的改变对实际参数没有影响. 引用类型:形式参数的改变直接影响实际参数. */ class ArgsDemo { public static void main(String[] args) { int a = 10; int b = 20; System.out.println("a:"+a+",b:"+b); //a

  • java 中函数的参数传递详细介绍

    java中函数的参数传递 总结: 1.将对象(对象的引用)作为参数传递时传递的是引用(相当于指针).也就是说函数内对参数所做的修改会影响原来的对象.   2.当将基本类型或基本类型的包装集作为参数传递时,传递的是值.也就是说函数内对参数所做的修改不会影响原来的变量.   3.数组(数组引用))作为参数传递时传递的是引用(相当于指针).也就是说函数内对参数所做的修改会影响原来的数组.   4.String类型(引用)作为参数传递时传递的是引用,只是对String做出任何修改时有一个新的String

  • Java中前台往后台传递多个id参数的实例

    1.传字符串的形式,字符串中每个id用 "," 隔开 打印出来如下形式: 前台JS代码 function saveRoleAdd() { var roleNames = $('#roleNames').textbox("getText"); var roleDetail = {}; roleDetail.roleNames = roleNames; roleDetail.roleFunctionCount = 0; roleDetail.roleFunctionLi

  • java 直接调用python脚本,并传递参数代码实例

    最近陆续用python写了很多文件处理脚本,虽然功能都比较简单 ,但还是感觉到python对文件处理的简洁高效 ,越发觉得java的语法相当的繁琐~ 接到个需求处理ftp数据接口 .所以想把python脚本也用上.java代码定时扫描ftp数据仓库 ,调用python脚本入库. 直接采用java执行系统命令的方式 @Async public void readFileByPython(List<String> filePaths) throws FileNotFoundException {

  • Java参数传递实现代码及过程图解

    一.下面是一段代码 二.运行的结果为 三.过程分析 1.初始时,栈中有main方法与change方法,在main方法中各个元素进行了初始化. 2.之后执行了change方法,实参值传递到形参中. 3.在change方法中进行了相关操作. 4.查看main中各元素的值. i为1.str为hello.b为200.arr[0]为2.my.a为11 *上文中的代码如下: package cn.yang37.zother.example; import java.lang.reflect.Array; i

  • Java配置win10环境变量过程图解

    在配置环境之前,你应该已经有下载好的 Java JDK 了(如果没有安装JDK,请跳转到此网址: https://www.oracle.com/java/technologies/javase-jdk14-downloads.html) 我安装的是jdk1.8(64位) java环境变量的配置win10: 1.选择"计算机"右单击弹出快捷菜单选择单击"属性" 2.单击选择"高级系统设置" 3.弹出"系统属性"--选择单击&qu

  • Jenkins集成sonarQube实现代码质量检查过程图解

    1.sonarQube的简介 SonarQube是一款自动化代码审查工具,用于检测代码中的错误.漏洞和代码异味.它可以与你现有的工作流集成,以支持跨项目分支和拉取请求的连续代码检查. 其工作流程如下: 如图SonarQube由以下4个组件组成: 1.SonarQube Server: WebServer:供开发人员,管理人员浏览高质量的快照并配置SonarQube实例Search Server:基于Elasticsearch的Search Server从UI进行后退搜索(历史)computeEn

  • 基于Java Gradle复制项目模块过程图解

    在项目的根目录下执行: File -> New -> Module 包名一般有三段:域.组织.模块 eg: com.kd.adminserver Artifactid 是第三段. 模块路径 根据需要修改新建模块 admin-server 的 build.gradle 右键 admin-server 模块的 webserver 包,重命名. 利用 replace in path 替换下包名的路径. 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们.

  • MVC页面之间参数传递实现过程图解

    这篇文章主要介绍了MVC页面之间参数传递实现过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 关于MVC页面之间的传值,有多种方式,下面,我们就Html.RenderAction 方式 和 Html.RenderPartial 方式 来给大家分享一下有什么不同. 一.Html.RenderAction 方式页面之间传递参数的方式: Html.RenderAction 方式 是访问的另一页面的Controller,并将参数传入另一页面的Co

  • Windows7下的Java运行环境搭建过程图解

    第一步:下载JDK 地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html,(由于Sun于2009年被oracle收购所以网址是oracle的) 单击"Java Download"按钮. 选中"Accept License Agreement"单选按钮. 我们以Windows 64位操作系统为例,下载Windows X64版的jdk.单击"jdk-8u5-windows-x

  • Java+Tomcat 环境部署及安装过程图解

    下面在Centos7进行安装Java+Tomcat,网上的很多文章,我在部署中都有些问题,下面是我自己总结的一个安装过程! 安装Java环境 首先,我们先到Java官网下载JDK 这里我下载jdk1.8版本的 https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 点击 Accept License Agreement 选择好版本进行下载,需要注册Oracle账户登陆下载! 将下载的

  • pyinstaller还原python代码过程图解

    这篇文章主要介绍了pyinstaller还原python代码过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 pyinstaller 的作用就是将python打包成对应平台的可执行文件.一般这种可执行文件的体积都比较大. 我们可以先通过逆向软件查看一下具体信息 查看字符串信息 只要有诸如以上的字符串 就说明这个可执行文件有很大程度上是通过pyinstaller打包的 解密方法有两个 1. pyinstxtractor.py 方法很简单 直

  • Java实现邮件发送的过程及代码详解

    Java实现邮件发送 一.邮件服务器与传输协议 要在网络上实现邮件功能,必须要有专门的邮件服务器.这些邮件服务器类似于现实生活中的邮局,它主要负责接收用户投递过来的邮件,并把邮件投递到邮件接收者的电子邮箱中. SMTP服务器地址:一般是 smtp.xxx.com,比如163邮箱是smtp.163.com,qq邮箱是smtp.qq.com. SMTP协议 通常把处理用户smtp请求(邮件发送请求)的服务器称之为SMTP服务器(邮件发送服务器). POP3协议 通常把处理用户pop3请求(邮件接收请

  • C语言 八大排序算法的过程图解及实现代码

    目录 前言 一.插入排序 时间复杂度 空间复杂度 代码实现(升序) 二.希尔排序 时间复杂度 空间复杂度 代码实现 三.选择排序 时间复杂度 空间复杂度 代码实现 四.堆排序 时间复杂度 空间复杂度 代码实现 五.冒泡排序 时间复杂度 空间复杂度 代码实现 六.快排排序 时间复杂度 空间复杂度 代码实现 七.归并排序 时间复杂度 空间复杂度 代码实现 八.计数排序 时间复杂度 空间复杂度 九.各种排序总结比较 前言 排序是数据结构中很重要的一章,先介绍几个基本概念. 排序稳定性:多个具有相同的关

随机推荐