Day_02 【数据类型转换、运算符、方法入门】

今日内容:

数据类型的转换

运算符:

(1)算术运算符   (2)赋值运算符   (3)比较运算符   (4)逻辑运算符   (5)三元运算符

方法入门

 


一:数据类型

基本数据类型(4类8种)

整型                字节            取值范围(表数范围)
            byte                1                 -128 ~ 127            -2^7 ~ 2^7-1
            short               2                 -2^15 ~ 2^15-1    
            int                   4                 -2^31 ~ 2^31-1
            long                8                 -2^63 ~ 2^63-1
        浮点型
            float                4                  大于long类型的数据
            double            8                
        布尔型
            boolean          1                  true  和  false
        字符型
            char                2                  0 ~ 65535
        
    引用数据类型(以后学习)

二:数据类型的转换
     温馨提示:这里的转换,指的是基本数据类型的转换

分类:

自动类型转换(隐式转换):不需要进行特殊处理,能够直接转换,类型的取值范围从小到大。

        转换的小公式: byte、short 、char  --> int --> long -->  float --> double

        注意:

               (1)boolean类型的不能喝其他7种之间进行转换。

               (2)byte、short不能直接转换成char,反之亦然。

强制类型转换(显示转换):需要进行特殊处理,不能直接转换,类型的取值范围从大到小

        格式:

                  小的数据类型     变量名   =  (小的数据类型)大类型的数据;

                  比如: int i = (int) 120L;

上午的重点
    (1)基本数据类型的转换
    (2)ASCII码表中,三个对应字符的十进制值

          ' 0'    -> 48            'A'   -> 65         'a'  -> 97

 二:运算符

算术运算符:

+   -   *   /    %   ++    --

/ :
            (1)得到相除的商,整数相除只能得到整数,如果要得到小数,必须有小数参与运算
            (2)负数参与运算,如果除数或者被除数其中有一个为负,得到的结果也为负,否则都是正
           %:
            (1)得到的相除的余数
            (2)负数参与运算,得到的结果是正还是负,只和被除数是正还是负有关,和除数无关的
            
           ++:自增1
            
           --:自减1
        
        面试题
            ++在前和在后,使用的时候的区别?
            (1)单独使用,没有区别
                 ++num;
                 num++;
            (2)混合使用
                ++在前,变量自增1,然后将自增的结果再使用
                ++在后,先使用变量原来的值,然后再自增1

  

课堂练习:
            1.
            12345 / 100 等于多少?              123
            12345 % 100 等于多少?              45
            12345 / 100 % 100 等于多少?     23
            
            2.
            System.out.println("abc"+ "123")    abc123
            System.out.println(123 + "123")        123123
            System.out.println(123 + "123"+ 123) 123123123
            System.out.println(123 + 123 + "123") 246123
            
            3.
            int x = 'a'+ '0';    
            System.out.println(x);
            int y = 'a'+ 'A';       
            System.out.println(y);

            4.
            /*
                x = 12
                y = 10
                z = 12
            */
            int x = 10;
            int y = x++;
            int z = ++x;
            System.out.println(x);
            System.out.println(y);
            System.out.println(z);
            
            5.
            /*
                x = 6
                y = 4 + 6 + 60 = 70
            */
            int x = 4;
            int y = (x++)+(++x)+(x*10);
            System.out.println(x);
            System.out.println(y);

赋值运算符:

        基本的赋值运算符:=
            将运算符右边的值,赋给左边,让左边的变量来存储右边的值
        复合的赋值运算符:+= -= *= /= %=
            将运算符左边和右边进行运算,得到的结果赋值给左边
            
            注:
                复合的赋值运算符隐含了强制类型转换
                
                short s = 5;
                s += 1;// s = (short)(s + 1);
                System.out.println(s);// 6
            


    比较运算符


        == != < <= > >=
        
        得到的结果都是boolean类型的,不是true就是false
        


    逻辑运算符


        &&:遇false则false,只有两边都为true时结果才为true
        ||:遇true则true,只有两边都为false时结果才为false
        !:非true则false,非false则true
        &:遇false则false,只有两边都为true时结果才为true
        |:遇true则true,只有两边都为false时结果才为false
        ^(异或):只有两边不同时结果才为true,否则都为false
        
        
        面试题:
            &和&&的区别?
                &&有短路效果,当运算符左边已经能够确定最终的结果,右边不参与运算
           


    三元运算符


        格式:    
            数据类型 变量名 = 布尔表达式?表达式1:表达式2;
            
        执行流程:
            先执行布尔表达式,看结果是true还是false
            如果结果是true,执行表达1
            如果结果是false,执行表达2
            
        注:布尔表达式的结果一定是true或者false,不能是其他结果
        
        // 三元运算符
        int i = 10;
        int j = 20;
        int k = 15;
        
        // 先求前两者之间的较大值,而且要记录较大值
        int temp = i > j ? i : j;
        // 再将较大值和第三个数进行比较
        int result = temp > k ? temp : k;
        System.out.println(i+"、"+j+"和"+k+"三者之间的最大值为:"+result);


方法入门


    什么是方法


        将特定功能的代码抽取出来,放到一个大括号中{},给它取上名字
        


    方法定义的格式


        public static void 方法名称(){
            方法体;
        }


    方法的调用格式


        方法名称();
        


jshell工具的使用( JDK 9.0或以上)


    开启工具
        在命令窗口输入jshell,然后回车开启
    使用工具
    
    退出工具
        /exit
        

编译器的两点优化


    1、byte/short/char会有一个默认的强制类型转换


        当赋值运算符右边的值没有超出左边的类型的取值范围,会有一个默认的强制类型转换
        当赋值运算符右边的值超出了左边的类型的取值范围,直接报错
        

目录

今日内容:

数据类型的转换

运算符:

(1)算术运算符   (2)赋值运算符   (3)比较运算符   (4)逻辑运算符   (5)三元运算符

方法入门

一:数据类型

基本数据类型(4类8种)

自动类型转换(隐式转换):不需要进行特殊处理,能够直接转换,类型的取值范围从小到大。

强制类型转换(显示转换):需要进行特殊处理,不能直接转换,类型的取值范围从大到小

 二:运算符

算术运算符:

赋值运算符:

    比较运算符

    逻辑运算符

    三元运算符

方法入门

    什么是方法

    方法定义的格式

    方法的调用格式

jshell工具的使用( JDK 9.0或以上)

编译器的两点优化

    1、byte/short/char会有一个默认的强制类型转换

    2、常量优化机制



    2、常量优化机制


        编译器在编译时期,如果看到两个常量参与运算,会将常量进行一些优化
        比如:
        short result2 = 20 + 30;
        就相当于
        short result2 = 50;

猜你喜欢

转载自blog.csdn.net/l531003231/article/details/81259963
今日推荐