一、基本类型和引用类型的理解
Java中的数据类型分为两种为基本类型和引用类型。
1、基本类型的变量保存原始值,所以变量就是数据本身。
常见的基本类型:byte,short,int,long,char,float,double,boolean
2、引用类型的变量保存引用值,所谓的引用值就是对象所在内存空间的“首地址值”,通过对这个引用值来操作对象。
常见的引用类型:类类型,接口类型和数组。
二、值传递
1、代码:
public class CallByValue {
private static int x=10;
public static void updateValue(int value){
value = 3 * value;
}
public static void main(String[] args) {
System.out.println("调用前x的值:"+x);
updateValue(x);
System.out.println("调用后x的值:"+x);
}
}
2、效果分析:

三、引用传递
1、代码:
public class User {
private String name;
private int age;
public User(String name, int age) {
this.name=name;
this.age=age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
2、效果分析:

三、为什么说Java中只有值传递?
对于java中的参数传递方式中是否有引用传递这个话题,很多的人都认为Java中有引用传递,但是我个人的看法是,Java中只有值传递,没有引用传递。
那么关于对象的传递怎么解释呢?难道对象不是一个引用传递吗?
对于这一点我的看法是,对象的传递只不过是将对象的地址值传递到方法里,只要你不改变这个地址值,那他就指向原来的引用不会改变,但是你一旦改变了这个地址值,那么你就改变了他的实际引用。那归根到底还不是值传递吗?只不过我普通类型传递的是copy后的普通类型的值,我引用传递的是一个copy的地址值而已。
网友评论