初学者:java运算符小结

java运算符小结

类型转换

由于java是强类型语言,所以要进行有些运算的时候需要用到类型转换
低---------------------------------高
byte,short,char-> int -> long -> float ->double
小数的优先级大于整数
运算中不同类型的数据优先转换为同一类型然后进行运算
由高到低 强制转换
由低到高 自动转换

算术运算符

加+ 减- 乘* 除/

		int a = 15;
        int b = 20;
        int c = 25;
        int d = 25;

        System.out.println(a+b);
        System.out.println(a-b);
        System.out.println(a*b);
        System.out.println(a/(double)b);//(a/b)输出为0,因为结果为0.75,a,b都是整形,自动向下取整。把其中一个转换为double
        
 		long x = 1231231231321L;
        int y = 123;
        short z =10;
        byte n = 8;

        System.out.println(x+y+z+n);//输出结果类型为long
        System.out.println(y+z+n);//输出结果类型为int
        System.out.println((double)z+n);//输出结果类型为double
        //低向高,自动转换 有long类型肯定是long类型
        

++ 自增 --自减

        int a = 3;
        int b = a++;//执行完这行代码,先赋值,再自增
        System.out.println(a);//a++ 先赋值再自增,输出a++还会是a的值
        System.out.println(b);//这里的b输出的是3,因为a++是先赋值再自增
        // a = a + 1
        int c = ++a;
        System.out.println(a);
        System.out.println(c);//++a先自增在赋值,所以输出的是5

如代码 a++ 先赋值再自增,a的值为3,如果你直接打印(a++)结果依旧会输出为3。++a是先自增再赋值,所以你直接打印(++a)得到结果会是4. --同理。

关系运算符

大于>,小于<,不等于!=,等于==

        int i = 10;
        int l = 20;
        int m = 21;
        System.out.println(i>l);//false
        System.out.println(i==l);//false
        System.out.println(i<l);//true
        System.out.println(i!=l);//true

关系运算符输出的结果为正确,错误,为布尔值

逻辑运算符

与&& 或|| 非!

		boolean a = true;
        boolean b = false;

        System.out.println("a && b:"+(a&&b));
        System.out.println("a || b:"+(a||b));
        System.out.println("!(a && b):"+!(a&&b));
        输出结果为:
        a && b:false
		a || b:true
		!(a && b):true

短路运算

短路运算:即前面代码为假时,就会直接输出为假,不会执行后面的代码

 		int c =4;
        boolean d = (c<4)&&(c++<4);
        System.out.println(d);
        System.out.println(c);
        输出结果:
        d为false
        c:4

上述代码,因为c<4为假,直接会输出false,将不再会执行后面的c++代码,如果执行了c++,输出结果会为5.如下代码

        int c =4;
        boolean d = (c==4)&&(c++<4);
        System.out.println(d);
        System.out.println(c);
        d输出为false
        c:5

因为c==4为真,执行后面的c++<4为假,即输出为false,但是执行了c++这个代码,输出c时,值就会为5.

位运算符

与% 或| 非~ 异或^

	A = 0011 1100
    B = 0000 1101

    A&B = 0000 1100  两个同为1,为1。其余为0
    A/B  = 0011 1101   两个其中一个为1则为1,同为0 则为0
    A^B = 0011 0001(异或)两个相同为0,不同为1  
    ~B   = 1111 0010  完全相反 0成了1,1成了0

<< >>

在计算机中如何计算28的速度最快,把28拆分为222*2,
即2<<3System.out.println(2<<3); //0010 左移3 0001 0000 为16
<< 相当于乘以2,>>相当于除以2
位运算的效率十分的高

条件运算符/三元运算符

? , :

x ? y : z
如果x==true,则结果为y,否则结果为z

		int score = 50;
        String type = score < 60 ? "不及格" : "及格"; //掌握
        System.out.println(type);
        输出结果:不及格

拓展运算符

+= , -=

		int a = 10;
        int b = 20;
        a+=b; // a = a+b
        a-=b; // a = a-b

字符串连接符 + ,string

System.out.println(""+a+b);//在前面为链接 输出1020

System.out.println(a+b+""+30);//在后面,先运算前面,再连接 输出3030
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值