特点:
一、从概念方面来说
基本数据类型:变量名指向具体的数值
引用数据类型:变量名指向存数据对象的内存地址,即变量名指向hash值
二、从内存构建方面来说
基本数据类型:变量在声明之后java就会立刻分配给他内存空间
引用数据类型:变量声明时不会分配内存,只是存储了一个内存地址。
三、java中引用类型的实参向形参的传递,只是传递的引用,而不是传递的对象本身。
案例分析:
Java程序运行的结果是:
|
1
2
3
4
5
6
7
8
9
10
11
12
|
public class Tester{public static void main(String[] args){ Integer var1=new Integer(1);
Integer var2=var1;
doSomething(var2);
System.out.print(var1.intValue());
System.out.print(var1==var2);
}public static void doSomething(Integer integer){ integer=new Integer(2);
}
} |
结果:1 true
分析原因:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
package algorithms.com.guan.javajicu; public class Example { String str = new String("good");
char[] ch = {'a','b','c'};
public static void main(String[] args) {
Example ex = new Example();
ex.change(ex.str, ex.ch);
System.out.print(ex.str +"and");
System.out.print(ex.ch);
}
public void change(String str, char ch[]){
str= "test ok";
ch[0]= 'g';
}
} |
java 中String是 immutable的,也就是不可变,一旦初始化,其引用指向的内容是不可变的。
其几个为: