`

Java参数传递

阅读更多

        Java入门时我们都知道,Java对象的传递是引用传递,而基本类型是值传递。如下实例所示:

实例一:Map对象传递

package com.bijian.study;

import java.util.HashMap;
import java.util.Map;

public class TransmitMap {

    public static void main(String[] args) {
        
        Map map = new HashMap();
        map.put("name","zhangshan");
        map.put("age",25);
        
        TransmitMap m = new TransmitMap();
        m.printValue(map);
    }

    public void printValue(Map map) {
        System.out.println(map); //{age=25, name=zhangshan}
        changeValue(map);
        System.out.println(map); //{age=18, name=changed}
    }

    public void changeValue(Map map) {
        map.put("name", "changed");
        map.put("age", 18);
        System.out.println(map); //{age=18, name=changed}
    }
}

实例二:自定义对象传递

package com.bijian.study;

public class TransmitObject {

    public static void main(String[] args) {
        Employee employee = new Employee("zhangshan", 25);
        TransmitObject m = new TransmitObject();
        m.printValue(employee);
    }

    public void printValue(Employee employee) {
        System.out.println(employee); //zhangshan,25
        changeValue(employee);
        System.out.println(employee); //changed,18
    }

    public void changeValue(Employee employee) {
        employee.setName("changed");
        employee.setAge(18);
        System.out.println(employee); //changed,18
    }
}

class Employee {
    
    private String name;
    private int age;
    
    public Employee(String name, int age) {
        this.name = name;
        this.age = age;
    }
    
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    
    public String toString() {
        return this.name + "," + this.age;
    }
}

实例三:基本类型int值传递

package com.bijian.study;

/**
 * Java值传递
 */
public class TransmitInt {

    public static void main(String[] args) {
        int count = 1;
        TransmitInt m = new TransmitInt();
        m.printValue(count);
    }

    public void printValue(int count) {
        System.out.println(count); //1
        changeValue(count);
        System.out.println(count); //1
    }

    public void changeValue(int count) {
        count += 10;
        System.out.println(count); //11
    }
}

        但对于String类型的变量,到底是值传递还是引用传递呢?

package com.bijian.study;

public class TransmitString {

    public static void main(String[] args) {
        String str = "shengzhen";
        //String str = new String("shengzhen");
        TransmitString m = new TransmitString();
        m.printValue(str);
    }

    public void printValue(String str) {
        System.out.println(str); //shengzhen
        changeValue(str);
        System.out.println(str); //shengzhen
    }

    public void changeValue(String str) {
        str += "shanghai";
        System.out.println(str); //shengzhenshanghai
    }
}

        从实例运行结果来看,String类型的变量是值传递。

分享到:
评论

相关推荐

    11.java参数传递.zip

    11.java参数传递.zip11.java参数传递.zip11.java参数传递.zip11.java参数传递.zip11.java参数传递.zip11.java参数传递.zip11.java参数传递.zip11.java参数传递.zip11.java参数传递.zip11.java参数传递.zip11.java...

    13.java参数传递之引用传递.zip

    13.java参数传递之引用传递.zip13.java参数传递之引用传递.zip13.java参数传递之引用传递.zip13.java参数传递之引用传递.zip13.java参数传递之引用传递.zip13.java参数传递之引用传递.zip13.java参数传递之引用传递....

    58.java参数传递机制.zip

    58.java参数传递机制.zip58.java参数传递机制.zip58.java参数传递机制.zip58.java参数传递机制.zip58.java参数传递机制.zip58.java参数传递机制.zip58.java参数传递机制.zip58.java参数传递机制.zip58.java参数传递...

    java 参数传递

    Java 参数传递机制详解 Java 中的参数传递机制是一个经久不息的讨论话题,究竟是“传值”还是“传引用”,双方各执一词,互不相让。本文将通过详细的分析和实例,揭开 Java 参数传递机制的奥秘。 基本类型作为参数...

    Java参数传递PPT

    Java参数传递机制是编程中的重要概念,尤其是在Java中,它对于理解如何在方法间操作数据至关重要。本PPT深入探讨了这一主题,旨在帮助学习者彻底理解Java中的参数传递方式。 首先,我们要回顾面向对象的基本概念。...

    java参数传递

    这里详细的说明了,java参数传递的过程,引用传递,值传递

    java参数传递 java 参数.doc

    java参数传递 java 参数

    Java参数传递的经典示例

    Java参数传递的经典教学PPT,引用类型,基础类型传递的区别,String和StringBuffer类型传递的区别。

    java参数传递时到底是值传递还是引用传递分享.pdf

    Java参数传递机制是一个常见的面试问题,它涉及到Java语言的基础特性。Java中参数传递的方式有两种理解:值传递和引用传递,但这两种说法实际上是对同一种机制的不同角度的描述。下面将详细解释这两种理解方式。 ...

    java参数传递(经典).docx

    Java参数传递机制是一个经常引起讨论的话题,尤其是在初学者和经验丰富的开发者之间。Java中参数传递的基本原则可以总结为:对于所有类型的参数,Java总是进行值传递。然而,对于基本类型和对象引用,"值传递"的概念...

    JNI中C和Java参数传递详细例子

    JNI中C和Java参数传递详细例子,各种数据类型,基本类型,数据,结构体,DEMO,非常适合初学者,一看就明,详细例子

    java参数传递学习demo

    java的参数传递对比,体现了值传递和引用传递的区别,是我在java入门是写的学习demo

    java参数传递时到底是值传递还是引用传递[归类].pdf

    Java中的参数传递机制是一个经常引起讨论的话题,尤其是在面试和学习过程中。Java的参数传递方式实际上是一种特殊的"值传递",通常被称为"按引用传递对象的引用",这与C++等语言中的引用传递有所不同。以下是对这个...

    JAVA参数传递方式实例浅析【按值传递与引用传递区别】

    JAVA 参数传递方式实例浅析【按值传递与引用传递区别】 JAVA 参数传递方式实例浅析【按值传递与引用传递区别】是 JAVA 编程语言中的一种基本概念,对于 JAVA 开发者来说是非常重要的。本文将通过实例形式分析 JAVA ...

    Java参数传递及值传递实现原理详解

    Java参数传递及值传递实现原理详解 Java语言中,参数传递是方法调用过程中的一种机制,讲述了Java参数传递及值传递实现原理详解。参数传递有两种方式:按值传递和按引用传递。 1. 按值传递(Call by Value) 按值...

    java参数传递-1_20201207151148.jpg

    java

Global site tag (gtag.js) - Google Analytics