Java全栈JavaSE:5.基本运算符

Posted new nm个对象

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java全栈JavaSE:5.基本运算符相关的知识,希望对你有一定的参考价值。

声明:本节内容为本人观看“遇见狂神说”Java教学视频后总结,仅供学习参考。

(1)加减乘除运算

package 运算符;

public class demo1 {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        System.out.println(a+b);
        System.out.println(a*b);
        System.out.println(a-b);
        System.out.println(a/(double)b); //注意:当结果为小数时,要转化类型
    }
}

(2)关系运算符

注意:关系运算符返回的是一个布尔值(true或者false)

package 运算符;

public class demo2 {
    public static void main(String[] args) {
        int a = 20;
        int b = 10;
        System.out.println(a > b);
        System.out.println(a < b);
        System.out.println(a == b);
        System.out.println(a != b);
        System.out.println(a >= b);
        System.out.println(a <= b);
    }
}

运行结果如下:

true
false
false
true
true
false

(3)取余和取模运算符

  • 取余:取除法运算后的余数,作为运算的最终结果。
  • 取模:取除法运算后的商,作为运算的最终结果。
package 运算符;

public class demo3 {
    public static void main(String[] args) {
        int a = 10;
        int b = 42;
        System.out.println(b % a); //取余
        System.out.println(b/a); //取模:本质还是除法,当结果为整数是就相当于取模
    }
}

运算结果如下:

2
4

(4)自增自减运算

注意:自增自减运算本质上很简单,对一个变量做自增自减时(如:a++,a–)。就相当于a=a+1或a=a-1。但是有一个需要特别注意的点就是运算符的位置。例如:

  • int b = a++:运算过程是a先赋值给b,然后a在自增1。
  • int b = ++a:运算过程是a先自增1,然后赋值给b。
package 运算符;

public class demo4 {
    public static void main(String[] args) {
        int a = 5;
        int b = a++;
        System.out.println(b);
        System.out.println(a);
        System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
        int c = 5;
        int d = ++a;
        System.out.println(d);
        System.out.println(c);
    }
}

运算结果如下:

5
6
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
7
5

(5)逻辑运算符

  • &&:与运算。当参与运算的两个数据都为true时才为true,否则都为false。
  • ||:或运算。当参与运算的两个数据都为false时才为false,否则都为true。
  • !:非运算。取反
package 运算符;

public class demo5 {
    public static void main(String[] args) {
        boolean a = true;
        boolean b = false;
        System.out.println(a && b);
        System.out.println(a || b);
        System.out.println(!a);
    }
}

运算结果如下:

false
true
false

(6)位运算

  • &(与):参与计算的两边都为1才为1,否则为0。
0011 1100
0000 1101
&运算结果:
0000 1100
  • |(或):参与计算的两边都为0才为0,否则为1。
0011 1100
0000 1101
|运算结果:
0011 1101
  • ^:参与计算的两边相同为0,不同为1。
0011 1100
0000 1101
^运算结果:
0011 0001
  • ~:对参与运算的数据取反,0则为1,1则为0。
0000 1101
~运算结果:
1111 0010
  • <<(左移):a<<b将数据a的位数向左移b位,每左移一位效果与*2相同。

  • >>(右移):a>>b将数据a的位数向右移b位,每右移一位效果与/2相同。

练习:

package 运算符;

public class demo6 {
    public static void main(String[] args) {
        /*
        分析:
        int a = 10; (0000 1010)
        int b = 25; (0001 1001)
        >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
        a&b = 8     (0000 1000)
        a|b = 27    (0001 1011)
        a^b = 19    (0001 0011)
         ~b = -26   (1110 0110)
       a<<3 = 80    (0101 0000)
       a>>1 = 5     (0000 0101)
        */

        int a = 10;
        int b = 25;
        System.out.println("a&b="+(a&b));
        System.out.println("a|b="+(a|b));
        System.out.println("a^b="+(a^b));
        System.out.println("~b="+(~b));
        System.out.println("a<<3="+(a<<3));
        System.out.println("a>>1="+(a>>1));
    }
}

运算结果如下:

a&b=8
a|b=27
a^b=19
~b=-26
a<<3=80
a>>1=5

(7)加等于减等于…

  • a+=b:等价于a=a+b
  • a-=b:等价于a=a-b
  • a*=b:等价于a=a*b
  • a/=b:等价于a=a/b

(8)扩展:含字符串的+运算

  • +运算表达式中包含字符串时,会将其他数字也转化为字符串然后拼接起来。但是字符串前后的数字处理方式不一样。
package 运算符;

public class demo7 {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        System.out.println("哈哈"+a+b); //字符串后面的数字不会做计算处理,直接当成字符串拼接起来
        System.out.println(a+b+"哈哈"); //字符串前面的数字会先做计算处理,然后当成字符串拼接起来
    }
}

结果如下:

哈哈1020
30哈哈

(9)三元运算符

  • x ? y : z:如果x的值为真,则结果为y,否则结果为z。
package 运算符;

public class demo8 {
    public static void main(String[] args) {
        boolean x1 = true;
        boolean x2 = false;
        int y = 100;
        int z = 200;
        System.out.println(x1?y:z);
        System.out.println(x2?y:z);
    }
}

运算结果如下:

100
200

以上是关于Java全栈JavaSE:5.基本运算符的主要内容,如果未能解决你的问题,请参考以下文章

Java全栈JavaSE:17.基础API与常见算法

Java全栈JavaSE:23.数据结构上

Java全栈JavaSE:7.用户交互scanner

Java全栈JavaSE:4.变量,常量,变量作用域

Java全栈JavaSE:8.Java方法详解

Java全栈JavaSE:15.异常