Java的基本数据类型
以下内容引用自http://wiki.jikexueyuan.com/project/java/basic-datatypes.html:
变量就是用来储存值而保留的内存位置。这就意味着当创建一个变量时就会在内存中占用一定的空间。
基于变量的数据类型,操作系统会进行内存分配并且决定什么将被储存在保留内存中。因此,通过给变量分配不同的数据类型,可以在这些变量中存储整数,小数或者字字母。
Java中有两种有效地数据类型:
- 原始数据类型
- 引用数据类型
一、原始数据类型
Java支持8种原始数据类型。原始数据类型是由该语言预先定义的并用关键词命名的。
1、字节型(byte)
- 字节型是一种8位有正负的二进制整数
- 最小值是-128(-2^7)
- 最大值是127(2^7-1)
- 默认值为0
- 字节型数据类型主要是为了在大型数组内节省空间,由于字节型比整数小4倍,所以主要是替代整数。
- 例如:byte a = 100 , byte b = -50
2、短整数(short)
- 短整数是一种16位有正负的二进制整数
- 最小值是-32768(-2^15)
- 最大值是32767(2^15-1)
- 短整数类型的数据也可以像字节型一样用于节省空间。短整数比整数小两倍
- 默认值为0
- 例如:short s = 10000, short r = -20000
3、整数型(int)
- 整数型是一种32位有正负的二进制整数
- 最小值是-2,147,483,648(-2^31)
- 最大值是2,147,483,647(2^31 -1)
- 整数型一般默认被应用于整数值除非担心内存不够用。
- 默认值为0
- 例如:int a = 100000, int b = -200000
4、长整型(long)
- 长整型是一种64位有正负的二进制整数
- 最小值是-9,223,372,036,854,775,808(-2^63)
- 最大值是9,223,372,036,854,775,807 (2^63 -1)
- 这种数据类型一般是在需要比整数型范围更大时应用。
- 默认值为0L
- 例如:long a = 100000L, int b = -200000L
5、浮点型(float)
- 浮点型数据是一种单精度的32位IEEE 754标准下的浮点数据。
- 浮点型数据主要是为了在大型浮点数字数组中节约内存。
- 默认值是0.0f。
- 浮点型数据不能用于如货币这样的精确数据。
- 例如:float f1 = 234.5f
6、双精度型(double)
- 双精度型数据是一种双精度的64位IEEE 754标准下的浮点数据。
- 这种数据类型主要是默认被用于表示小数的值,一般是默认的选择。
- 双精度型数据不能用于如货币这样的精确数据。
- 默认值是0.0d
- 例如:double d1 = 123.4
7、布尔型(boolean)
- 布尔型数据代表一个信息比特。
- 它只有两个可能的值:真(true)和假(false)
- 这种数据类型用于真假条件下的简单标记。
- 默认值是假(false)
- 例如:boolean one = true
8、字符型(char)
- 字符型数据是简单的16位Unicode标准下的字符。
- 最小值是:'\u0000'(或 0)。
- 最大值是:'\uffff'(或 65,535 )。
- 字符型数据可以用来储存任意字母。
- 例如:char letter A(字符型的字母A) ='A'
二、引用数据类型
- 引用数据类型是由类的编辑器定义的。是用于访问对象的。这些变量被定义为不可更改的特定类型。例如:Employee,Puppy 等等。
- 类对象和数组变量就是这种引用数据类型。
- 任何引用数据类型的默认值都为空。
- 一个引用数据类型可以被用于任何声明类型和兼容类型的对象。
- 例如:Animal animal = new Animal("giraffe");
三、Java常量
常量是代表固定值的源代码。
常量可以被分配给任意的原始变量类型。例如:
byte a = 68; char a = 'A'
字节型,整数型,长整型和短整型也可以由十进制,十六进制和八进制计数系统表示。
当用这些技术系统表示直接量时,前缀 0 是为了标明八进制,前缀 0x 是为了标明十六进制。例如:
int decimal = 100; int octal = 0144; int hexa = 0x64;
Java中的字符串型常量的规定和其他大多数语言一样,也是要写在双引号中间。字符串型直接量的例子如下:
"Hello World" "two\nlines" "\"This is in quotes\""
字符和字符串型常量可以包含任意的Unicode字母。例如:
char a = '\u0001'; String a = "\u0001";
Java语言也支持一些特殊的转义序列的字符和字符串直接量。他们是:
转义字符 | 含义 |
---|---|
\n | 换行 (0x0a) |
\r | 回车 (0x0d) |
\f | 换页 (0x0c) |
\b | 退格 (0x08) |
\s | 空格 (0x20) |
\t | tab |
\" | 双引号 |
\' | 单引号 |
\ | 反斜杠 |
\ddd | 八进制字符 (ddd) |
\uxxxx | 十六进制 UNICODE 字符 (xxxx) |