数据类型
1.整数类型
整数类型有四种声明类型:byte类型,short类型,int类型,long类型,占用的内存空间分别为一个字节、两个字节、四个字节、八个字节。由于整数的默认类型是int类型,在 为long类型变量赋值时,需要添加“L”或“l”作为后缀,否则会出现精度的丢失。例如:
long a =123456789 * 987654321; long b = 123456789L * 123456789L;
在运行后,a = -67153019,b = 121932631112635269。
在Java中使用不同进制的数时,需要添加前缀,八进制数以“0”开头,十六进制以“0X”或“0x”开头。例如:
int a = 11; int b = 022; int c = 0x33;
在运行后,a = 11,b = 18,c = 51。
2.浮点数类型
浮点数类型有两种声明类型:float类型,double类型,占用的内存空间分别为四个字节与八个字节。double类型是浮点数类型的默认类型,在为float类型的变量赋值时,需要添加“F”或“f”作为后缀,否则可能会报错,在为double类型的变量赋值时,可以添加“D”或“d”的后缀,也可以不加。
Java中的浮点值属于近似值,并不精确,在进行赋值运算的时候,可能会出现问题,例如:
double a = 4.35 * 100;
在运行后,a = 434.99999999999994。可以利用Java提供的“四舍五入”法来解决这种问题,即在输出结果时,使用“Math.round()”,例如:
double a = 4.35 * 100; System.out.println(Math.round(a));
在运行后,a = 435。
浮点值在进行比较判断时,也会出现错误,例如:
double a = 0.1; double b = 2.0 - 1.9; System.out.println(a == b);
在运行后,显示false。分别输出a与b的值
double a = 0.1; double b = 2.0 - 1.9; System.out.println(a); System.out.println(b); System.out.println(a == b);
后,得到a = 0.1,b = 0.10000000000000009。显然,这也是浮点值不精准的问题,可以用“最小数对比”法,解决此类问题。最小数比较法就是使用Java提供的取绝对值方法Math.abs()与最小数“1e-6”相比较,“1e-6”是一个理论最小数,当一个数比“1e-6”还小时,可以视这个数为“0”。
double a = 0.1; double b = 2.0 - 1.9; System.out.println(Math.abs(a - b) < 1e-6);
在运行后得到“true”。
3.字符类型
字符:用单引号包含的可打印的单个符号,例如‘a’、‘A’、‘8’、‘#’、‘数’、‘ ’ 。‘8’是字符编码,与数字8的字面值相同,但他们的值不相同。
在Java中使用char来保存字符类型,而在C语言中,char通常划分到整数类型里,因为char不仅可以保存字符,也可以保存对应的字符编码值,这些字符编码是整数数值,Java也沿用了这一功能,但不同的是Java中的char采用了更高级的unicode编码,unicode编码的取值范围是0~65536,所有Java中char类型的取值范围也是0~65536。由于char类型可以保存字符和字符编码,所有char类型的赋值有两种方法。
char a1 = 'a'; char b1 = '汉'; char c1 = '2'; char a2 = 97; char b2 = 27721; char c2 = 50;
在为char变量赋值单引号时,需要用到转义字符,\'表示单引号字符,\''表示双引号字符,\\表示反斜杠字符,\t表示垂直制表符,\r表示回车,\n表示换行,\b退格,\f换页。
4.布尔类型
使用boolean关键字定义布尔类型的变量,布尔类型只有两个值,true和false,代表逻辑上的真与假。
boolean a = true; boolean b = false;

浙公网安备 33010602011771号