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); //注意:当结果为小数时,要转化类型。否则两个整数相除,不会保留小数部分
    }
}

注意:char,byte,short类型在做加减乘除运算时,会自动将结果转化为int类型。
例如:

package com.oy.运算符;

public class Demo10 {
    public static void main(String[] args) {
        byte a = 1;
        short b = 2;
        short c =  a+b;
        System.out.println(c);
    }
}

结果如下:
在这里插入图片描述

(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)逻辑运算符

逻辑运算符,是用来连接两个布尔类型结果的运算符(!除外),运算结果一定是boolean值true或者false

逻辑运算符符号解释符号特点
&与,且falsefalse
|truetrue
^异或相同为false,不同为true
!falsetrue,非truefalse
&&双与,短路与左边为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
  • 注意:使用+=,-=,*=,/=赋值运算符,不会导致数据类型改变。而使用+,-,*,/运算符会导致两个char,short,byte计算数据结果自动改变为int

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

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

public class Demo10 {
    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)); //可以使用小括号来改变优先级

    }
}

结果如下:

哈哈1020
30哈哈
哈哈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
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值