基本数据类型和引用数据类型作为参数传入方法,区别是什么?

37 阅读1分钟

基本数据类型

package stu.day07;

public class wo {
//    基本数据类型传参值传递
    public static void main(String[] args) {
//        String str = "123";
//        int i = Integer.parseInt(str);
//        System.out.println("i:"+i);
        int n = 10;
//        实参
        f(n);
        System.out.println(n);
    }
    public static void f(int n){
        n = 100;
        System.out.println(n);
//        形参
    }
}

对象引用类型

package stu.day07;

public class main {
    public static void main(String[] args) {
        Person p = new Person("张三");
        f(p);
        System.out.println("实参:" + p);
    }
    public static void f(Person p){
        p = new Person("李四");
        System.out.println("形参:" + p);
    }
}
package stu.day07;

import java.math.BigDecimal;

public class Person {
    private String name;
    private BigDecimal price;
    private String age;

    public Person(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public BigDecimal getPrice() {
        return price;
    }

    public void setPrice(BigDecimal price) {
        this.price = price;
    }

    public String getAge() {
        return age;
    }

    public void setAge(String age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + ''' +
                ", price=" + price +
                ", age='" + age + ''' +
                '}';
    }
}

总结:

基本数据类型作为参数传入方法,是值传递,方法内部针对传入值的操作,不会直接影响之前数据的值。

引用数据类型作为参数传入方法,是地址传递,方法内部针对传入值的操作,会直接影响之前数据的值。