Java中定义了四类八种基本数据类型
- 布尔类型 Boolean
- 整数型 byte short int long
- 字符型 char
- 浮点型 float double
数据类型 | 关键字 | 字节数 | 取值范围 | 默认值 |
---|---|---|---|---|
布尔类型 | Boolean | 1 | ture false | false |
字节型 | Byte | 1 | -128 ~ 127 | 0 |
短整型 | Short | 2 | -2 ^15 ~2 ^15-1 | 0 |
整型 | Int | 4 | -2 ^31 ~2 ^31-1 | 0 |
长整型 | Long | 8 | -2 ^63 ~2 ^63-1 | 0 ’ |
单精度浮点型 | Float | 4 | 1.4013E-45 ~ 3.4028E+38 | 0.0F |
双精度浮点型 | Double | 8 | 4.9E-324 ~ 1.7977E+308 | 0.0D |
字符型 | Char | 2 | 0 ~ 2^16 -1 | ’ \u0000’ |
常遇问题
-
short s1 = 1; s1 = s1 + 1;
对于short s1=1;s1=s1+1来说,在s1+1运算时会自动提升表达式的类型为int,那么将int赋予给short类型的变量s1会出现类型转换错误。 -
short s1=1;s1+=1
对于short s1=1;s1+=1来说 +=是java语言规定的运算符,java编译器会对它进行特殊处理,因此可以正确编译。 -
Integer和int的区别
int是java的8种基本数据类型之一。Integer是Java为int类型提供的封装类。int变量的默认值为0,Integer变量的默认值为null,这一点说明Integer可以区分出未赋值和值为0的区别,Integer类内提供了一些关于整数操作的一些方法。 -
switch语句能否作用在byte上,能否作用在long上,能否作用在string上
在switch(expr1)中,expr1只能是一个整数表达式或者枚举常量,整数表达式可以是int基本类型或Integer包装类型。由于,byte,short,char都可以隐式转换为int,所以,这些类型以及这些类型的包装类型也是可以的。long和String类型都不符合switch的语法规定,并且不能被隐式转换成int类型,所以,它们不能作用于swtich语句中。不过,在1.7版本之后switch就可以作用在string上了