java按值传递相关理解

Java没有引用传递只有按值传递,没有引用传递只有按值传递,值传递。

1.

public class Test {
     public static void main(String[] args ){    
         int var = 1 ;    
        f(var) ;    
        System.out.println(var) ;    
     }
     public static void f(int newVar ){    
         newVar = 2 ;    
     }
 }

基本类型值不变,打印结果为1

2.

 class MyClass {
     int var1 ;
 }
 public class Test {
     public static void main(String[] args ){    
         MyClass myClass = new MyClass() ;
         myClass.var1 = 1 ;
        f(myClass) ;    
         System.out.println(myClass.var1) ;    
     }
     public static void f(MyClass newMyClass ){
         myClass.var1 = 100 ;
     }
 }

对象属性引用传值,打印结果为100(注意:String类特殊,见3)

3

public class Test {
     public static void main(String[] args ){    
        String var = "Hello" ;
         f(var) ;
        System.out.println(var) ;
     }
     public static void f(String newVar ){
         newVar = "World" ;
     }
 }

打印结果为

Hello

 

posted @ 2016-08-05 15:57  前度刘郎  阅读(250)  评论(0编辑  收藏  举报
欢迎来到戴建伟的博客!