Java中的参数传递

Java中方法参数传递是:值传递(Pass By Value)

public class ParameterDemo{

    public void changeValue1(int a){

        a = 8;

    }

    public void changeValue2(Employee e){

        e.salary = 8000;

    }

    public void changeValue3(Employee e){

        e = new Employee();

        e.salary = 8000;

    }

    public void swap(Employee e, Employee e2){

        Employee temp = e;

        e = e2;

        e2 = temp;

    }

 

    public static void main(String[] args){

        MethodDemo m = new MethodDemo();

        

        int a = 10;

        System.out.println(a);//10

        m.changeValue1(a);

        System.out.println(a);//10

        

        Employee e = new Employee();

        System.out.println(e.salary);//0

        m.changeValue2(e);

        System.out.println(e.salary);//8000

        Employee e2 = new Employee();

        System.out.println(e2.salary);//0

        m.changeValue3(e2);

        System.out.println(e2.salary);//0

        Employee e3 = new Employee();

        e3.name = "huhu";

        Employee e4 = new Employee();

        e4.name = "hengheng";

        System.out.println("e3.name = "+e3.name+" e4.name = "+ e4.name);//e3.name = huhu e4.name = hengheng

        m.swap(e3, e4);

        System.out.println("e3.name = "+e3.name+" e4.name = "+ e4.name);//e3.name = huhu e4.name = hengheng

    }

}

class Employee{

    String name;

    int salary;

}

时间: 2024-11-10 07:24:41

Java中的参数传递的相关文章

Java中的参数传递机制

通过前一篇文章的介绍,我们从整体上明白了,Java类中变量的差异性.不同变量在内存中的存储位置,以及变量的生命周期等.今天,我们来看一下Java中参数传递的机制. 形参:方法声明时包含的参数声明 实参:调用方法时,实际传给形参的参数值 Java方法的参数传递机制: Java方法的参数传递只有一种:值传递.所谓值传递,就是将实际参数值的副本,传入方法内,而参数本身不会收到任何影响. PS:传入方法的时实际参数值的复制品,不管方法中对这个复制品如何操作,实际参数本身不会受到任何影响. 基本类型的参数

java中的参数传递是按引用传递还是按值传递

最近去面试,有一个面试官问到java中参数传递的问题,感觉自己对于这一块还是理解的不够深.今天我们就一起来学习一下Java中的接口和抽象类.下面是本文的目录大纲: 一 . 什么是按值传递,什么是按引用传递 二 . java中的参数传递是按值传递还是按引用传递 三.总结 若有不正之处,请多多谅解并欢迎批评指正,不甚感激. 一 . 什么是按值传递,什么是按引用传递 按值调用(call by value) : 在参数传递过程中,形参和实参占用了两个完全不同的内存空间.形参所存储的内容是实参存储内容的一

Java中方法参数传递的问题

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

Java数组小知识和UML知识 java中的参数传递——值传递、引用传递

数组声明后必须用new为其分配空间 java中数组有没有length()方法,求数组的长度可以使用数组的length属性. 1 2 int[] arr={1,2,3,4,5}; int length=arr.length;//求数组的长度 String 有length()方法,用来求字符串的长度 1 2 String  str="Hello"; int length=str.length(): //求字符串的长度 UML是一个结构图,常用来描述一个系统的静态结构,统一建模语言. Jav

java中的参数传递——值传递、引用传递

参数是按值而不是按引用传递的说明 Java 应用程序有且仅有的一种参数传递机制,即按值传递. 在 Java 应用程序中永远不会传递对象,而只传递对象引用.因此是按引用传递对象.Java 应用程序按引用传递对象这一事实并不意味着 Java 应用程序按引用传递参数.参数可以是对象引用,而 Java 应用程序是按值传递对象引用的. Java 应用程序中的变量可以为以下两种类型之一:引用类型或基本类型.当作为参数传递给一个方法时,处理这两种类型的方式是相同的.两种类型都是按值传递的:没有一种按引用传递.

43 Java语言基础思考题Java中的参数传递问题

1 /* 2 3 基本数据类型的值传递,不改变原值,因为调用后就会弹栈,局部变量随之消失 4 引用数据类型的值传递,改变原值,因为即使方法弹栈,但是堆内存数组对象还在,可以通过地址继续访问 5 6 基本数据类型传递给参数的是值 7 引用数据类型传递给参数的是地址 8 9 但是地址也是值,所以参数的传递,传递都是值. 10 11 */ 12 13 14 class Demo5{ 15 public static void main(String[] args) { 16 int a = 10; 1

java中参数传递--值传递,引用传递

java中的参数传递--值传递.引用传递 参数是按值而不是按引用传递的说明 Java 应用程序有且仅有的一种参数传递机制,即按值传递. 在 Java 应用程序中永远不会传递对象,而只传递对象引用.因此是按引用传递对象.Java 应用程序按引用传递对象这一事实并不意味着 Java 应用程序按引用传递参数.参数可以是对象引用,而 Java 应用程序是按值传递对象引用的. Java 应用程序中的变量可以为以下两种类型之一:引用类型或基本类型.当作为参数传递给一个方法时,处理这两种类型的方式是相同的.两

如何理解Java中参数传递只能传值?

以前学习C#的时候,是完全在工作岗位上学习,一些底层较为深入的道理都不是很清楚.如今学习了Java,对于Java参数传递只能传值,不能传引用(指针)感到很困惑,在C#中不是常常说把某个引用传递到函数中吗?甚至C#有相当简便的ref.out参数,明明白白的传引用. 经过一番探索,得出的结论表明,Java中我不管你到底是传值还是传引用,只需要记住原生数据类型(值类型)和String作为参数传递的时候,其原本的值都不会发生改变:而引用类型在作为参数传递时,函数中对其的操作,都会反馈到引用所指向的值.

第002弹:Java 中的值传递和引用传递

在 Java 的代码开发过程中,为了尽可能提高方法的复用性,明确方法的作用,同时防止一个方法内部过于臃肿的问题,往往会创建许多方法,那么不可避免地会涉及到参数传递的问题.通常来说,我们将 Java 中的参数传递分为两种:值传递和引用传递. 值传递:参数在进入方法时,将入参深度复制一个副本,在方法内部操作的是入参的副本,在方法执行完毕之后,外部的入参没有发生任何变化. 引用传递:在方法内部操作的是参数本身,对入参做出的修改会保留到方法的外部. 那么在 Java 中,哪些情况属于值传递,哪些情况属于