1.变量的数据类型
1.1整数类型变量
类型名 | 占用空间 | 取值范围 |
byte | 8位(1个字节) | -2^7~2^7-1 |
short | 16位(2个字节) | -2^15~2^15-1 |
int | 32位(4个字节) | -2^31~2^31-1 |
long | 64位(8个字节) | -2^63~2^63-1 |
1.2浮点数类型变量
类型名 | 占用空间 | 取值范围 |
float | 32位(4个字节) | 1.4E-45~3.4E+38,-1.4E-45~-3.4E+38 |
double | 64位(8个字节) | 4.9E-324~1.7E+308,-4.9E-324~-1.7E+308 |
在取值范围中,E代表以10为底的指数,E后面的+号和-号代表正指数和负指数
float a=123.45f;
double b=15.36;
1.3字符类型变量
char占用2个字节,它的取值范围是0~65535内的整数
char c ='a';
char ch = 97;
1.4布尔类型变量
boolean flag = flase;
flag = true;
2.变量的类型转换
2.1自动类型转换
byte b = 3;
int x = b;
double y = x;
2.2强制类型转换
例2.21
public class Basic {
public static void main(String[] args) {
byte a;
int b=348;
a=(byte)b;
System.out.println(b);
//b被强制转换成byte型,348超出了byte取值范围127,导致精度丢失
System.out.println(a);
}
}
运行结果如图所示:
多学一招:表达式类型自动提升
例2.22
变量在表达式中进行运算时,也有可能发生自动类型转换,这就是表达式数据类型的自动提升,如byte、short、和char类型的变量在运算期间类型会自动提升 为int,然后再进行运算。
如下图将第八行代码修改为:
byte d = (byte) (a+b+c);
再次编译,程序就不再报错了
2.23变量的作用域
第十一行y超出了 它的作用范围,删掉后就不报错了
2.24 Java中的常量
整形常量、浮点型常量、字符串常量、布尔常量、null常量
定义常量的语法格式与定义Java变量的语法格式基本相同。唯一不同的是,定义Java常量时必须用final关键字修饰,来声明是一个不可改变的量。
final int a=0,b;//定义一个int类型的常量a和b,并为常量a初始化赋值0
b=1; //后续为常量b赋值
多学一招:转义符——反斜杠(\)
十进制与二进制、八进制、十六进制之间的转换