一、Java八种原始数据类型
数值型:
整数型:byte,short,int,long
浮点型:double,float
字符型:char(Java使用Unicode编码)
布尔型:boolean
二、引用数据类型
类(class)
接口(interface)
数组
三、原始数据类型与引用数据类型的联系
String将数据以字符表的方式储存,而其字符原始类型是char,所以说String是一种复合类型。而所有的复合类型都是由简单的数据类型组成。
复合类型包含许多原始类型或其他复合类型,其对象所占内存远超过原始数据类型,所以Java复合类型的变量不存储对象本身,只存储对象引用。
Codegym中有一个比喻特别形象,把邻居的电话号码抄写在纸上,复制多个,分别放在不同的盒子里,则会有更多对邻居的引用,但是你依然只有一个邻居。
既然复合类型变量只存储对象引用,可想而知,相同复合类型同一数据存储地址也相同。
public class Person //创建Person复合类型
{
String name;
int age;
}
public class Rectangle //创建Rectangle复合类型
{
int x, y, width, height;
}
public class Cat //创建Cat复合类型
{
Person owner;
Rectangle territory;
int age;
String name;
}
倘若复合类型没有引用对象呢?
String s;
String s = null;
这两个语句是等效的,也就是说没有引用对象时会默认赋null值。
代码部分源自Codegym,粗知拙见。