码迷,mamicode.com
首页 > 编程语言 > 详细

java中的运算符

时间:2020-08-01 21:34:36      阅读:43      评论:0      收藏:0      [点我收藏+]

标签:算术运算   改变   end   实现   关系运算   语法   逻辑运算   start   运算   

算术运算符

  • +
  • -
  • *
  • /
  • ++
  • --

++出现在变量后,会先做赋值运算,再自加1

1 1 int m = 20;  
2 2 int n = m++;
3 3 //最后结果 n = 20  m = 21

 

++出现在变量之前,会先进行自加1的运算,然后再赋值

1 int x = 50; 
2 int y = ++x;
3 //x = y = 51
4 
5 int num = 10;
6 num++;    
7 ++num;  
8 //这两条语句是一样的 都是一条语句,";"分号结束

注解:++无论出现在变量前还是后,只要++运算结束,";"分号结束,一定会自加1

一个例子:

1 int i = 0;  
2 i = i++;  
3 System.out.println(i); //运行结束后,i=0
4 //i = i++底层实现
5 int temp = i;
6 i = (int)(i+1);
7 i = temp;

关系运算符

  • >
  • >=
  • <
  • <=
  • ==
  • !=

注意:所有的关系运算符的运算结果都是布尔类型,不是true就是false,不可能是其他值

逻辑运算符

符号解释
& 逻辑与(并且)
| 逻辑或(或者)
! 逻辑非(取反)
&& 短路与
|| 短路或
^ 异或(相同为false,不同为true)

注意:逻辑运算符两边要求都是布尔类型,并且最终的运算结果也是布尔类型

& 两边都是true,结果才是true。

| 一边是true,结果就是true。

"&&" 和 "||" 实际上和 "& "和 "|" 运算结果完全相同,区别在于:&& 和 || 有短路现象。

左边的为false的时候:&& 短路了(后面的不执行)

左边为true的时候:|| 短路了。(后面的不执行)

注解:效率方面来说&&比&效率高

位运算符

符号解释
&
|
^
<< 左位移 注解:二进制左移多少位,每左移一位便乘以2(在一定范围内),不管是正数还是负数
>> 右位移(有符号右移) 注解:二进制右移多少位,每右移一位便除以2(在一定范围内),最高位是什么就用什么补,如:最高位为1则用1补,为0用0补
>>> 无符号右移 注解:最高位无论为什么都用0补

 

注解: &、|、^:前后两者都是 boolean类型值时,此符号为逻辑运算符,前后两者都是数值时,此符号为 位运算符

例子:

用最有效率的方式计算出4*8的结果

使用位运算(而位运算cpu直接支持的,效率最高)

2<<5或者4<<3

赋值运算符

  • =
  • +=
  • -=
  • *=
  • /=
  • %=

注解:使用扩展运算符的时候,永远都不会改变运算结果类型

例子:

1 byte x = 100; // byte最大值127
2 x += 1000; // 编译可以通过,x变量还是byte类型,只不过损失精度
3 x += 1000; 
4 //底层为:x = (byte)(x + 1000);
5 int i = 10;
6 i += 10; // 底层:i = (int)(i + 10); 

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

语法格式:

  布尔表达式 ? 表达式1 : 表达式2

布尔表达式为true,选择表达式1作为结果。反之选择表达式2作为结果

小知识

例子:

int a=5;
System.out.println("a="+((a<5)?10.9:9))//结果为9.0
//注解:值1和值2如果类型不一样,哪个大就向哪个转型

例子:

char x=‘x‘;
int i=10;
System.out.println(false?i:x);//结果为120
System.out.println(false?100:x);//结果为x

System.out.println(true?x:65535);//结果为x
System.out.println(true?x:65536);//结果为120

注解:使用三目运算符 char和数字直接比较 当数字(int类型)不超过65535时输出是char类型‘x‘,超过65535时输出的是int类型

字符串连接运算符

+ 运算符

  1. ’+‘ 运算符在java中有两个作用(作用1:求和, 作用2:字符串拼接)

  2. 当 + 运算符两边都是数字类型的时候,求和,当 + 运算符两边的任意一边时字符串类型,那么这个+会进行字符串拼接操作

    注解:字符串拼接完成之后的结果还是一个字符串

java中的运算符

标签:算术运算   改变   end   实现   关系运算   语法   逻辑运算   start   运算   

原文地址:https://www.cnblogs.com/thesky-wfei/p/13416202.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有 京ICP备13008772号-2
迷上了代码!