• day_03


    • ​ 位运算符

      位运算符 含义 示例
      << 左移 5<<2 = 20----》 5*2^2=20
      >> 右移 5>>1=2
      >>> 无符号右移 对于正数来说,空出来的最高位拿0补位,负数拿1补 3>>>1=1
      & 与位运算 只要出现一个位为0,结果位就位0,否则为1 6&3=2
      | 或运算 只要有一个为1,运算结果就为1 6|3=7
      ^ 异或运算 如果两个数值一样,运算结果为0, 否则为1 5^3=6
      ~ 取反运算 ~6 ------> 0110 = -7

      备注:位运算计算机底层采用的对整数进行二进制运算。

      ​ 【没有无符号左移位运算符】

      ​ 二进制在计算机中都是补码形式呈现L:<()

    • ​ 三目运算符

      ? :

    格式:

    ​ 布尔类型表达式 ?真的结果:假的结果值

    ​ 数据类型 变量名 = 布尔类型表达式 ?真的结果:假的结果值

    计算方式:

    ​ 如果布尔类型表达式结果是true,三木运算符运算的结果为紧邻?后面的值

    ​ 如果布尔类型表达式结果是false,三木运算符运算的结果为紧邻:后面的值

    备注:当三目运算符运算参与有其他的运算(赋值运算),要求三目运算符中的?和后面的值的【数据类型保持一致】。

    流程控制: 顺序 、选择、循环

    顺序结构

    ​ 程序是从上往下进行加载,按照代码的编写顺序进行执行。

    选择结构(分支结构)

    if else 语句

     1.          ​        if  单支情况 
    

    ​ if语句的格式:

    ​ if(布尔类型表达式/布尔类型值){

    ​ // 语句体。。。。

    ​ }

    ​ if语句(单支)的执行流程:

    ​ 首先判断布尔类型表达式,看他的结果是false还是true。

    ​ 如果是true就执行{}里面的方法体内容。

    ​ 如果是false就不执行{}立案的方法体内容,程序往后加载。

    1. if else 多支情形

    ​ 格式:

    ​ if(布尔类型表达式){

    ​ // 语句体内容1:

    ​ } else{

    ​ // 语句体内容2:

    ​ }

    ​ if else 多支的执行流程

    ​ 首先判断布尔类型表达式,看他的结果是false还是true。

    ​ 如果是true就执行语句体内容1

    ​ 如果是false就执行语句体内容2

    1. if。。。。else if。。。else语句

      ​ 格式:

      ​ if(布尔类型表达式1){

      ​ //方法体内容1.。。。。

      ​ }else if(布尔类型表达式2){

      ​ //方法体内容2.。。。。

      ​ }else if(布尔类型表达式n){

      ​ //方法体内容n。。。。

      ​ }

      执行流程:

      ​ 首先判断布尔类型表达式1,看他的结果是false还是true。

      ​ 如果是true 就执行语句体内容1

      ​ 如果是false 就执行布尔类型表达式2,看他的结果是false还是true

      ​ 如果是true 就执行语句体内容2

      ​ 如果是false 就执行布尔类型表达式.。。。。。看起结果是true还是false

      ​ ...........

       							  如果以上所有的布尔类型表达式都为false,最后执行else()里面的方法体内容n+1
      
    2. if.....if.....else.......else语句 嵌套情形

      ​ 格式:

      ​ if(布尔类型表达式1){

      ​ //方法体内容1

      ​ ................

      ​ if(布尔类型表达式2){

      ​ // 方法体内容2

      ​ 。。。。。。。。。。。。。

      ​ }else{

      ​ //方法体内容3

      ​ .。。。。。。。。

      ​ }

      ​ }else{

      ​ //方法体内容4

      ​ .。。。。。。

      ​ }

      ​ 执行流程:

      ​ 首先判断布尔类型表达式1,看他的结果是false还是true。

      ​ 如果是true 就执行语句体内容1,在继续判断布尔类型表达式2,看其结果是true还是false。如果true,就执行方法体内容2

      ​ 如果false,就执行方法体内容3.。。。。。

      ​ 如果是false,就执行方法体内容4,之后加载后面的程序

    switch case 语句

    ​ 格式:

                  switch(表达式){
                          case 常量值1:
                              //  语句体内容1
                              break;
                          case 常量值2:
                              //  语句体内容1
                              break;
                              ...........
                         default:
                               //  语句体内容n
                               break;
                          }     
    

    执行流程:

    ​ 首先计算出表达式中的值

    ​ 其次,依次和case后面的常量值作比较,一旦有对应的 值,就会执行相应的语句体内容。

    ​ 在执行的过程中,遇到break就会结束 switch case语句

    ​ 最后,如果所有的case都和表达式的值不匹配,就会执行default中的语句体内容,然后switch case语句结束,

    注意:在switch语句中,表达式的数据类型,可以是byte/short/int/char/enmu(枚举)JDK1。7之后可以接收字符串类型

    case穿透性

    ​ 在switch语句中,如果case后面的break省略,将会出现穿透现象,不会判断case的情形值,直接向后加载运行,直到遇见break结束。

    循环结构

    三种基本循环: for 、 while 、do while

    ​ 循环结构组成部分:一般可以分成4部分

    1. 初始化语句 :在循环最初开始时,需要定义一个初始化的变量,而且只会定义一次。

    2. 条件判断 (结束条件):如果条件成立满足,进入循环,如果田间不满足,则退出循环

    3. 循环体内容:重复要做的事情内容,可能包含很多条语句(事情是有规律的)

    4. 迭代语句 (步进语句):每次循环结束之后需要执行步进语句(迭代语句),对初始化的变量做步进(迭代)。

    for循环语句结构

    ​ 格式:****

    for(1.初始化语句;2.条件判断表达式;4.迭代语句){
               // 3.循环体内容
    
    
    
    }
    

    执行流程:

    ​ 执行顺序:1----》2----》3-----》4-----》2-----》3----》4。。。。直到2不满足为止。

    ​ 1.负责循环变量的初始化

    ​ 2.负责判断是否满足循环条

    不满足退出循环

    ​ 3.负责执行具体的语句(逻辑功能)

    ​ 4.负责变量的迭代

    Scanner类 和Random类的使用

    ​ API(Application Programming Interface) 应用程序编程接口,javaAPI 就是程序员的一本字典。

    是JDK中提供给我们使用的类的说明文档,只需要查阅API搜索自己需要的类。

    Scanner类

    ​ 它是一个可以解析基本数据类型和字符串的文本扫描器。主要作用就是把外部的数据录入到系统中。

       Scanner sc = new Scanner(System.in);
       // 让系统能够从外部录入一个整数   nextInt()
       int num = sc.nextInt();
       // 备注:System.in 可以实现通过键盘往系统中录入一个数据。
       // 让系统能够实现从外部录入一个浮点数(小数)  nextDouble()
       double num02 = sc.nextDouble();
       // 让系统能够实现从外部录入一个字符串数据  next()
       String str = sc.next();
    

    While循环语句

    ​ 格式:

            // 1.初始化语句
           while(2.判断条件){
            // 3.循环体内容
            // 4.步进语句;
           }
    

    ​ 执行流程:

    ​ 执行顺序:1----》2-----》3-----》4-----》2------》3------》4------》2------》3-------》4------》.....2不满足为止

    ​ 1负责循环变量初始化

    ​ 2负责判断是否满足循环条件,不满足退出

    ​ 3负责执行具体语句,实现某个功能

    ​ 4迭代循环变量

    do-while循环

    ​ 格式:

        //1.初始化语句
        do{
            //3.循环体内容
            //4.迭代语句
        }while(2.判断条件);
            
    

    执行流程:

    ​ 执行顺序:1-----》3---->4----->2----->3------>4------>2----->3----->4----->........2不满足为止

    ​ 1.负责定义循环变量,并且进行初始化

    ​ 2.负责判断是否满足循环条件,不满足则跳出循环

    ​ 3.负责执行具体语句,实现某个功能

    ​ 4.迭代循环变量

    ​ 备注:无条件执行一次循环体内容,即使判断条件是不满足也依然循环一次,这样的循环时有风险的,不建议使用。

    循环语句的区别

    ​ for和while的区别:

    ​ 控制语句中所涉及到的循环变量,当for循环结束后,定义的循环变量不能再被访问到,而while循环结束后依然可以被访问到。如果不能继续使用循环变量,建议使用for循环,因为for循环结束后,循环变量就会从内存中消失,能够提高内存的使用效率。

    ​ 在已知循环次数的情况下,建议使用for循环,当循环次数不确定时使用while循环。

    跳出语句

    ​ break、continue两个语句

    break

    使用情形:终止switch语句或者循环语句

    备注:离开了使用场景对于break来说没有意义

    public static void main(String[] args){
        // 使用break语句
        // 跳出循环语句
        // 10以内的偶数和
        int sum = 0;
        for(int i = 0;i<=100;i++){
             // 跳出情形  i》 10
            if(i >10){
                break;
            }
            if(i % 2 == 0){
                sum += i;
            }
        }
        //跳出switch case语句
        //季节   四个季节
        String season = "春季";
        switch(season){
            case "春季":
                System.out.println("万物复苏的时候");
                break;
            case "夏季":
                System.out.println("烈日炎炎的时候");
                break;
            case "秋季":
                System.out.println("丰收的季节");
                break;   
            case "冬季":
                System.out.println("寒冷下雪的时候");
                break;    
            default:   
                 System.out.println("跳出三界外,不在五行中");
                break;  
        }
        
    }
    
    
    

    continue

    ​ 使用情形:结束本次循环,继续下一次循环

    public static void main(String[] args){
        // continue
        // 求一下100以内的偶数和   2+4+6+8+.......
        int sum = 0;
        for(int i = 1; i<=100; i++){
            //使用场景  奇数跳过去  不参数累加和
            if(i % 2 != 0){
                continue;
            }
            sun += i;
        }
        
    }
    

    扩展知识点

    ​ 1. 死循环

    ​ 概念:循环条件永远都是true,死循环是永不结束的循环。例如:while(true){}

    ​ 死循环一般要和跳出语句结合

    1. 循环嵌套

      ​ 概念:是指一个循环的循环体是另一个循环。比如说for循环内置了一个for循环。就是嵌套循环。

      ​ 循环的次数 = 外部循环的次数 * 内部循环的次数

      格式:
          for(1.初始化语句1; 2.判断语句1;4.迭代语句1){
              // 3.循环体内容
              for(1.初始化语句2;2.判断语句;4.迭代语句2){
               // 3.循环体内容2  
                  ......
                     for(5.初始化语句;6.判断语句;8.迭代语句){
                         // 7.循环体内容2 
                     
                     }
            
              }
        
          }
          
      

      执行流程

      ​ 执行流程:1---2---3---5---6---7---8---6---7---8---》....6不满足为止(跳出循环)

      ​ ----4---2----3---5---6----7---8---6----7----8---》----6不满足为止(跳出循环)

      ​ ------>.......2不满足为止(结束整个循环)

  • 相关阅读:
    viewport
    Flex 布局教程
    鼠标放上去盒子向上滑动
    鼠标放图片上,原图上划上去一个透明图片
    类加载过程
    JVM入门
    redis简介和安装
    JMH和Disruport
    线程池
    JUC
  • 原文地址:https://www.cnblogs.com/yangstudy/p/14003959.html
Copyright © 2020-2023  润新知