1.数值类型
- 整型
分为byte,short,int,long这四种类型;
默认类型为int,默认值为0
public static void main(String[] args) {
//0开头的数字是8进制
System.out.println("011=" + 011);
}
运行结果:
011=9
public static void main(String[] args) {
System.out.println("10/4 = " + 10 / 4);
}
运行结果:
10/4 = 2
结果分析:
整型相除结果还是整型
我们可以使用10/4.0来解决问题
- 浮点型
分为float,double这两种类型;
默认类型为double,默认值为0.0
public static void main(String[] args) {
//编译报错
//因为默认是double类型
float num = 10.0;
System.out.println(num);
}
public static void main(String[] args){
//float和double类型 精度可能丢失
//用BigDecimal可以解决问题
System.out.println("3.0-2.6= "+ (3.0 - 2.6));
}
运行结果:
3.0-2.6= 0.3999999999999999
2.布尔类型
boolean类型,只有true,false两个值,默认值为false
3.字符类型
char类型,默认值为'\u0000',其值为0,表示的字符为空;
private static char ch;
public static void main(String[] args) {
System.out.println("ch=" + ch + ".");
}
运行结果:
ch=.
public static void main(String[] args) {
char ch = '中';
System.out.println("ch=" + (int)ch);
}
运行结果:
ch=20013
char类型特点:
java使用了unicode编码,将0~127留给了ASSIC码字符,
同时可以表示中文等各国语言,
char类型在java中占用两个字节,也就是16位
4.基本类型数据范围
数据类型 |
关键字 |
字节数 |
默认值 |
数据范围 |
布尔类型 |
boolean |
1 |
false |
true, false |
字节类型 |
byte |
1 |
0 |
-2^7 ~ 2^7-1 |
字符型 |
char |
2 |
'\u0000' |
0 ~ 2^16 -1 |
短整型 |
short |
2 |
0 |
-2^15 ~ 2^15-1 |
整形 |
int |
4 |
0 |
-2^31 ~ 2^31-1 |
单精度浮点数 |
float |
4 |
0.0F |
3.402823e^+38 ~ 1.401298e^-45 |
长整形 |
long |
8 |
0L |
-2^63 ~ 2^63-1 |
双精度浮点数 |
double |
8 |
0.0 |
1.797693e^+308 ~ 4.9000000e^-324 |
5.运算溢出
当运算之后的数据,超出了数据类型的范围,
最后保存的数据会溢出
public static void main(String[] args) {
System.out.println("Integer.MAX_VALUE + 1 = "
+ (Integer.MAX_VALUE + 1));
}
运行结果:
Integer.MAX_VALUE + 1 = -2147483648
6.基本类型的类型转换
范围小的类型,可以自动转换为范围大的类型;
范围大的类型,需要强制转换为范围小的类型;
public static void main(String[] args) {
//整型的默认类型为int
//先执行, Integer.MAX_VALUE + 1,
//然后赋值给max1, 所以溢出了
long max1 = Integer.MAX_VALUE + 1;
System.out.println("max1 = " + max1);
}
运行结果:
max1 = -2147483648
网友评论