1.在计算机系统中,数值一律用二进制的补码来存储。
2.整数类型
Java有四种整数类型:byte,short,int,long.
Java默认整数计算的结果是int类型。
整数的字面量是int类型。
若字面量超过int类型的最大值,则字面量是long类型,那么后面要用L(或l)表示该值是long类型。
EG:将字面量30亿赋值给一个long类型的变量:
long longvalue=3000000000L;
练习:
package com.elrahchim.ch02;
public class Test07 {
public static void main(String[] args) {
byte b1 = 5;
// byte b2=b1+3; 这一句会出现错误,b1+3结果默认是int类型的
int b2 = b1 + 3;
System.out.println(b2);
}
}
3.浮点类型
浮点类型用于表示小数的数据类型。
浮点类型原理:也就是二进制科学计数法。
Java的浮点类型有float和double两种。
Java默认浮点类型计算的结果是double类型,字面量也是double类型。
若要给float类型的变量赋字面量的值,则要在字面量后面加F(或f)。
1)float类型共32位,1位为符号位,指数8位,尾数23位,(float的精度是23位,即能准确表达23位的数,超过就被截取了)
float存储的数据的范围比int类型大,但精度比int小,因为int的精度是31位。
2)double类型,位符号位,11位指数,52位尾数。double范围远远大于long,但long精度不如long,因为long存储数据的位数是63位。
练习:
package com.elrahchim.ch02;
public class Test08 {
public static void main(String[] args) {
double d = 2.6;
double result = d - 2;
System.out.println(result);
// 在做数值运算时,尽量用int,用浮点运算有误差,且计算速度慢
}
}
浮点运算就是实数运算,实数都是约数,这样浮点运算是很慢的而且会有误差。
4.字符类型
char类型的字面量可以是一个英文字母、字符或一个汉字,并由单引号包括。
如:'A' '3' 'a' '\n'
Java底层使用一个16位的整数来处理字符类型,该数值是一个字符的unicode编码值(占用两个字节)
unicode编码是全球范围内的编码方法。unicode编码的英文部分与ASCII码兼容。
Java的char类型只能处理65535个字符,是unicode的一部分。
数字0~9对应ASCII码:48~57
字母A~Z:65~90
字母a~z:97~122
package com.elrahchim.ch02;
public class Test09 {
public static void main(String[] args) {
for (int i = 0; i <= 127; i++) {
System.out.println((char) i + ":" + i);
// 把数字i转化成i所对应的字符,i为该字符所对应的unicode码/ASCII码
}
}
}