浅谈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:10,b:20
	  		change(a,b);
	  		System.out.println("a:"+a+",b:"+b); //???	a:10,b:20

	  		int[] arr = {1,2,3,4,5};
	  		change(arr);
	  		System.out.println(arr[1]); //???	4
	  	}

	  	public static void change(int a,int b) { //a=10,b=20
	  		System.out.println("a:"+a+",b:"+b); //a:10,b:20
	  		a = b;	//a=20
	  		b = a + b; //b=40
	  		System.out.println("a:"+a+",b:"+b); //a:20,b:40
	  	}

	  	public static void change(int[] arr) { //arr={1,2,3,4,5};
	  		for(int x=0; x<arr.length; x++) {
	  			if(arr[x]%2==0) {
	  				arr[x]*=2;
	  			}
	  		}
	  		//arr={1,4,3,8,5};
	  	}
	  }

以上所述是小编给大家介绍的Java中的参数传递问题详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • 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中参数传递方式详解

    java中参数传递方式详解 java新手入门面临的一个经典的话题,本文意在终结这个话题,java中有说法:Java里面参数传递都是按值传递,怎么理解这句话?用文字说明恐怕不容易说明白,说明白恐怕也难以想明白. 前提 先明确一下,按值还是按引用的概念,它是来自c++语言,引用不是汉语词典中的一个词,而是c++的概念--"&"这个符号还记得吧? 为什么有这个话题呢?其一,是对按引用传递理解不透彻:其二,诸多java书籍及讨论论点并没有切中要害. 一句话概括,按值传参还是按引用传参,

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

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

  • Java方法的参数传递机制实例详解

    本文实例讲述了Java方法的参数传递机制.分享给大家供大家参考,具体如下: 参数传递机制 对于程序设计语言来说,一般方法(函数)的参数传递有两种:按值传递和按引用传递. 按值传递意味着当将一个参数传递给一个方法时,方法接收的是原始值的一个副本.因此,如果方法修改了该参数,仅改变副本,而原始值保持不变.按引用传递意味着当将一个参数传递给一个方法时,方法接收的是原始值的内存地址,而不是值的副本.因此,如果方法修改了该参数,调用代码中的原始值也随之改变. 需要注意的是,方法可以修改按引用传递的参数对应

  • 浅谈JAVA内存分配与参数传递

    JAVA中方法的参数传递方式只有一种:值传递. JAVA内存分配: 1.栈:存放 基本类型的数据.对象的引用(类似于C语言中的指针) 2.堆:存放用new产生的数据 3.静态域:存放在对象中用static定义的静态成员 4.常量池:存放常量 5.寄存器 6.非RAM存储 class BirthDate{ private int day; private int month; private int year; public BirthDate(int d,int m,int y){ day=d;

  • 简单谈谈Java中String类型的参数传递问题

    提要:本文从实现原理的角度上阐述和剖析了:在Java语言中,以 String 作为类型的变量在作为方法参数时所表现出的"非对象"的特性. 一.最开始的示例 写代码最重要的就是实践,不经过反复试验而得出的说辞只能说是凭空遐想罢了.所以,在本文中首先以一个简单示例来抛出核心话题: public class StringAsParamOfMethodDemo { public static void main(String[] args) { StringAsParamOfMethodDem

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

    可以理解当我们要调用一个方法时,我们会把指定的数值,传递给方法中的参数,这样方法中的参数就拥有了这个指定的值,可以使用该值,在方法中运算了.这种传递方式,我们称为参数传递.在这里,定义方法时,参数列表中的变量,我们称为形式参数. 调用方法时,传入给方法的数值,我们称为实际参数 在Java中调用方法时,如果参数是基本类型(byte/short/int/long/float/double/char/boolean)以及String类型时,形式参数的改变不影响实际参数. 以下代码在内存中发生的动作:

  • 深入解析Java编程中方法的参数传递

    在阅读本文之前,根据自己的经验和理解,大家可以先思考并选择一下Java函数的参数传递方式: A. 是按值传递的? B. 按引用传递的? C. 部分按值部分按引用? 此处暂不宣布正确答案,我们通过一个简单的例子让大家自己找答案: 1. 先定义一个类型Value public static class Value { private String value = "value"; public String getValue() { return value; } public void

  • 详解Java引用类型的参数也是值传递

    简述 调用方法的时候,有需要传参数的情况.在Java中,参数的类型有基本类型和引用类型两种. 一开始听到一个说法,Java没有引用传递,但是一直没有太多的思考在上面,直到前不久玩数组的时候,突然间发现把数组引用变量作为参数传递到一个方法当中进行操作之后,再去访问原数组,尽然改变了.于是乎,就想到了之前在C++里面学过的引用传递,突然有一种错愕的感觉,就查了一些资料,探究当Java引用类型变量作为参数传递给方法的时候,到底是值传递还是引用传递. 结论:如果将Java引用类型变量作为参数传递给方法,

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

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

随机推荐