在Java里,变量总是和数据类型有关联。一个变量有三个属性:
- 在内存中开辟空间存储变量值
- 在开辟的内存空间里存储变量的数据类型
- 标识符标识内存的地址
其中第二点即为数据类型。对于变量的数据类型决定了开辟多大的内存空间,也就是内存的大小取决于变量是什么数据类型的。比如,int类型的变量允许最大的数为2^32。
Java支持两种数据类型:内置数据类型(值类型),引用数据类型(引用类型)
值类型即为内存空间内直接存储变量值,引用类型为存储变量的引用,即变量所在内存空间的地址。
例如,String为引用类型数据类型,如下声明:
String str = new String("Hello");
当执行到这段代码时,首先开辟一块内存空间,取名为str,这一步与声明值类型的变量没有区别。然后,在内存中建立一个String类型的对象,值为Hello,并且把这一内存地址存入str变量中。
也可以将一个变量的引用传递给另一个引用类型变量。这种情况下,两个引用类型变量将会指向同一块内存地址。
// Declares String reference variable str1 and str2
String str1;
String str2;
// Assigns the reference of a String object "Hello" to str1
str1 = new String("Hello");
// Assigns the reference stored in str1 to str2
str2 = str1;
所有博客,除了代码部分,都是我一字一句敲进去的,请珍惜劳动成果,转发请标明**********
个人理解难免有出入,欢迎留言一起探讨****************