Java中的变量及数据类型、类型转换、强制类型转换
Java基础部分(二)
变量与数据类型
1.变量
所谓变量就是值可以变化的量,变量是作为程序运行时的数据。
变量的三要求:变量名、变量类型、变量值。
int a = 2; //定义一个整型变量a且赋值为2。
2.数据类型
常用数据类型 | 含义 | 长度 | 说明 |
---|---|---|---|
byte | 整数 | 1字节 | 字节型、取值范围[-128,127] |
short | 整数 | 2字节 | 短整型、取值范围[-2^15, 2^15-1] |
int | 整数 | 4字节 | 整数型、取值范围[-2^31, 2^31-1] |
long | 整数 | 8字节 | 长整型、取值范围[-2^63, 2^63-1]、定义长整型时要在末尾加 l/L |
float | 小数 | 单精度 4字节 | 末尾加f/F |
double | 小数 | 双精度 8字节 | Java中会将小数默认当作double类型处理 |
char | 字符 | 2字节 | 表示单个字符、用时需单引号引起 |
boolean | 布尔 | 1字节 | 表示真或假即true/false |
string | 字符串 | 看具体字符串长度而定 | 表示一串字符,用时需双引号引起 |
3.进制数表示
二进制数:以0b或0B为前缀,0是阿拉伯数字。
八进制数:以0为前缀,0是阿拉伯数字。
十六进制数:以0x或0X为前缀,0是阿拉伯数字。
int a1 = 28;
int a2 = 0b11100;//二进制
int a3 = 0B11100;//二进制
int a4 = 034;//八进制
int a5 = 0x1c;//十六进制
int a6 = 0X1c;//十六进制
都是表示28的数。
4.指数
大写或者小写的e表示幂。
int a = e2;
double b = 3.14e-2;
这e2表示10^2, 3.14e-2表示 3.14*10^-2。
5.类型转换
1.自动类型转换(隐式转换)。
条件:a、数据类型要兼容。
b、目标类型要大于原类型(字节长度)
int a=3;
long b=a;
System.out.println(b);
这里输入的是3,长整型,
long类型的长度大于int类型的长度。
若是
long a=3;
int b=a;
System.out.println(b);
则输出会报错。
2.强制类型转换(显示转换)。
语法:
(目标的数据类型)数值;
double e=12.6;
int f=(int)e;
System.out.println(f);
系统输出的是12。
这也说明了强制转换会导致数据的丢失和降低精度。
3.char 和 int 之间的转换
char 和 int 都是以二进制类型存储的。
//将char转换为int
int x='a'; //隐式转换
System.out.println(x);
输出的结果是97,这是a的ASCII码。
//将char转换为int
int x='a'; //隐式转换
System.out.println(x);
//将int转换为char
char y=(char)x; //必须进行强制类型转换
System.out.println(y);
char z=97; //不会报错,97被当作常数来处理
//而非整型int(整数和整型是有所不同的)
System.out.println(z);
运行结果
97
a
a