1.运算符(operator)

   Java 语言支持如下运算符:

    算术运算符:  +,-,*,/,%,++

    赋值运算符 =

    关系运算符:  >,<,>=,<=,==,!=  instanceof

    逻辑运算符:  &&,||,!

    位运算符:  &,|,^,~ , >>,<<,>>>

    条件运算符 ?

    扩展赋值运算符:+=,-=,*=,/=

2.一元运算符(++, --)

  1. int a = 3;
  2. int b = a++; //执行完后,b=3。先给b赋值,再自增。
  3. int c = ++a; //执行完后,c=5。先自增,再给b赋值

注意:java中的乘幂处理:

  1. int a = 3^2; //java中不能这么处理, ^是异或符号。
  2. double b = Math.pow(3, 2);

3.二元运算符

整数运算:

如果两个操作数有一个为Long, 则结果也为long

没有long时,结果为int。即使操作数全为shot,byte,结果也是int.

浮点运算:

如果两个操作数有一个为double, 则结果为double.

只有两个操作数都是float, 则结果才为float.

4.布尔逻辑表达符

逻辑与:&&和&,逻辑或:||和|,逻辑非:!。

逻辑与和逻辑或采用短路的方式。从左到右计算,如果确定值则不会再计算下去。

逻辑与只要有一个为false, 则直接返回false.

逻辑或只要有一个为true, 则直接返回true;

  1. boolean c = 1>2&&2>(3/0);

5.位运算符

~ -- 取反 &   -- 按位与

|  -- 按位或 ^  -- 按位异或

<<:左移运算符, >>:右移运算符 >>>:无符号移位运算符

右移一位相当于除2取商。

左移一位相当于乘2。

  1. int a = 3*2*2;
  2. int b = 3<<2; //相当于:3*2*2;
  3. int a = 12/2/2;
  4. int b = 12>>2;

6.扩展运算符

运算符

用法举例

等效的表达式

+=

a += b

a = a+b

-=

a -= b

a = a-b

*=

a *= b

a = a*b

/=

a /= b

a = a/b

%=

a %= b

a = a%b

7.字符串连接符

“+”运算符两侧的操作数中只要有一个是字符串(String)类型,系统会自动将另一个操作数转换为字符串然后再进行连接。

8.三目条件运算符

三目条件运算符,语法格式:

  x ? y : z

其中 x 为 boolean 类型表达式,先计算 x 的值,若为true,则整个三目运算的结果为表达式 y 的值,否则整个运算结果为表达式 z 的值。

运算符优先级的问题:

R to L

.   ( )   { }   ;   ,
++ --   ~ ! (data type)

L to R

* / %

L to R

+ -

L to R

<< >> >>>

L to R

<  >  <=  >=  instanceof

L to R

== !=

L to R

&

L to R

^

L to R

|

L to R

&&

L to R

||

R to L

? :

R to L

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

 代码示意:

  1. public class TestOperator{
  2. public static void main(String[] agrs){
  3. //简单运算符
  4. int a = 1;
  5. int b = 2;
  6. int c = a+b;
  7. System.out.println("c的值为:"+c);
  8.  
  9. //一元运算符
  10. int d = 1;
  11. int e =d++; //执行完后,d=1。先给e赋值,再自增
  12. int f =++d; //执行完后,f=3。先自增,然后再赋值,这里自增2次,在e那已经自增一次。
  13. System.out.println("e的值为:"+e);
  14. System.out.println("f的值为:"+f);
  15.  
  16. //位运算符
  17. int m = 2;
  18. int n = 4;
  19.  
  20. System.out.println(m&n);
  21. System.out.println(m|n);
  22. System.out.println(~n);
  23. System.out.println(m^n);
  24.  
  25. //三目运算符
  26. int a1 = 10;
  27. int a2 = 20;
  28. System.out.println((a1>a2)?false:true);
  29. }
  30. }

