学习过C/C++之后转移到Java,首先要注意的就是变量存储的区别。
Java变量分为基本类型和引用类型。
基本类型和平常在C/C++用到的大致一致,包含int,long,float,double等。基本类型的变量存储的就是值本身。这句话听起来有点奇怪,但是我们会看到,引用类型并不是这样的。
引用类型的变量是对值的引用,它可以类比为C/C++的指针。所以如果两个引用类型的变量,引用同一个值,那么修改其中的一个,另一个也会变化。这在基本类型是不会发生的。不过要注意,这种修改不是用C/C++中的=赋值,Java中=赋值会更改引用类型变量的引用,使它引用另一个值,而不是修改原本的值。
典型的引用类型有数组。在Java里数组是定长的,但是可以用=使之引用另一个数组。如果不理解引用类型会对此感到迷惑。
类都是引用类型。Java提供了对基本类型的包装类。比如int的包装类就是Integer。基本类型可以转换成对应的包装类,但是包装类转换成基本类型要注意,因为引用类型可以是null(像C/C++的指针一样),就无法转换成基本类型了。