码迷,mamicode.com
首页 > 编程语言 > 详细

java 值传递和引用传递。

时间:2014-12-02 19:07:47      阅读:198      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   ar   color   sp   java   for   on   

java中 基本类型的参数传递是值传递,即前后两个方法的变量不相干,被调方法参数值改变不影响调用方法的传参数值。

 引用数据类型的参数传递是 传递的是参数的地址。即被调方法修改参数值会,调用方法里会跟着改变。如下:

 public static void main(String[] args) {

        List<String> list = new ArrayList<String>();
        list.add("zhangsan");
        for(String l :list){
            System.out.println(l);
        }
        String s = "old";
        System.out.println(s+"--------------------");
        
        processList(list,s);
        for(String l :list){
            System.out.println(l);
        }
        System.out.println(s+"--------------------");
    }
    
    static void processList(List<String> list,String str) {
        list.add("li si");
        str+="new";
    }

      如果想按照引用传递的值,相互不影响呢?方法是在new一个实例就可以了。

 public class TempTest {  

 private void test1(A a){  
 a = new A();//新加的一行  
 a.age = 20;  
 System.out.println("test1方法中的age="+a.age);  
 }  
 public static void main(String[] args) {  
 TempTest t = new TempTest();  
 A a = new A();  
 a.age = 10;  
 t.test1(a);  
 System.out.println(”main方法中的age=”+a.age);  
 }  
}  
class A{  
 public int age = 0;  

}   详细可以参考:http://blog.csdn.net/zzp_403184692/article/details/8184751 介绍的有内存的变化。

 

java 值传递和引用传递。

标签:style   blog   http   ar   color   sp   java   for   on   

原文地址:http://www.cnblogs.com/brucetie/p/4138120.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!