数据类型扩展及面试

数据类型扩展及面试

public class Demo{
   public static void main(String[] args){
        int i=10;
        int i2=010;  //八进制0 0~7
        int i3=0x10; //十六进制0x 0~9 A~F 
        System.out.println(i);  //10
        System.out.println(i2); //8
        System.out.println(i3); //16
        //===========================================
       //float   有限  离散  舍入误差  接近但不等于
       //double  
       //最好完全使用浮点数进行比较 存在问题 少用浮点数比较
       //浮点数扩展? 银行业务怎么表示?钱
       //BigDecimal 数学工具类
       //============================================
       //字符扩展
       char c1='a';
       char c2='中';
        System.out.println(c1);
        System.out.println((int)c1); //强制转换 97
        System.out.println(c2);
        System.out.println((int)c2); //强制转换 65536
        float f=0.1f; //0.1
       double d=1.0/10; //0.1
       float d1=121213312123123f;
       float d2=d1+1;
       System.out.println(f==d); //flase;
       System.out.println(d1==d2); //true;
       //所有的字符本质还是数字
       //编码 Unicode 表:(97=a 65=A) 2个字节 excel 2^16=65536
       // U0000 ~ UFFFF 
       char c3='\u0061';
        System.out.println(c3); //a
       //转义字符
       // \t  制表符
       // \n   换行
       String sa=new String("hello word!");
       String sb=new String("hello word!");
       System.out.println(sa==sb); //flase 从内存将,比的是地址!
       //布尔值扩展
       boolean flag=true;
       if(flag==true){}  //新手
       if(flag){}    //老手
       //代码要精简已读
       //JDK7 新特性,数字之间可以用下划线分割
       int money=10_0000_0000;
       int years=20;
       int total=money*years; //-147489283,计算的时候溢出了
       long tota2=money*years; //-147489283 默认是int,转换之前已经存在问题了?
       long tota3=years*((long)money); //20000000000 先把一个数转换为Long
       long tota4=100_0000_0000L; //代码的规范型,十分重要('l'容易看成'1')!!!
       //JDK7的新特性,表达式结果可以是字符串!!!
       String name="卡吉尔";
       switch(name){
           case "卡吉尔":
             System.out.println("卡吉尔");break;
           case "卡萨丁":
             System.out.println("卡萨丁");break;
           case "卡吉的":
             System.out.println("卡吉的");break;
           default:
             System.out.println("吉萨大"); //default 最后可以不用break;
          
       }
   }
 }

注意点:

  1. 不能对布尔值进行转化
  2. 不能把对象类型转化为不相关的类型
  3. 在把高容量转化到低容量的时候,强制转换 强制转换(高—>低:如double->float)自动转换 (低—>高:如 char->int)
  4. 转换的时候可能存在内容溢出,或者精度问题!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值