zoukankan      html  css  js  c++  java
  • 03_java基础学习_基础语法(上)02_day03总结

    =============================================================================
    =============================================================================

    涉及到的知识点有:
    0:基本概念概述
      1:运算
      2:运算符
      3:操作数
      4:表达式
    1:运算符(掌握)
      (1)算术运算符(掌握)
      (2)赋值运算符(掌握)
      (3)比较(关系)运算符(掌握)
      (4)逻辑运算符(掌握)
      (5)位运算符(了解)
      (6)三元(三目/条件)运算符(掌握)
    2:键盘录入(掌握)
    3:流程控制语句
    4:if语句(掌握)
      (1)三种格式:
      (2)注意事项:
      (3)案例:
      (4)三元运算符和if语句第二种格式的关系:

    =============================================================================
    =============================================================================
    0:基本概念概述
      1:运算
        对常量和变量进行操作的过程称为运算。
      2:运算符
        对常量和变量进行操作的符号称为运算符。
      3:操作数
        参与运算的数据称为操作数。
      4:表达式
        用运算符把常量或者变量连接起来符合java语法的式子就可以称为表达式。
        不同运算符连接的式子体现的是不同类型的表达式。

      举例:
        int a = 3 + 4;

        这是做了一个加法运算。
        +就是运算符,且是算术运算符,我们还有其他很多的运算符。
        3,4就是参与运算的操作数据。
        3 + 4整体其实就是一个算数表达式。
    -----------------------------------------------------------------------------
    1:运算符(掌握)
      (1)算术运算符(掌握)
        A:+,  -,  *,  /,  %,  ++,  --
        B:+的用法:
          a:加法;
          b:正号;
          c:字符串连接(拼接)符。 例如:System.out.println("x="+x+",y="+y);
        如下如图所示00:

        
        C:/和%的区别:
          数据做除法操作的时候,/取得是商,%取得是余数。
        如下图所示01:

        
        D:++和--的用法:
          a:他们的作用是:对变量进行自增1或者自减1。
          b:使用:
            **单独使用时:
              放在操作数据的前面和后面效果是一样。
                即:a++或者++a效果一样。
            **参与操作使用时:
              放在操作数的前面时:先自增1或者自减1,再参与操作。
                int a = 10;
                int b = ++a;   // a = 11; b = 11;
              放在操作数的后面时:先参与操作,再自增1或者自减1。
                int a = 10;
                int b = a++;   // b = 10; a = 11;
              如下图所示02/03:

              

              
    ---------------------------------------
      (2)赋值运算符(掌握)
        A: 基本的赋值运算符:=
          把=右边的数据赋值给左边。
         扩展的赋值运算符:+=,   -=,   *=,   /=,   %=,   等等。
          += 把左边和右边数据做加法后,然后将结果赋值给左边。
        B:=叫做赋值运算符,也是最基本的赋值运算符。
          int x = 10;    //把10赋值给int类型的变量x。
        C:扩展的赋值运算符的特点:
          扩展的赋值运算符隐含了自动强制转换。
          即:s += 1;
            不是等价于 s = s + 1;
            而是等价于 s = (s的数据类型)(s + 1);

          面试题:
            short s = 1;  // 编译有问题,报错,可能损失精度。
            s = s + 1;     // short类型参与运算的时候默认转换为int类型。而把int类型赋值给short类型会有问题。

            short s = 1; // 没有问题。
            s += 1;        // 因为+=隐含了自动强制转换。
            请问上面的代码哪个有问题?
    ---------------------------------------
      (3)比较(关系)运算符(掌握)
        A:==,  !=,  >,  >=,  <,  <=,  instanceof(后面讲)
        B:无论运算符两端是简单还是复杂最终结果是boolean类型。
        C:千万不要把==写成了=了。
        D:>=,  <=只要有一个满足即可,即:不管是大于,还是等于;或者不管是小于,还是等于。
        如下图所示04:

        
    ---------------------------------------
      (4)逻辑运算符(掌握)
        A: &,    |,    ^,    !,    &&,   ||
        如下图所示05:

        
        B:逻辑运算符用于连接boolean类型的表达式,在java中不可以写成3<x<6,而是应该写成x>3&x<6。
          表达式:用运算符把常量或者变量连接起来符合java语法的式子就可以称为表达式。
            例如:
              算术表达式:a + b
              比较表达式:a == b
        C:结论:
          逻辑与&:有false则false。

          逻辑或|:有true则true。

          逻辑异或^:相同则false,不同则true。
            举例情侣关系:男男为false,女女为false,男女为true,女男为true。

          逻辑非!:非true则false,非false则true。
            偶数个叹号!不改变布尔类型,奇数个叹号!改变类型。

          逻辑双与&&:最终的结果和&是一样的,只不过有短路效果。只要左边是false,右边就不执行。

          逻辑双或||:最终的结果和|是一样的,只不过有短路效果。只要左边是true,右边就不执行。

            所以双与(双或)的效率更高!!!

          小结:在开发中常用的逻辑运算符为:&&, ||, ! 。
    ---------------------------------------
      (5)位运算符(了解)
        因为我们一般是做十进制的运算的,而位运算是做的二进制的运算,所以我们一般不需要掌握,但是需要听懂!
        因为在底层源码中看大量看到位运算,因为我们的所有的操作在计算机底层都会变成为位运算。可以提高程序的效率。
        如下如所示06:

        
        对于计算机来说,要做位运算,首先要把数据转换为二进制。而且还得是补码。我们眼睛看的屏幕上显示的原码!
        如下图所示07:

        
        A:^异或位运算符的特殊用法:
          一个数据针对另一个数据位异或两次,该数据本身不变。应用:可以对数据做一个简单的加密
          如下图所示08:

          
        B:面试题:
          以后讲课过程中,若没有明确说明数据类型的话,一般默认int类型。
          a:请实现两个int变量的交换。int a = 10; int b = 20;
            法一:采用第三方变量(开发中用)。
              int c = a;
              a = b;
              b = c;
            法二:用位异或运算符(面试中用)。简记为:等号左边a,b,a 等号右边a^b
              a = a ^ b;
              b = a ^ b;   //a ^ b ^ b = a = b
              a = a ^ b;   //a ^ b ^ a = b = a
            法三:用变量相加的方法。
              a = a + b;
              b = a - b;   //a + b - b = a = b
              a = a - b;   //a + b - a = b = a
            法四:一句话搞定。
              b = (a + b) - (a = b); //b = a + b - b = a
          b:请用最有效率的方式计算出2乘以8的结果
            2<<3
          如下图所示09/10:

          

          
    ---------------------------------------
      (6)三元(三目/条件)运算符(掌握)
        单目运算符:~3
        双目运算符:3 + 4
        A:三目运算符格式:
          比较表达式? 表达式1 : 表达式2;
        B:执行流程:
          首先计算比较表达式的值,看是true还是false。
          如果是true,表达式1就是结果。
          如果是false,表达式2就是结果。
        C:案例:
          a:获取两个数据中的最大值。
            int max = ((x > y)? x : y);
          b:获取三个数据中的最大值。
            法一: int tmpe = ((a > b)? a : b);
                int max = ((tmpe > c)? tmpe : c);
            法二: int max = (a > b)? ((a > c)? a : c) : ((b > c)? b : c);  // 三目运算符的嵌套使用。晕啊!!!不建议这么写。
          c:比较两个数据是否相等。
            法一: boolean flag = ((a == b)? true : flase);   // 这样写太啰嗦了。
            法二: boolean flag = (a == b);
          如下图所示11:

          

    -----------------------------------------------------------------------------
    2:键盘录入(掌握)
      (1)实际开发中,数据是变化的,为了提高程序的灵活性,我们加入键盘录入数据。
      (2)如何实现键盘录入数据呢?目前就记住:
        A:导包:
          import java.util.Scanner;
          位置:在class定义的上边。
        B:创建键盘录入对象:
          Scanner sc = new Scanner(System.in);
        C:通过对象获取数据:
          int x = sc.nextInt();
      (3)把三元运算符的案例加入键盘录入改进。
    -----------------------------------------------------------------------------
    3:流程控制语句
      (1)顺序结构:从上往下,依次执行。
      (2)选择结构:按照不同的选择,执行不同的代码。
      (3)循环结构:做一些重复的代码。

      选择结构也称为分支结构。Java语言提供了两种选择结构语句。
        1)if语句。
        2)switch语句。
    -----------------------------------------------------------------------------
    4:if语句(掌握)
      (1)三种格式:
        A:格式1:
        if(比较/关系表达式) {
          语句体;
        }
        执行流程:
          判断比较表达式的值,看是true还是false。
          如果是true,就执行语句体。
          如果是false,就不执行语句体。
    ---------------------------------------
      B:格式2
        if(比较表达式) {
          语句体1;
        }else {
          语句体2;
        }
        执行流程:
          判断比较表达式的值,看是true还是false。
          如果是true,就执行语句体1。
          如果是false,就执行语句体2。

          if语句的第二种格式与三元运算符的区别如下图所示12:

          
    ---------------------------------------
      C:格式3
        if (比较表达式1) {
          语句体1;
        } else if (比较表达式2) {
          语句体2;
        } else if (比较表达式3) {
          语句体3;
        }...
          ...
        } else if (比较表达式n) {
          语句体n;
        } else {
          语句体n+1;
        }
        执行流程:
          判断比较表达式1的值,看是true还是false。
          如果是true,就执行语句体1。
          如果是false,就继续判断比较表达式2的值,看是true还是false。
          如果是true,就执行语句体2。
          如果是false,就继续判断比较表达式3的值,看是true还是false。
          ...
          ...
          如果都不满足,就执行语句体n+1。
    ---------------------------------------
      (2)注意事项:
        A:比较表达式无论是简单还是复杂,结果必须是boolean类型。
        B:if语句控制的语句体如果是一条语句,是可以省略大括号的;如果是多条语句,则不能省略。
          建议:永远不要省略。
        C:一般来说:有左大括号就没有分号,有分号就没有左大括号。
        如下图所示13:

        
        D:else后面如果没有if,是不会出现比较表达式的。
        E:三种格式的if语句其实都是一个语句,只要有一个语句体执行,其他的语句体就不再执行。
    ---------------------------------------
      (3)案例:
        A:比较两个数是否相等。
        B:获取两个数中的最大值。
        C:获取三个数中的最大值(if语句的嵌套)。
        D:根据成绩输出对应的等级。
        E:根据月份,输出对应的季节。
        F:根据x计算对应y的值并输出。
        如下图所示14:

        
      (4)三元运算符和if语句第二种格式的关系:
        所有的三元运算符能够实现的,if语句的第二种格式都能实现。
        反之不成立。

        如果if语句第二种格式控制的语句体是输出语句,就不可以。
        因为三元运算符是一个运算符必须要求有一个结果返回。返回的结果不能是一个输出语句。
    =============================================================================

  • 相关阅读:
    input输入框的各种样式
    Spring JdbcTemplate方法详解
    TF/IDF计算方法
    分布式日志收集系统--Chukwa
    分布式日志系统
    Iframe知识点
    拖拽事件
    面向对象知识点
    JS使用合并数组
    块元素block,内联元素inline; inline-block;
  • 原文地址:https://www.cnblogs.com/chenmingjun/p/8419927.html
Copyright © 2011-2022 走看看