Java--运算符

Java–运算符

/**
 *description: Java--运算符
 *@program: JavaProjectDemo
 *@author: zy
 *@create: 2023-02-09 23:09
 */
public class Operator {

    /**
     * java语言支持如下运算符:注意优先级时多使用()
     * 算术运算符:+,-,*,/,%,++,--
     * 赋值运算符:=
     * 关系运算符:>,<,>=,<=,==,!=,instanceof
     * 逻辑运算符:&&,||,!
     * 位运算符:&,|,^,~,>>,<<,>>>(了解即可)
     * 条件运算符:?,:
     * 扩展赋值运算符:+=,-=,*=,/=
     */

    public static void main(String[] args) {
        //************** 二元运算符 **************//
        int a=10;
        int b=20;
        int i=21;

        System.out.println(a+b);// 30
        System.out.println(a-b);// -10
        System.out.println(a*b);// 200
        System.out.println(a/b);// 0
        System.out.println(a/(double)b);// 0.5
        // 取余,模运算
        System.out.println(i%a);// i/a 21/10=2...1

        //************** ++ -- 自增,自减,一元运算符 **************//
        a = 3;
        b = a++;
        // a++  a=a+1;先赋值,再自增
        System.out.println(a);// 4
        // ++a a=a+1;先自增,再赋值
        i = ++a;

        System.out.println(a);// 5
        System.out.println(b);// 3
        System.out.println(i);// 5

        //************** 幂运算 2^3(Java中没有幂运算的运算符) 2*2*2=8 **************//
        // 很多运算,借助一些工具类来操作,比如:Math
        double pow = Math.pow(2, 3);
        System.out.println(pow);// 8.0

        /***************
         * 如果运算中的一个变量为long,则运算结果为long,如果没有long其余数值类型的运算结果则为int
         * 同理:如果运算中有个一变量为double,则结果为double,否则为float
         */
        long s = 12312312321L;
        int d = 123;
        short c = 12;
        byte h = 8;

        System.out.println(s+d+c+h);// long
        System.out.println(d+c+h);// int
        System.out.println(c+h);// int

        //************** 关系运算符返回的结果:false,true **************//
        int x = 10;
        int y = 20;
        System.out.println(x>y);// false
        System.out.println(x<y);// true
        System.out.println(x==y);// false
        System.out.println(x!=y);// true

        //************** 逻辑运算符:与(and) 或(or) 非(取反) **************//
        boolean b1 = true;
        boolean b2 = false;

        System.out.println("b1 && b2:"+(b1 && b2));// false 逻辑与运算:两个变量都为true,结果为true
        System.out.println("b1 || b2:"+(b1 || b2));// true 逻辑或运算:两个变量有一个为true,结果为true
        System.out.println("!(b1 && b2):"+!(b1 && b2));// true 逻辑非运算:如果是true,则变为false,如果是false,则为true
        // 短路运算:与运算时:如果第一个结果为false,则后面的代码不执行
        int c1=5;
        boolean flag = (c1<4)&&(c1++<4);
        System.out.println(flag);// false
        System.out.println(c1);// 5

        //************** 位运算符:&(与)|(或)^(抑或)~(非) **************//
        /*
        A = 0011 1100
        B = 0000 1101
        -----------------------
        A&B = 0000 1100 (A与B位数比较,都为0则为0,都为1则为1,否则为0)
        A|B = 0011 1101(A或B位数比较,都为0则为0,都为1则为1,否则为1)
        A^B = 0011 0001(A抑或B位数比较,相同则为0,不相同则为1)
        ~B = 1111 0010(B取反,B原位数为1,则为0,原位数为0,则为1)
        -----------------------
        引出面试题:2*8 怎么运算最快?16
        解决方案:2*2*2*2
        <<(左移) *2 左移1位相当于乘以2
        >>(右移) /2 右移1位相当于除以2
        位运算:效率极高,直接用二进制运算
        0000 0000  0
        0000 0001  1
        0000 0010  2
        0000 0011  3
        0000 0100  4
        0000 0101  5
        0000 0110  6
        0000 0111  7
        0000 1000  8
        0001 0000  16
        0001 1000  24
         */

        System.out.println(2<<3);// 2左移3位,结果为16
        System.out.println(3<<3);// 3左移3位,结果为24

        //************** 扩展赋值运算符:+=,-=,*=,/= **************//
        int a1=10;
        int a2=20;

        a1+=a2;// a1=a1+a2
        a1-=a2;// a1=a1-a2

        System.out.println(a1);// 10
        /*
         字符串连接符:+ ,变量两侧若有String类型则结果拼接为String
         若String在后,则运算在前;若String在前,则直接拼接所有变量
         */
        System.out.println(a1+a2);// 30
        System.out.println(a1+a2+"");// 30
        System.out.println(""+a1+a2);// 1020

        //************** 三元运算符:?: **************//
        // x?y:z 如果x为true,则结果为y,否则结果为z
        int score = 80;
        String result = score < 60 ? "不及格" : "及格";
        System.out.println(result); // 及格
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值