JAVA运算符\操作符

来源:互联网 发布:东芝移动硬盘 mac 加密 编辑:程序博客网 时间:2024/05/17 21:44

运算符

算术运算符

+-*/%取模++自增--自减+字符串拼接运算

注意:

1. 两个int类型运算完后之后,结果一定是int类型

2. byteshort类型在进行运算的时候,底层会自动提升为int类型,然后进行计算

3. 对于byte b = 3 + 4; JVM在编译的时候会进行优化,编译完成之后,实际上这句话就已经成了byte b = 7;  

% 取模--取余

103%3 = 1  2%5 = 2  4%2=0

-5%3=-2  -1% 3=-1

5%-3=2  1%-3=1

-5%-3=-2

对于负数的取余,先按照正数的取余运算,运算完成之后看%左边的数字的符号,如果左边的数是正数,结果就是正数,如果左边的数字是负数,结果是就是负数。

3.2%2=1.2  3%1.2=0.6  -3.5 % 1.7=-0.1

++ 自增

相当于在原来的基础上加了1 ->i = i + 1;

只有自增运算的时候,++在前在后结果一样。

++在前,这个变量是先自增,然后再参与其他的运算 int i = 5; int j = ++i;--> i = j = 6;

++在后,先进行其他运算,然后这个变量再自增  int i = 5; int j = i++; i=6;j = 5;

int i = 5;

int j = i++ + ++i; j=12

int j = ++i + i++;  j=12

byte类型的数据可以进行自增运算吗?

byte b = 3;

b++;---可以

在运算完成之后,Java在底层会对结果做一次强制类型的转换,原来是byte类型就再转换会byte类型

byte b = 127;

b++;

+ 字符串拼接运算

“a” + “b” -> “ab”

2 + “a” -> “2a”

 2 + 3 + “a” -> “5a”

2 + ‘a’ -> 99

“a” + 2 + 3 -> “a23”

“a” + true-> “atrue”

赋值运算符

= += -= *= /= %= &= |= ^=

=进行赋值运算

int i = 5;

i += 2; -> i = i + 2;

byte b = 25;

b += 5;---> 可以

除了=以外的赋值运算符,在使用之前,这个变量必须有初始值。

比较/关系运算符

==等于  !=不等于> < >= <= instanceof

3 = 4--> true

3 > 4-> false

instanceof 用来判断对象与类的关系的

逻辑运算符

&And 与  | OR!NOT^异或 &&短路与||短路或

true&true=true  true&false=false false&true=false  false&false=false

true|true=true true|false=true false|true=true fasle=false=false

!true=false !false=true

true^true=false true^false=true false^true=true false^false=false

&&短路与,运算规则和&完全一样,但是&&有短路特性,如果&&之前的运算结果确定为false,那么&&之后的运算就不再进行了。

位运算符

&|^异或<<左移>>右移>>>无符号右移~取反

注意:位运算是针对整数进行运算的

3 & 4

交换值的方式

方式一:

int i = 3,j = 4;

int temp = i;

i = j;

j = temp;

方式二:

int i = 3, j = 4;

i = i + j;

j = i - j; -> j = i + j - j-> j = i;

i = i - j;-> i = i + j - i-> i = j;

i += j; j = i - j;i-=j;

方式三:

int i = 3, j = 4;

i = i ^ j;

j = i ^ j;  -> j = i ^ j ^ j-> j = i

i = i ^ j; -> i = i ^ j ^ i-> i =j;

i^=j; j^=i; i^=j;

 

原创粉丝点击