您的位置:首页 > 其它

运算符知识点整理

2020-06-07 16:04 63 查看

Operational Charecter 运算符

  • 2.赋值运算符
  • 3.比较运算符
  • 4.逻辑运算符
  • 5.位运算符
  • 6.三元运算符
  • 面试
  • 定义

    定义:运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等。共有5种类型

    分类

    1.算术运算符

    1.详情

    +(正号)-(负号) +  -  *  /  %(取模)  (前)++  (后)++  (前)--  (后)--  +(字符串连接)

    2.注意点

    注意:取模(取余)运算结果的符号与被模数的符号相同,开发中,经常使用%来判断能否被除尽的情况。 例:-12 % 5 == -2

    2.赋值运算符

    1.详情

    =  +=  -=  *=  /=  %=

    2.注意点

    注意点:1.赋值运算符可以连续赋值。  例:int i2,j2;  i2 = j2 = 10;
    2.赋值运算符不会改变数据本身的类型。 例:num += 2; (数据类型同num) //num = num + 2;(数据类型为int或更高)

    3.比较运算符

    1.详情

    ==  !=  > >=  < <=  instanceof(检查是否是类的对象)

    2.注意点

    注意:比较运算符的结果是boolean类型

    4.逻辑运算符

    1.详情

    &(逻辑与)  &&(短路与)  |(逻辑或)  ||(短路或)  !(逻辑非)  ^(逻辑异或)
    短路的概念:二元表达式中,当左侧的表达式能够确定结果时,程序不再执行右边的运算。这种现象就是短路。

    2.注意点

    注意:
    1.逻辑运算符用于连接boolean类型的条件表达式;且不能连续使用。
    2.区分&,&&(短路与); (开发中,推荐使用&& )
    相同点:
    1.& 与  && 的运算结果相同
    2.当符号左边是true时,二者都会执行符号右边的运算
    不同点:
    当符号左边是false时,&继续执行符号右边的运算。&&不再执行符号右边的运算。
    3.区分|,与 || (短路或);(开发中,推荐使用|| )
    相同点:
    1.| 与  || 的运算结果相同
    2.当符号左边是false时,二者都会执行符号右边的运算
    不同点:
    当符号左边是true时,|继续执行符号右边的运算,而||不再执行符号右边的运算
    4.区分异或( ^ )与或( | );
    不同点:当左右都为true时,结果为false。

    5.位运算符

    1.详情

    (位运算是直接对整数的二进制进行的运算)
    << (左移 )>> (右移 )>>> (无符号右移)& (与运算 )| (或运算 )^ (异或运算 )~ (取反运算)

    2.注意点

    注意:
    1. 位运算符操作的都是整型的数据
    2. << :在一定范围内,每向左移1位,相当于 * 2
    >> : 在一定范围内,每向右移1位,相当于 / 2
    3. 针对负数:>>右移以后,最高空出来的位拿1去补; >>> 右移以后,高空出来的位拿0去补。

    6.三元运算符

    1.详情

    结构格式:
    (条件表达式)? 表达式1 : 表达式2;
    (表达式1和表达式2要求是一致的)
    输出结果:
    如果条件表达式为true,则执行表达式1;条件表达式为false,则执行表达式2。

    2.注意点

    注意:
    1.三元运算符可以嵌套使用。
    2.凡是可以使用三元运算符的地方,都可以改写为if-else;反之,不成立。
    3.如果程序既可以使用三元运算符,又可以使用if-else结构,优先选择“三元运算符”。原因:简洁、执行效率高。

    面试

    1.数值型变量数值变化1的实现数值变化为1的实现方式

    1.(前)++  (后)++  (前)--  (后)--    不改变数据类型
    2.num += 1; num -= 1;
    3.num = num  + 1;num = num -1;

    2.数值型变量数值变化1的实现数值变化为2的实现方式

    数值变化为2的实现方式:
    1.num += 2; num -= 2;  不改变数据类型
    2.num = num  + 2;num = num -2;

    3.最高效方式的计算2 * 8 ?

    答案: 2 << 3  或  8 << 1
    //运算符的理解
    int a = 23;
    int b = 12;
    //加法运算符的理解
    System.out.println(a + "+" + b + "=" + (a+b));
    int sum = a + b;
    System.out.println(a + "+" + b + "=" + sum);
    //减法运算符的理解
    int sub = a - b;
    //System.out.println(a + "-" + b + "=" + a-b);
    // 错误,原因是a + "-" + b + "=" + a的结果是字符串,字符串不能进行减法
    System.out.println(a + "-" + b + "=" + (a-b));
    System.out.println(a + "-" + b + "=" + sub);
    //乘法运算符的理解
    int mul = a * b;
    System.out.println(a + "*" + b + "=" + a*b);
    System.out.println(a + "*" + b + "=" + mul);
    //除法运算符的理解
    //整数相除,只保留整数部分
    int div = a / b;
    System.out.println(a + "/" + b + "=" + a/b);
    System.out.println(a + "/" + b + "=" + div);
    //若想要保留小数部分,需要进行强制类型转换。先把a的类型进行转换,转换成double类型,然后再和b相除
    double d = (double)a/b;
    System.out.println(a + "/" + b + "=" + d);
    //取模运算符的理解
    int yu = a % b;
    System.out.println(a + "%" + b + "=" + yu);
    //取模运算结果的正负,与模数无关,同被模数一致。
    System.out.println("------------------特殊的取模----------------------");
    System.out.println(5%2);//1
    System.out.println(-5%-2);//-1
    System.out.println(-5%2);//-1
    System.out.println(5%-2);//1
    //赋值运算,增加负号。
    System.out.println("------------------负号----------------------");
    int num1 = 12;
    int num2 = -num1;
    System.out.println("num2=" + num2);
    //自增1的运算。
    System.out.println("------------------自增----------------------");
    int i = 0;
    System.out.println("自增之前i=" + i);
    i++;
    System.out.println("自增第一次之后i=" + i);
    ++i;
    System.out.println("自增第二次之后i=" + i);
    int j = ++i;//把i自增1,然后结果赋值给j,或者说,先算++i,然后再赋值
    System.out.println("自增第三次之后i=" + i);
    System.out.println("j="+j);
    int k = i++;//先算赋值,把i的值赋值给k,i原来是3,把3赋值给k,然后i在自增1,i变成4
    System.out.println("自增第四次之后i=" + i);
    System.out.println("k="+k);
    //面试题:陷阱题
    i = i++;//先赋值,把i原来的值重新赋值给i,不变,然后i自增,但是这个自增后的值没有在放回变量i的位置
    System.out.println("自增第五次之后i=" + i);
    //字符串型String变量比较大小,意义是比较变量的属性(局部变量)
    //boolean is = str.equals(str2);//str:第一个字符串变量变量名; str2:第二个字符串变量变量名。
    内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
    标签: