运算符

运算符

  • 算数运算符:+,-,*,/,%,++,--
  • 赋值运算符:=
  • 关系运算符:>,<,>=,<=,==,!=,instanceof
  • 逻辑运算符:&&,||,!
  • 位运算符:&,|,^,~,>>,<<,>>>(无符号右移)
  • 条件运算符:! :
  • 扩展赋值运算符:+=,-=,*=,/=

byte与short以及char计算时会转变为int类型

a++:先输出a,再自增;++a:先自增,在输出a

位运算:

A = 0011 1100;
B = 0000 1101;
//------------------
A & B = 0000 1100;//都为1时取1,否则取0
A | B = 0011 1101;//都为0时取0,否则取1
A ^ B = 0011 0001;//相等时取0,不相等
~B = 1111 0010;//取反
//------------------
<<  ==  *2
>>  ==  /2
//例:2^4 == 2<<3 == 2*2*2*2 == 2*8

//====================================
10>>>2;
//10的原码:0000 0000 0000 1010
//右移2位:   00 0000 0000 0010
//用0补齐: 0000 0000 0000 0010 == 2
//=====================================
//>>和>>>在正数时无区别,在负数时才有区别
//其中>>部位为1;>>>补位为0
//负数的位运算
//      -2>>2 == -1
//-2的原码:1000 0010
//-2的反码:1111 1101
//-2的补码:1111 1110
//右移2位: 1111 1111
//取反码:	1000 0000
//反码加1: 1000 0001 == -1

字符串连接符:+

        int a = 10;
        int b = 20;
        System.out.println(a+b+"");
        System.out.println(""+a+b);
        System.out.println(a+b+""+a+b);
//-------------------------------------------------
//输出结果为:30
//			1020
//			301020
//在字符串之后的运算会转化为字符运算。

条件运算符(三目运算符):

//x?y:z
//如果x为true则返回y否则返回z
int score = 80;
String type = score>60 ? "及格":"不及格";
System.out.println(type);
//---------------------------
//输出结果为:及格

运算符优先级

优先级 运算符
1 ()、[]、{}
2 !、+(正)、-(负)、~、++、--
3 *、/、%
4 +(加)、-(减)
5 >>、>>、>>>
6 <、<=、>、>=、instanceof
7 ==、!=
8 &
9 ^
10 |
11 &&
12 ||
13 ?:
14 =、+=、-=、*=、/=、&=、|=、^=、~=、«=、»=、>>>=
上一篇:IP分类及配置


下一篇:汇编