JAVA两种数据类型
- 基本数据类型
基本数据类型都是直接存储在栈中,数据本身的值就是存储在栈空间里面,Java语言里面的八种数据类型就是这种存储模型。
- 引用数据类型
继承于Object类,使用Java内存堆和内存栈来进行这种类型的数据存储,简单地讲,“引用”是存储在有序的内存栈上的,而对象本身的值存储在内存堆上的
<font color="gray">基本数据类型和引用数据类型的区别在于,基本数据类型是分配在栈上的,而引用数据类型是分配在堆上的,不论是基本数据类型还是引用类型,他们都会先在栈中分配一块内存,对于基本类型来说,这块区域包含的是基本类型的内容;而对于对象类型来说,这块区域包含的是指向真正内容的指针,真正的内容被手动的分配在堆上。</font>
八类基本数据类型介绍
Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型
byte
- 一个字节,8位,有符号
- 最小值 -128(-2^7)
- 最大值 127(2^7-1)
- 默认值 0
- 例子:byte a = 100,byte b = -50。
short
- 2个字节,16位,有符号
- 最小值 -32768(-2^15)
- 最大值 32767(2^15 - 1)
- 默认值 0
- 例子:short s = 1000,short r = -20000。
int
- 4个字节,32位,有符号
- 最小值 -2,147,483,648(-2^31)
- 最大值 2,147,483,647(2^31 - 1)
- 默认值 0
- 例子:int a = 100000, int b = -200000
long
- 8个字节,64位,有符号
- 最小值 -9,223,372,036,854,775,808(-2^63)
- 最大值 9,223,372,036,854,775,807(2^63 -1)
- 默认值 0L
- 例子: long a = 100000L,Long b = -200000L
float
4个字节,32位,单精度,符合IEEE 754标准的浮点数
最小值 0.0000000000000000000000000000000000000000000014(1.4E-45 )
最大值 340,282,350,000,000,000,000,000,000,000,000,000,000(3.4028235E38)
默认值是 0.0f
浮点数不能用来表示精确的值,如货币
例子:float f1 = 234.5f
double
- 8个字节,64位,符合IEEE 754标准的浮点数
- 最小值 4.9E-324,这个值太小了
- 最大值 1.7976931348623157E308,这个值太大了
- 默认值 0.0d
- 例子:double d1 = 123.4
char
- 2个字节,16位,单一的Unicode 字符
- 最小值 \u0000(即为0)
- 最大值是 \uffff(即为65,535)
- char 数据类型可以储存任何字符
- 例子:char letter = ‘A’
boolean
- 1位
- 只有两个取值:true 和 false
- 默认值是 false
- 例子:boolean flag= true