学习目标:

  •  一些常见的问题
  •  字符串拼接符号
  •  java语言中常见的运算符
  •  键盘录入数据



学习内容:

  1. 一些常见的问题:
    byte b1=10,b2=20,b;
    b=b1+b2;
    b=10+20;
    哪句是编译失败的呢?为什么呢?
    第一句是编译失败的,因为第一句是byte+byte类型在进行计算,此时会隐式转换为int类型,等号左边是byte类型,等号右边是int类型,不兼容,所以此时要强制转换右边的位byte类型才正确.
  2. 字符串的拼接.
    字符+字符串->字符串[拼接]
    字符+数字->字符转换为ASCII进行计算
    数字+字符串->字符串[拼接]
  3. java语言中,常见的运算符划分为算数运算符,赋值运算符,比较运算符,逻辑运算符,位运算符,三目运算符
    算数运算符: 基本的算数运算符:+,-,*,/[默认向下取整],%
    扩展的算数运算符:++或者–在数据前面
    单独使用:对当面值本身进行自增1或者自减1
    参与运算:先自增或自减再进行运算
    ++或者–在数据后面
    单独使用:对当面值本身进行自增1或者自减1
    参与运算:先运算再自增或自减
    赋值运算符: 基本赋值运算符: = 将=右边的数值赋予左边的变量
    扩展的赋值运算符:+=,-=,*=,/=,%=(会默认一个强制转换类型在里面)
    比较运算符–关系运算符:<,<=,==,!=,>,>=,最终的结果肯定是boolean类型,要么true要么false,
    逻辑运算符:基本的逻辑运算符:
    逻辑单与&:并列关系,有false则false
    逻辑单或|:或关系,有true则true
    逻辑异或^:相同则为fals,不同则为true
    逻辑非!: true变false,false变true
    扩展的逻辑运算符:
    逻辑双与&&:前面是false则不会看后面直接出false(效率比单与高)
    逻辑双或||:前面有true,则直接出true,后面不运行(效率比单或高)
    位运算符:基本的符号:将两个变量或者数据本身[补码]进行计算的
    位与&:(2&3) [0010 & 0011]->[0010]有0则0
    位或 |:(2|3) [0010 | 0011]->[0011]有1则1
    位异或^:(2 ^ 3)[0010 ^ 0011]->[0001]相同为0不同为1 一个数据被另外一个数据位异或两次,其值为它本身.
    反码~:( ~ 2)[ ~ 0010]->[1101]不分符号位 1为0,0为1
    eg:将两个变量的值进行交换:
    int a=10;
    int b=20;
    System.out.println(a ^ b ^ a) //10
    System.out.println(a^ a ^ b)//20
    a=a ^ b;
    b= a^b;
    a=a ^b;
    移位符号:
    <<:左移 右边空位补0,被移除的最高位移弃[左边数据乘以2的移动次方]
    > >:右移 向右边移动.左边空缺最高位是1则最位补1,空缺位补充0[左边数据/2移动的次方]
    >>> 无符号右移,无论最高位是1还是0,都补0
    eg:
    3<<2:左2位
    3的原码为:
    00000000 … 00000011
    正数原,反,补相同:
    补码为上面的原码,左移2位则:
    (00[丢弃])00000000 … 00001100
    =12=3
    2的2次方
    24>>2:
    24的原码是:
    00000000…00011000
    正数补码与原码相同,补码向右两个:
    00000000…00000110(00[丢弃])
    三元运算符(三目运算符):(表达式)?如果true执行这个结果:false执行这个结果