《java面试题02》--值传递和引用传递

值传递和引用传递,近期接口开发中处理结果集等数据的时候常用到,二者主要区别在于所传的参数类型:

    public static void main(String[] args) {
		test();
	}   

     public static void test(){ 
		String str1="Hello";
        change(str1);
        System.out.println("str1: "+str1);

        StringBuffer str2=new StringBuffer("Hello");
        change(str2);
        System.out.println("str2: "+str2);

        List<String> list = new ArrayList<>();
        list.add("1");
        change(list);
        System.out.println("list: "+list);
	 } 
	 public static void change(String str){
	    str = str + " world";
	 }
	 public static void change(StringBuffer str){
	    str.append(" world");
	 }
	 public static void change(List<String> list){
		 list.add("2");
	 }

打印结果:

str1: Hello
str2: Hello world
list: [1, 2]

参数为基本类型--值传递,不会修改实参对象;

参数为引用类型--引用传递,会修改实参对象;

(String, Integer, Double等immutable的类型特殊处理,可以理解为传值)

猜你喜欢

转载自blog.csdn.net/weixin_39039342/article/details/83860959