运算符

+:

  1. 加法
  2. 表示正数的正号:a = +1;
  3. 字符连接:“Hello” + “world” = “Helloworld”
//只要至少有一个是字符串,+执行的就是字符串的拼接
        System.out.println("Hello" + 'a' + 1);    //Helloa1

        System.out.println('a' + 1 + "Hello");    //98Hello

        System.out.println("5+5=" + 5 + 5);       //5+5=55

        System.out.println(5 + 5 + "=5+5");       //10=5+5

/ and %

/ (丢弃小数部分,只保留整数部分)
%(取余)

		int a = 3;
        int b = 2;
        int c = a / b;
        double d = a / b;
        double e = 1.0 * a / b;
        System.out.println(c);   //1
        System.out.println(d);   //1.0
        System.out.println(e);   //1.5

单目运算符(++、- -)

a++(输出a,a自加)
++a(a自加,输出a)

赋值运算符(=、+=、*=、%=、/=)

a *= 2 (a = a * 2)

关系运算符(!=、==、<、>、<=、>=)

逻辑运算符

&(与):0 & 0 = 0;0 & 1 = 0;1 & 0 = 0;1 & 1 = 1;

|(或): 0 | 0 = 0;0 | 1 = 1; 1 | 0 = 1; 1 | 1 = 1;

!(非):!1 = 0;!0 = 1;

^(异或):0 ^ 0 = 0; 0 ^ 1 = 1; 1 ^ 1 = 0; 1 ^ 0 = 1;
(相同为false,不同为true)

注意事项:

  1. && 和 & 都是与运算,但&&比较智能,即当第一个为false时,已经知道结果,后面的就不会执行了;而&是都会执行。
  2. || 同理;短路效果

位运算(<<、>>、>>> 、&、!、^)

(如果要让操作数变成移位之后的结果,必须进行赋值)

针对变量的二进制位进行运算。
3 << 2 = 12
011 (00000000,00000000,00000000,00000011)
向左移动两位
得:(00000000,00000000,00000000,00001100)= 12

相当于对操作数 * 2;
移动一位*2;
3 * 2 * 2 = 12;
前提:左移之后的结果仍在类型表示范围内

右移

带符号的移位:-2 >> 1
10000000,00000000,00000000,00000010(-2)
11111111,11111111,11111111,11111110(补码)
右移一位,高位补符号位
11111111,11111111,11111111,11111111
取反+1
10000000,00000000,00000000,00000001 (-1)

相当于给操作数 / 2(只针对未溢出且可以被除尽的情况)
3 >> 1 = 1
-1 >> 1 = 1

无符号右移(>>>)

移位动作与带符号数一模一样,右移之后,高位直接填充0;通常处理正整数。
相当于除以2
针对负数无符号右移,不知道会出现什么.

按位取反(~,包括符号位)

~6 = -7;
00000000,00000000,00000000,00000110 (6)
11111111,11111111,11111111,11111001(按位取反)
正常取反+1
10000000,00000000,00000000,00000111 (-7)

交换

a = a + b

b = a - b // b = a + b - b

a = a - b // a = a + b - a

a = a ^ b

b = a ^ b // a ^ (b ^ b) = a

a = a ^ b // a ^ b ^a = a ^ a ^ b = b;

三目运算符

关系表达式?表达式1:表达式2
如果关系表达式的结果为true,则执行表达式1
否则,表达式2

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值