day 06

数据类型扩展以及面试题讲解:

 public class Demo {
     public static void main(String[] args) {
         //整数拓展:进制   二进制0b 十进制 八进制0 十六进制ox
         int i1=10;
         int i2=010;//八进制0
         int i3=0x010;//十六进制0x     0~9 A~F
         System.out.println(i1);
         System.out.println(i2);
         System.out.println(i3);
         System.out.println("=================================================");
         //==================================================================
         //浮点数拓展:银行业务怎么表示?钱
         //==================================================================
         //float;
         //doudle
 
         float f=0.1f;//0.1
         double d=1.0/10;//0.1
         System.out.println(f==d);
         System.out.println(f);
         System.out.println(d);
         float d1=1243564656f;
         float d2=d1+1;
         System.out.println(d1==d2);
         System.out.println("=======================================================");
         char c1='a';
         char c2='A';
         System.out.println(c1);
         System.out.println(c2);
         System.out.println((int)c2);//强制换行
         System.out.println((int)c1);//强制换行
         //字符拓展;所有字符本质还是数字
         //编码 Unicode 表:(97=a 65=A)   2个字节 0~65536 Excel=只有65536个表格
 
         // U0000 UFFFF
         char c3='\u0061';//Unicode 的编码
         System.out.println(c3);//表示a
         //转义字符
         // \t 制表符
         // \n 换行
         System.out.println("Hello\tWorld!");
         System.out.println("Hello\nWorld!");
         System.out.println("=======================================================");
         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){}//老手 flag会默认==true 代码要精简易读
 
    }
 }

数据类型转换:

 public class Demo2 {
     public static void main(String[] args) {
         int i=128;
         byte b=(byte)i;//因为byte的最大值只能是127,所以128太大导致内存溢出才有运行时-128
         //强制转换   (类型)变量名   高--->低
         int i1=128;
         double b1=i1;
         //自动转换   低--->高
         System.out.println(i);
         System.out.println(b);
         System.out.println(i1);
         System.out.println(b1);
         System.out.println("=========================================================");
         System.out.println((int) 123.2);
         System.out.println((int)-123.90F);
         /*注意点:
         1.不能对布尔值进行转换
         2.不能把对象类型转换为不相干的类型
         3.在把高容量转换到低容量的时候,强制转换
         4.转换的时候可能会存在内存溢出,或者精度问题
          */
         System.out.println("===========================================================================");
         char c='a';
         int d=c+2;
         System.out.println((char) d);
         //操作比较大的数的时候,注意溢出问题
         int money=10_0000_0000;
         //JDK新特性,数字之间可以用下划线分割,不影响输出
         int years=20;
         int total=money*years;
         long total2=money*years;//默认是int,转换之前已经存在问题
         long total3=money*((long)years);//先把一个数转换为long
         System.out.println(total2);
         System.out.println(total3);
         System.out.println(total);//-1474836480,计算时溢出了
         //以后用L时尽量用大写L,l像1不规范
    }
 }
 



posted @ 2020-10-08 16:30  斯封#阳银  阅读(152)  评论(0)    收藏  举报