数据类型、自动转换和强制转换
1 变量
-
-
变量=变量名+值+数据类型
2 数据类型

2.1整数
public static void main(String[] args) {
int numFirst = 10;
int numSecond = 010; // 八进制 0 (逢八进一)
int numThird = 0x10; // 十六进制0x 0~9 A~F (逢十六进一)
System.out.println(numFirst); //10
System.out.println(numSecond); //8
System.out.println(numThird); //16
}
2.2浮点数
不要用浮点数进行比较
public static void main(String[] args) {
float f = 0.1f;
double d = 1.0 / 10;
System.out.println(f == d); //false
float ff = 2312421421421421421421f;
float ff2 = ff + 1;
System.out.println(ff == ff2); // true
}
2.3字符
所有字符本质还是数字!!! 编码 Unicode 2字节 0 ~ 65536 U0000~UFFFF
public static void main(String[] args) {
char c = '\u0061';
System.out.println(c); // 输出a
}
3 自动类型转换

public static void main(String args[]){
char b = 65;
System.out.println(b); //a
System.out.println(b+1); //66
char c = 'c' + 1;
//char c = b + 1;会报错,b是char类型变量,b+1是int型,'b'+1是char型
System.out.println(c); //d
char d = '1';
System.out.println(d); //1
char c1 = '男';
char c2 = '女';
//char c3 = c1 + c2;会报错,因为c1 + c2是int类型(两个字符相加后变为int),不能自动转换为int,需要强制转换
char c3 = (char) (c1 + c2);
System.out.println(c1+c2); //52906
System.out.println(c3); //캪
}
运行结果:
A
66
d
1
52906
캪
总结:
-
输出char类型的变量,输出结果为字符
-
含有char类型的变量相加结果为int,但是char字符直接加数字,还是char
比如char b;
b+1是int类型,而'b'+1是char类型
4 强制类型转换
将容量大的转换为容量小的数据类型,使用时在大容量数据类型前加(容量小的数据类型),可能溢出

浙公网安备 33010602011771号