java中的byte, short, int, long都有且只有有符号型,即最左边的二进制位表示正负(1表示负,0表示正).简单说下位运算.带符号右移(>>)与无符号右移(>>>)见
1.byte类型(占一个字节)
(1)byte是八位有符号的二进制整数,其取值范围从-128~127。Java中byte类型是用补码形式表示的,(最高位)是符号位,0表示正数,1表示负数。
2.short类型(两个字节)
3.int类型(四个字节)
4.long类型(八字节)
(1)有时即使long类型的变量也不能满足计算的需求,如求1000!,我们可以导入BigInteger类。(import java.math.BigInteger)
5.float(四字节)
(1)精度较低
(2)一个float类型的变量通常可以比long类型变量表示的范围更大,因为浮点数在计算机中是以科学计数法的形式表示的。
6.double类型(八字节)
(1)double类型精度差不多在15位十进制数左右,但在有些领域,该精度还不够.我们可以使用BigDecimal类来进行浮点计算。需要导入BigDecimal类。(import java.math.BigDecimal)。
7.char(两字节):
(1)char型数据用来表示通常意义上的字符(占两个字节);
(2)Java中的所有字符都使用Unicode编码,故一个字符可以存储一个汉字,或者一个字母,或者世界上大部分的文字;
(3)字符型变量的三种表现形式:
- 形式一: 使用单引号括起来".
- 形式二:直接使用Unicode值来表示字符型常量‘\uXXXX’,其中XXXX是16进制整数。例如‘\u0023’表示‘#’.
- 形式三:Java还允许使用转义字符‘\’,将其后的字符转变为特殊的字符型常量,例如‘\n’表示换行符.
(4)注意事项:
- char ch =97;(Unicode编码包含了ASCII编码)在ASCII中,97映射字符‘a’,System.out.println(ch)将打印字符a;
- char ch =‘11’,编译器报错,因为单引号内只允许是一个字符;
- Java的char与c语言中的char有很大的不同,不同之处在于,c语言中的char字符只占一个字节,表示范围从-128到127;并且其并不是使用Unicode编码,而是所有字符使用ASCII编码。
8.boolean类型
(1)boolean类型变量只有两个值 : true 和 false。true表示为真,false表示为假。
(2)注意事项 :
- 0并不表示假(1并不表示真)。所以if (1)编译错误。正确写法 :boolean a =true;if (a)
- boolean类型变量一般不考虑其在内存中占几个字节。