Java笔试题学习之27(包装类型值传递)

public class Test27 {
    public static void main(String[] args) {
        Count count=new Count();
        count.count(count.getCount()).getCount();
        new Count().count(count.getCount());
    }
    public static class Count{
        volatile Integer count=2018;
        public Count count(Integer count){
            count.intValue();
            System.out.println(++count);
            return this;
        }

        public Integer getCount(){
            System.out.println(++count);
            return count;
        }
    }
}

输出:
2019
2020
2020
2021
2022

分析:包装类型,进行参数传递,与基本类型传递方式一致,传递的是值,而不是引用

例如:

Integer num1=100;
Integer num2=num1;
System.out.println(++num1);
System.out.println(num2);

输出:
101
100

修改num1的值,对num2 并没有产生影响,所以Integer num2=num1; 我个人理解为创建了一个新的对象,num1和num2指向了不同的对象

你可能感兴趣的:(Java笔试题学习之27(包装类型值传递))