• 第三天T2S03


    今日内容:
    1、扩展
    计算机是如何做计算的 (加法-减法)
    位运算符 了解
    2、流程控制

    在计算机中正数是使用原码来表示
    原码:十进制对应的二进制数
    负数是使用补码表示:
    2 原码 0000 0010
       反码 1111 1101
       补码 1111 1110   (反码+1=补码)
       -2 1111 1110

       2-2 等价 2+(-2)

    结论:计算机只做加法计算,减法也是加法计算出来的

    算数运算符: + - * / % ++ --
    比较运算符: > >= < <= == !=
    逻辑运算 && & || | !
    赋值运算符: = += -= *= /= %=

    面试题:
    一、交换两个变量的值 Demo3.java
    1)不使用第三方变量交换两个变量的值
    Demo3.java


    方法一:                           方法二:

    a=2;                                    a=2;
    b=3;                                    b=3;
    a=b-a; (a=1)                        a=a+b; (a=5)
    b=b-a; (b=2)                        b=a-b; (b=2)
    a=a+b; (a=3)先减后加        a=a-b; (a=3)先加后减

                    
    2)使用第三方变量
    二、在Java中 num+=3; 和num=num+3; 相同吗?
    不相同 Demo4.java
    num=num+3; 是两个运算符,在计算过程中需要强制类型转换
    num+=3; 是一个运算符,在计算过程中会自动进行类型转换

    位运算 & 位与
    | 位或
    ~ 按位取反
    ^ 异或
    >> 向左位移动
    << 向右位移动
    >>> 无符号向左移动

    & 位与 同时为1结果为1 否则结果为0
    2>3 & 3>5 逻辑与
    8&2 位与
    位运算都是转换成二进制后的计算
    8 00001000
    2 00000010
    & 00000000

    | 位或 只要有一个为1,结果为1

    8|2
    8 00001000
    2 00000010
    | 00001010

    ~ 按位取反
    8 00001000
    ~ 11110111

    ^ 异或 相同为0、不同为1
    8 00001000
    2 00000010 8^2
       00001010
    位移运算
    >>有符号向右位移,如果是正数高位补0,如果是负数高位补1
    00000100
    00000001
    >>>无符号右移,高位补0
    << 向左位移 ,后面补0

    流程控制:
    1、顺序结构:
    按照编写代码的顺序,从上而下逐行翻译、执行
    特点:每行代码都能被执行到,且被执行一次。
    2、选择结构:看条件
        2.1条件为true(成立),执行代码块
    if(条件){
    //条件为true执行
    }
        2.2 条件为true,执行代码块1,否则(false)执行代码块2
    if(条件){
    //代码块1
    }
    else{
    //代码块2
    }
    //三目运算符是if-else的简化
    2.3、多重if选择结构
    if(条件1){
    //1
    }else if(条件2){
    //2
    }else if(条件3){
    //3
    }else{
    //4
    }

    案例:输入百分制成绩,输出对应的5分制成绩

    90分以上 优秀
    81-90 良好
    71-80 一般
    60-70 及格
    60以下 不及格

    2.4、嵌套if选择结构
    if(条件1){
    if(条件2){
    }
    }
    案例:如果体检合格:
    检查你的面试情况 HR 通过 技术 通过
    入职手续
    否则{
    不能入职
    }

    【经验】
    1、变量最好要初始化
    数值类型初始化为0
    char  空格
    String  ""
    boolean  false
    因为变量要先初始化,后使用
    2、通常写if 就要带else

    在Java中{}代码块
    变量的生命周期:
    1、存在:执行到声明变量的那行代码,内存分配空间
    2、清空:执行到变量所在语句块的  }  时,变量被清空,变量声明(生命)周期 } 截止

    switch 选择结构 可以和多重if选择结构等价
    语法:
    switch(表达式){
    case 值1:
    //代码
    break;
    case 值2
    //代码
    break;
    default:
    //代码
    break;
    }
    【语法说明】
    1、switch后的表达式计算结果类型只能是如下6个
         byte   short  int  char  枚举
         从Java7开始还支持String

    2、switch后面可以是变量、也可以是表达式
          case后只能是值

    3、break不是必须的,如果当前case省略了break,那么紧挨着的下一个case会自动执行
    4、default不一定放在最后,可以放在switch里的任何位置
         但是通常放在最后,因为java会最后执行default,与代码位置无关

    案例:Menue.java
    switch 开关
    case 情况 情形
    break 跳出
    default 默认 除了以上情形

    switch 和if 可以通用        switch  等值判断条件下  比if简洁

                                            if       在范围判断条件下 比switch简洁
    但是在等值判断的情况下,switch比if更简洁
    不适用于范围的判断

    、、、、、、、、、、、、、、、、、、、、、、、、、、
    今日内容总结:
    1、计算机执行加减法的运算过程 了解
    原码 反码 补码
    2、面试题 掌握
    不使用第三方变量交换两个变量的值
    num+=1; num=num+1 区别
    3、位运算 对二进制的计算 了解
    & | ~ ^
    >> 有符号右位移
    << 左位移
    >>> 无符号右位移

    4、流程控制
    顺序结构
    选择结构
    if
    if-else
    if-else if-else
    if(){if(){}}
    switch

  • 相关阅读:
    npm 版本不支持node.js的解决方法
    kolla-ansible运维
    Openstack Train部署 (kolla-ansible)
    存储使用的光纤交换机
    Openstack Train部署 (openstack-ansible)
    使用cockpit-ceph-deploy部署ceph集群
    ceph集群维护
    ceph生产环境规划
    分布式存储ceph部署
    openvswitch网桥的连接方式
  • 原文地址:https://www.cnblogs.com/wxcsz/p/10574078.html
Copyright © 2020-2023  润新知