Day05-Java
Java基础
数据类型扩展
public class Demo03 {
public static void main(String[] args) {
//整数拓展:进制 二进制0b 十进制 八进制0 十六进制0x
int i=10;
int j=010;//八进制
int k=0x10;//十六进制
System.out.println(i);
System.out.println(j);
System.out.println(k);
System.out.println("==========================");
//浮点数拓展 银行业务怎么表示钱
//BigDecimal 数学工具类
//flaot 有限 离散 舍入误差 接近但不等于
//double
//最好完全避免使用浮点数进行比较
float f=0.1f;//0.1
double d=1.0/10;//0.1
System.out.println(f==d);//false
float f1=1111111111111111111111111f;
float f2=f1+1;
System.out.println(f1==f2);//ture
System.out.println("==========================");
//字符拓展
char c1='a';
char c2='中';
System.out.println(c1);
System.out.println((int)c1);
System.out.println(c2);
System.out.println((int)c2);
//所有的字符本质还是数字
//编码 Unicode表 2字节 0-65536
//u0000-uFFFF
//Excel 2^16=65538
char c3='\u0061';
System.out.println(c3);//a
System.out.println("==========================");
//转义字符
//\t 制表符
//\n 换行
// \\ 输出一个反斜杠本身
//\r 回车(回到本行开头)
//\' 输出单引号
//\" 输出双引号
//\b 退格(删掉前一个字符)
System.out.println("Hello\tWorld");
System.out.println("==========================");
//面向对象 从内存分析
String sa="Hello World";
String sb="Hello World";
System.out.println(sa==sb);
String sc=new String("Hello World");
String sd=new String("Hello World");
System.out.println(sa==sd);
}
}
类型转换
-
由于Java是强类型语言,所以要进行有些运算的时候,需要用到类型转换(小数的优先级大于整数)
-
运算中,不同类型的数据先转换为同一类型,然后再运算
public class Demo04 { public static void main(String[] args) { int i=128; byte b=(byte)i;//内存溢出 double d=i; //强制转换 (类型)变量名 高--低 //自动转换 低--高 System.out.println(i); System.out.println(b); /**notice 1.不能对布尔值进行转换 2.不能把对象类型专为不相干的类型 3.在把高容量转为低容量的时候,强制转换 4.转换的时候可能存在内存溢出,或者精度问题 */ System.out.println("========================"); System.out.println((int)23.7);//23 System.out.println((int)-23.7f);//-23 System.out.println("========================"); char c='a'; int e =c+1; System.out.println(e); System.out.println((char)e); } }public class Demo05 { public static void main(String[] args) { int money = 10_0000_0000; int years = 20; int total1 = (money*years);//-1474836480,计算的时候已经溢出了 long total2 = (money*years);//默认是int,转换之前已经有问题了 long total3 = (money*(long)years);//先把一个数转换为Long System.out.println(total1); System.out.println(total2); System.out.println(total3); } }
浙公网安备 33010602011771号