数据类型是程序设计语言描述事物、对象的方法。Java数据类型分为内置类型和扩展类型两大类。
内置类型就是java语言本身提供的基本数据类型。比如,整数型int,浮点型float,字符char,布尔值Boolean。
扩展类型则是java语言根据基本数据类型扩展出的其他类型,java要求所有的扩展类型都必须包括在类定义里边,
这就是java为什么是面向对象编程语言的原因。
8中基本数据类型:bbcdflis
类型名称 | 类型定义 | 类型取值 |
---|---|---|
boolean | 布尔值,作二元判断 | true, false |
byte | 8位有符号整数 | 最小值-128,最大值127 |
short | 16位有符号整数 | 最小值-32768,最大值32767 |
int | 32位有符号整数 | 最小值-2147483648(-231),最大值2147483647(231-1) |
long | 64位有符号整数 | -263~(263-1) |
float | 32位浮点数 | 1.4E-45~3.4028235E38 |
double | 64位浮点数 | 4.9E-324~1.7976931348623157E308 |
char | 16位Unicode字符 | 不适用 |
基本数据类型:
数值型–整数型 | byte,int,long,short |
---|---|
数值型–整数型: | byte,int,long,short |
数值型–浮点型: | float,double |
布尔型: | Boolean |
字符行: | char |
类型 | 占用大小 |
---|---|
byte | 1字节 |
short | 2字节 |
int | 4字节 |
long | 8字节 |
float | 4字节 |
double | 8字节 |
char | 2字节 |
基本类型变量
上述的8中类型变量为基本类型,基本数据类型的变量为单个值,这个值的长度和格式符合变量所属数据类型的要求,可以是一个数字,一个字符,一个布尔值。如:一个整型值是32位的二进制补码格式的数据而一个字符型的值是16位的unicode字符格式的数据。
引用类型
而引用类型则是类、接口和数组变量。引用类型变量的值和基本类型变量不同,变量值是指向内存空间的地址(引用)。这个地址在C语言中称为指针或者内存地址。java不支持显式使用内存地址,所以要通过变量(引用类型变量)名对某个内存地址访问。
在java中使用基本类型变量声明时,系统直接给该变量分配栈内存空间并给其初始值,所以以下程序可以直接操
作。
int a;
a = 10;
a在声明的时候内存中会给其赋默认值0;所以a可以直接使用。
User user;
user.name = "OH";
由于user不是基本数据类型,所以该对象java虚拟机没有办法进行默认初始化,必须要手动new一个对象进行初始化(也就是在java堆中开辟一块儿user的数据空间)。由于上述代码中user没有进行初始化,所以在赋值的时候会报错。错误描述:user变量没有初始化。
引用类型变量的赋值
java中引用类型变量的赋值是引用赋值,即将引用对象的内存地址赋给即将赋值的变量。如:
User li = new User;
user zhou = li; //将li的内存地址写入zhou的栈内存中。
参考资料:
https://zh.wikibooks.org/zh-hans/Java/%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B
http://www.cnblogs.com/simplefrog/archive/2012/07/15/2592011.html
http://blog.csdn.net/hipilee/article/details/8543926