• 040_字符串连接符 041_条件运算符目 042_运算符优先级_逻辑与或优先问题 043_自动类型转化 044_强制类型转换 045_基本类型常见错误_溢出_L问题


    040_字符串连接符

    package test_package;

    /**
    * 字符串运算符
    * @author
    *
    */
    public class TestOperator05 {
    public static void main(String[] args) {
    String a = "3";
    int b = 4;
    int c = 5;
    char d = 'a';
    System.out.println(a+b+c);//因为3是字符串,后面都是字符串连接
    System.out.println(b+c+a);//9+a,a是字符串
    System.out.println(d+4); //97+4=101,d在ASCLL码中是97
    }
    }

    041_条件运算符目

    /**
    * 条件运算符(三元运算符)
    * @author
    *
    */
    public class TestOperator06 {
    public static void main(String[] args) {
    int score = 80;
    int x = -100;
    String type = score<60?"不及格":"及格";
    System.out.println(type);

    if(score<60){
    System.out.println("不及格");
    }else{
    System.out.println("及格");
    }

    System.out.println(x > 0 ? 1 : (x == 0 ? 0 : -1));

    }
    }

     心得:三元运算符可以用if条件分支语句替代

     042_运算符优先级_逻辑与或优先问题

     心得:

    1、尽量使用小括号来区分优先级。

    2、逻辑运算符优先级:非>与>或

    非的运算优先级在逻辑运算符内最高,最低的是或

    例:a||b&&c  的正确顺序是 a||(b&&c)

    043_自动类型转化

    package test_package;

    /**
    * 测试自动类型转化
    * @author
    *
    */
    public class TestTypeConvert {
    public static void main(String[] args) {
    int a = 324;
    long b = a;
    double d = b;
    // a = b; //不合法Type mismatch: cannot convert from long to int
    // long e = 3.23F;
    float f = 234324L;
    short y=12345;//6位short类型就溢出了
    //特例
    byte b2 = 123;

    }
    }

    心得:

    1、容量小的数据类型可以向容量大的数据类型的变量自动转化。

    044_强制类型转换

    在需要强制转化的数据类型前加小括号(),在括号内填入需要转为的目标数据类型。

    心得:

    强行转化的过程中要注意精度丢失的问题。 

     

    045_基本类型常见错误_溢出_L问题

    /**
    * 测试类型转换常见问题
    * @author
    *
    */
    public class TestTypeConvertError {
    public static void main(String[] args) {
    int money = 1000000000; //10亿
    int years = 20;
    //返回的total是负数,超过了int的范围
    int total = money*years;
    System.out.println("total="+total);
    //返回的total仍然是负数。默认是int,因此结果会转成int值,再转成long。但是已经发生//了数据丢失
    long total1 = money*years;
    System.out.println("total1="+total1);


    //返回的total2正确:先将一个因子变成long,整个表达式发生提升。全部用long来计算。
    long total2 = money*((long)years);
    System.out.println("total2="+total2);

    long total3 = 34L*3223*years*223423;//将第一个数数转位long,这样后续的计算就都是long了

    System.out.println(total3);
    //命名问题
    int l = 2; //分不清是L还是1,
    long a = 23451l;//建议使用大写L
    System.out.println(l+1);

    }
    }

    不积跬步,无以至千里;不积小流,无以成江海。
  • 相关阅读:
    第二十四节:ESModule简介、按需导出导入、默认导出导入、动态加载、内部原理等
    第二十三节:JS模块化历史、CommonJs详解、AMD和CMD规范知悉
    第二十六节:cnpm的使用和yarn的用法详解
    第二十五节:npm介绍、package.json详解、npm install原理、常用指令、npx工具、发布自己的包
    CSS系列总结【更新中】
    第二十二节:进程/线程、node事件机制、微任务/宏任务、相关面试题剖析
    ES6中新增了Array.isArray
    C# WebException 获取http错误码和错误消息
    DataSet序列化成JSON格式字符串
    linux shell 中小数进行比较
  • 原文地址:https://www.cnblogs.com/CCTVCHCH/p/12347809.html
Copyright © 2020-2023  润新知