【Java】Java_11运算符的更多相关文章

  1. java移位运算符具体解释

    java移位运算符不外乎就这三种:<<(左移).>>(带符号右移)和>>>(无符号右移). 1. 左移运算符 左移运算符<<使指定值的全部位都左移 ...

  2. JAVA的运算符和条件结构

    一.JAVA的运算符. 1.赋值运算符 赋值就是把一个变量的值赋给另一个变量. 语法: 变量名=表达式     例如  n = m + 5 2.算术运算符      算术运算符是数学中常用的加.减.乘 ...

  3. java位移运算符3 转

    https://www.cnblogs.com/winsker/p/6728672.html 移位运算符操作的对象就是二进制的位,可以单独用移位运算符来处理int型整数. 理解java移位运算符 运算 ...

  4. java位移运算符 转

    https://blog.csdn.net/qq_36134429/article/details/78286416#commentsedit java移位运算符不外乎就这三种:<<(左移 ...

  5. Java 位运算符和 int 类型的实现

    Java 位运算符和 int 类型的实现 其他运算符 # 算术运算符 +.-.*./.++i.i++.--i.i-- # 关系运算符 ==.!=.>.<.>=.<= # 逻辑运 ...

  6. 【java】运算符

    Java的运算符,分为四类: 算数运算符.关系运算符.逻辑运算符.位运算符. 算数运算符(9):+  -  *  /  %  ++  -- 关系运算符(6):==  !=  >  >=   ...

  7. java 增量运算符

    //java 增量运算符 public class Test16{ public static void main(String args[]) { int x1=10; x1+=3; //x1=x1 ...

  8. java三元运算符详解

    最近在带领实习生中遇到很多新手问与三元运算符有关的java题目,多数为代码结果题,少数为应用题.鉴于很多资料上对于java三元运算的讲解过于简单,网上的资料与题目也不是很完善,对于结果答案分析不一,故 ...

  9. 利用Java位运算符,完成Unsigned转换(无符号)

    方案二:利用Java位运算符,完成Unsigned转换. 正常情况下,Java提供的数据类型是有符号signed类型的,可以通过位运算的方式得到它们相对应的无符号值,参见几个方法中的代码: publi ...

  10. java移位运算符详解

    http://soft.chinabyte.com/database/195/11553695.shtml java移位运算符不外乎就这三种:<<(左移).>>(带符号右移)和 ...

随机推荐

  1. Win10系统解决C盘分区限制一半的问题

    1,按照网上的方法还不行,如链接 2,安装如下软件,里面有激活码,链接 链接:https://pan.baidu.com/s/14ifYpnCMGwJIbgykTYQR6Q 密码:whh3 3,安装并 ...

  2. 解决Composer 使用时要求输入授权用户名密码问题

    使用Composer下载第三方包时出现: Authentication required (packagist.phpcomposer.com): Username: 解决方法: 1.修改源 comp ...

  3. “equals”和“==”

    “equals”和“==” 首先对于基本类型来说,当值相同的时候,地址也是相同的,所以可以使用“==”进行比较,但是对于equals来说,equals比较的是栈中引用指向的堆中的对象.所以在比较对象的 ...

  4. python 中sshpass的使用

    如何用SSH连接远程服务器有两种方式 1.利用远程软件控制:sshclient.Puttty.secureCRT等 2.终端命令 ssh -p 22 root@服务器ip  密码需要手工交互式输入(2 ...

  5. ANDROID NFC读M1卡

    <?xml version="1.0" encoding="utf-8"?> <android.support.constraint.Cons ...

  6. HDUOJ题目HTML的爬取

    HDUOJ题目HTML的爬取 封装好的exe/app的GitHub地址:https://github.com/Rhythmicc/HDUHTML 按照系统选择即可. 其实没什么难度,先爬下来一个题目的 ...

  7. notepad++ 删除重复记录

    sort line with Edit -> Line Operations -> Sort Lines Lexicographically ascending do a Find / R ...

  8. java中集合里的泛型

    import java.util.ArrayList;/* * 泛型 : java jdk1.5新特性. * 泛型的好处 : * 1.将运行时的错诶提前到编译时. * 2.避免无谓的强制类型转换. * ...

  9. 小型Web应用扫描工具Grabber

    小型Web应用扫描工具Grabber   Grabber是Kali Linux集成的一款Web应用扫描工具.该工具适合中小Web应用,如个人博客.论坛等.该工具使用Python语言编写,支持常见的漏洞 ...

  10. python3全栈开发-并发编程,多线程

    一.什么是线程 在传统操作系统中,每个进程有一个地址空间,而且默认就有一个控制线程 线程顾名思义,就是一条流水线工作的过程,一条流水线必须属于一个车间,一个车间的工作过程是一个进程 车间负责把资源整合 ...