首先,在java中一共有两种数据类型,基本类型(primitive types)和引用类型(reference types)。
基本类型
java中的基本类型一共有八种,即byte, int, short, long, float, double, boolean, char。这些类型所申明的变量都是字面值,比如int a = 1,也就是说变量a指向的是1这个值,并没有对象和引用。值得注意的是,为了提高存储的速度,基本类型的变量内存都是存储在栈中的,而栈中的数据是是可以共享的。因此当我们同时声明两个同样字面值的变量时,编译器只会分配同一块内存。这个过程就是先在栈中查找是否存在这样的字面值,如果有则指向那块内存,如果没有就新分配一块内存。因此如果两个变量同时指向一个值,比如:int a = 1;int b = 2;当a的值被改变的时候,b的值并不会被改变,正如前面所说,a的值被改变时会重新去分配一块内存。
引用类型
主要包括一些对基本类型进行封装的类(又称为包装类),比如String,Integer,Double等,还有一些自定义的类。自定义类一般是显式的使用new关键字来告[……]