基本数据类型
Java中定义了3类8种基本数据类型数值型- byte、 short、int、 long、float、 double字符型- char布尔型-boolean
整型变量/常量
整型变量常用与没有小数部分的值,它允许是负数。整型变量的范围与java代码的运行器无关,这正是java程序具有很强的移植能力的原因之一。
类型 | 所站字节数 | 范围 |
---|---|---|
byte | 1字节 | -27 ~ 27-1(-128~127) |
short | 2字节 | -215 ~ 215-1 (-32768~32767) |
long | 8字节 | -263 ~ 263-1 |
int | 4字节 | -231 ~ 231-1 (-2147483648~2147483647) 约21亿 |
Java 语言整型常量的四种表示形式
十进制整数,如:99, -500, 0
八进制整数,要求以 0 开头,如:015
十六进制数,要求 0x 或 0X 开头,如:0x15
二进制数,要求0b或0B开头,如:0b01110011
Java语言的整型常数默认为int型,声明long型常量可以后加‘ l ’或‘ L ’ 。
long a = 55555555; //编译成功,在int表示的范围内(21亿内)。
long b = 55555555555;//不加L编译错误,已经超过int表示的范围。
浮点型变量/常量
类型 | 占用存储空间 | 表述范围 |
---|---|---|
float | 4字节 | -3.403E38~3.403E38 |
double | 8字节 | -1.798E308~1.798E308 |
float类型又被称作单精度类型,尾数可以精确到7位有效数字,在很多情况下,float类型的精度很难满足需求。而double表示这种类型的数值精度约是float类型的两倍,又被称作双精度类型,绝大部分应用程序都采用double类型。浮点型常量默认类型也是double。
float类型的数值有一个后缀F或者f ,没有后缀F/f的浮点数值默认为double类型。也可以在浮点数值后添加后缀D或者d, 以明确其为double类型。
Java浮点类型常量有两种表示形式
十进制数形式,例如:3.14 314.0 0.314
科学记数法形式,如314e2 314E2 314E-2
使用BigDecimal进行浮点数的比较
BigDecimal bd =BigDecimal.valueOf(1.0);
bd=bd.subtract(BigDecimal.valueOf(0.1));
bd=bd.subtract(BigDecimal.valueOf(0.1));
bd=bd.subtract(BigDecimal.valueOf(0.1));
bd=bd.subtract(BigDecimal.valueOf(0.1));
bd=bd.subtract(BigDecimal.valueOf(0.1));
System.out.println(bd);//0.5
System.out.println(1.0-0.1-0.1-0.1-0.1-0.1);//0.5000000000000001
BigDecimal bd2 =BigDecimal.valueOf(0.1);
BigDecimal bd3 =BigDecimal.valueOf(1.0/10.0);
System.out.println(bd2.equals(bd3));
字符变量/常量
字符型在内存中占2个字节,在Java中使用单引号来表示字符常量。例如’A’是一个字符,它与”A”是不同的,”A”表示含有一个字符的字符串。
char 类型用来表示在Unicode编码表中的字符。Unicode编码被设计用来处理各种语言的文字,它占2个字节,可允许有65536个字符。
转义字符
转义符 | 含义 |
---|---|
\b | 退格 |
\n | 换行 |
\r | 回车 |
\t | 制表符(tab |
" | 双引号 |
’ | 单引号 |
\ | 反斜杠 |