第一次使用int实验:
public class TTEST {private static List<UserEntity> mList = new LinkedList<UserEntity>(); public static void main(String[] args) {int a = 0;changeA(a);System.out.println("a = "+a);}public static void changeA(int a){a = 1;}
}
输出:a = 0
这说明对于int值是按值传递。其它几个基本类型也是如此。
再使用自定义的类UserEntity来实验:
public class UserEntity {private String name;public String getName() {return name;}public void setName(String name) {this.name = name;}}
public class TTEST {public static void main(String[] args) {UserEntity userEntity = new UserEntity();userEntity.setName("猿猴");changeName(userEntity);System.out.println("name = "+userEntity.getName());}public static void changeName(UserEntity userEntity){userEntity.setName("忽必烈");}
}
输出:name = 忽必烈我们再来使用一个linkedList<Object>来实验:
import java.util.LinkedList;
import java.util.List;public class TTEST {private static List<UserEntity> mList = new LinkedList<UserEntity>(); public static void main(String[] args) {UserEntity userEntity = new UserEntity();userEntity.setName("石头");addUser(userEntity);System.out.println("name = "+userEntity.getName());}public static void addUser(UserEntity userEntity){mList.add(userEntity);mList.get(0).setName("猿猴");}
}
输出:name = 猿猴 这说明在使用我们自定义的类时,是按引用传递的。
接着。再来使用String实验:
public class TTEST {public static void main(String[] args) {String str= "開始的";changeStr(str);System.out.println("str = "+str);}public static void changeStr(String str){str = "改变的";}
}
输出:str = 開始的 用Integer做实验也会发现没有改变。
说明我们依照java内置的对象也是值传递。因此我们能够做例如以下总结:
仅仅要我们自定义的类创建的对象。都是引用传递,系统内置基本类型和对象是通过转移。
版权声明:本文博客原创文章,博客,未经同意,不得转载。