数据类型扩展
- 少用浮点数(float,double)比较,用BigDecimal(数学工具类)
- 所有字符的本质还是数字,int类型转换
public class Demo1 {
public static void main(String[] args) {
//整数扩展
int num1=10;//十进制
int num2=010;//八进制
int num3=0x10;//十六进制
System.out.println(num1);
System.out.println(num2);
System.out.println(num3);
//浮点数扩展(例子:银行业务) BigDecimal(数学工具类)
float a1=2346789123f;
double a2=a1+1;
float a3=0.1f;//0.1 //float 有限,离散,误差,大约,接近于,所以a1和a2结果相差不大,机器默认一样
float a4=1/10;//0.1
System.out.println(a1);
System.out.println(a2);
System.out.println(a1==a2);//等号要用==,不能用=//true
System.out.println(a3==a4);//false
//字符扩展
char c1='a';
char c2='田';
char c3='\u0061';
System.out.println(c1);
System.out.println((int)c1);//强制转换int要用括号括起来
System.out.println(c2);
System.out.println((int)c2);
System.out.println(c3); //可以用\u0000,\uFFFF表示
//布尔值扩展(一般用来做些判断)
boolean flag=true;
if(flag){
System.out.println("你是对的");
}
}
}
数据类型转换
-
由于Java是强类型语言,在进行有些运算的同时,需要进行类型转化
-
由低到高:byte-short-char-int-long-float-double
-
强制类型转换:(类型)变量名
-
强制转换 由高到低
-
自动转换 由低到高
* 注意事项:
1.不能对布尔值进行转换
2.不能把对象类型转换成不相干的类型
3.将高容量数据类型转换为低容量数据类型,进行强制转换
4.转换的时候可能出现内存溢出,或者精度问题
public class Demo2 {
public static void main(String[] args) {
int a=10;
byte b=(byte)a;//int转换为byte类型(高到低)强制转换
System.out.println(a);
System.out.println(b);
System.out.println("=============");
int c=10;
double d=c;//int转换为double类型(低到高)自动转换
System.out.println(d);
System.out.println("============");
char e='A';
int f=e+1;
System.out.println(e);//字符型
System.out.println(f);//int型
System.out.println((char)f);
System.out.println("=============");//以上第4点
System.out.println((int)23.7);//出现精度问题,=23
System.out.println((int)-23.7f);//=-23
System.out.println("=============");
//计算大的数时,注意数据溢出, 前面两个Int默认为整型结果也是整型,从而最终结果并不是正确的值
// 方法:进行数据转换,修改其中一个为更大数据容量
int money1=10_0000_0000;
int years1=15;
int total1=money1*years1;//=2115098112(结果错误)
System.out.println(total1);
int money2=10_0000_0000;
int years2=15;
long total2=money2*(long)years2;//=150_0000_0000(结果正确)
System.out.println(total2);
}
}
转义字符
\t 制表符
\n 换行符
\b 退格符
\r 回车符
\\ 输出\
\' 输出'
System.out.println("Hello\tword");//横向跳格(跳到下一制表的位置)
System.out.println("Hello\nword");//换行
System.out.println("Hello\bword");//退格
System.out.println("Hello\rword");//回车
System.out.println("Hello\\word");//反斜杠字符\
System.out.println("Hello\'word");//单引号字符‘
age-20221006152539354.png)]