Day9
数据类型扩展
整数拓展:
二进制0b
十进制
八进制0
十六进制0x
实例
public class text1 {
public static void main(String[] args) {
int i=10;
int i1=010; //八进制前面加0
int i2=0x10; //十六进制前面加0x
System.out.println(i);
System.out.println(i1);
System.out.println(i2);
System.out.println("一定要加油");
}
}
浮点数拓展
float
double
最好不使用浮点数进行比较
最好不使用浮点数进行比较
最好不使用浮点数进行比较
float f=0.1f;
double d=1.0/10;
System.out.println(f\==d);
输出:
float d1=2168465328658f;
float d2=d1+1;
System.out.println(d1==d2);
字符拓展
char c1 = 'a';
char c2 = '中';
System.out.println(c1);
System.out.println((int)c1); //强制转换
System.out.println(c2);
System.out.println((int)c2); //强制转换
所有的字符本质是数字
转义字符
\t 制表符
\n 换行
System.out.println(“hello\tworld”);
String sa=new String("hello world");
String sb=new String("hello world");
System.out.println(sa==sb);
String sc="hello world";
String sd="hello world";
System.out.println(sc\==sd);
布尔值扩展
boolean flag=true;
if(flag==true){} //新手
if(flag){} //老手
类型转换
由于Java是强类型语言,所以要进行有些运算的时候,需要用到类型转换
低--------------------->高
byte,short,char -> int -> long -> float -> double
运算中,不同类型的数据线转化为同一类型,然后进行运算
强制转换 (类型)变量名 高–低
public class text1 {
public static void main(String[] args) {
int i=128;
byte b=(byte)i;
System.out.println(i);
System.out.println(b);
}
}
自动转换 低–高
public class text1 {
public static void main(String[] args) {
int i=128;
double b=i;
System.out.println(i);
System.out.println(b);
}
}
1. 不能对布尔值进行转换
2. 不能把对象类型转换为不相干的类型
3. 在把高容量转换到低容量的嘶吼,强制转换
4. 转换的时候可能存在内存溢出,或者精度问题
System.out.println((int)23.7);
System.out.println((int)-45.89f);
char c='a';
int d=c+1;
System.out.println(d);
System.out.println((char)d);
//操作比较大的数的时候,注意溢出问题
//JDK7新特征,数字之间可以用下划线分割
int money=10_0000_0000;
System.out.println(money);
输出结果还是不变
int money=10_0000_0000;
int years=20;
int total=money*years; //计算的时候溢出了
System.out.println(total);
long total3=money*((long)years); //先把一个数转换为long
System.out.println(total3);