1.算术运算符

作用是数字的计算,包括:正号+,负号-,乘*,除/,余%,加+,减-,其算法与数学中的运算相同。

算术运算符实例(假设变量A=10,变量B=20):

操作符

描述

例子

+

正号

+A=+10 表示正数10

-

负号

-B=-20  表示负数20

+

加号

A+B=30

-

减号

A-B=-10

*

乘号

A*B=200

/

除号

B/A=2

%

取余

B%A=0

2.位运算

将数字转成int型后,把二进制的0当作false,1当作true,每一位进行逻辑运算,运算结果为int型。运算符包括:位非~,位与&,位或|,位异或^,位左移<<,位右移>>,位补零右移>>>

位运算实例(假设变量A=60(二进制为00111100),变量B=13(二进制伟00001101)):

操作符

描述

例子

~

位非:翻转操作数的每一位

(~A),得到11000011,即195

&

位与:当且仅当两个操作数的某一位都非0时该位才为1

(A&B),得到00001100,即12

|

位或:只要两个操作数的某一位有一个非0时该位就为1

(A|B),得到00111101,即61

^

位异或:两个操作数的某一位不相同时改位为1

(A^B),得到00110001,即49

<<

位左移:左操作数按位左移右操作数指定的数

A<<2,得到11110000,即240

>>

位右移:左操作数按位右移右操作数指定的数

A>>2,得到00001111,即15

>>>

位补零右移:左操作数的值按右操作数指定的位数右移,移动得到的空位为零填补。

A>>>2,得到00001111,即15

注:

1)位左移:将int型整数的二进制每位向左移动若干位,前面若干位左移出int范围的bit丢弃,数字位移动到符号位,后面若干位空出的bit补0。如果符号位没有发生改变,则等同于乘2的n次方
2)位右移:将int型整数的二进制每位向右移动若干位,后面若干位右移出int范围的bit丢弃,前面若干位空出的bit全都补符号位数字。等同于除2的n次方。
3)位补零右移:将int型整数的二进制每位向右移动若干位,后面若干位右移出int范围的bit丢弃,前面若干位空出的bit全都补0。正数等同于除2的n次方,负数补零右移后变正数。

3.字符串处理

只有一个操作符“+” , 作用是将多个字符串连接成1个大的字符串。

字符串运算实例(变量A=“abc”,变量B=123):

操作符

描述

例子

+

连接符:将多个字符串连接成1个大的字符串

A+B=”ABC123”

4.关系运算

判断2者的关系,返回布尔值。包括:判断相等==,判断不等!=,判断大于>,判断大于等于>=,判断小于<,判断小于等于<=。

关系运算符实例(假设变量A=10,变量B=20):

操作符

描述

例子

==

判断相等:检查两个操作数的值是否相等,如果相等则条件为真。

(A==B)结果为假(非真)

!=

判断不等于:检查两个操作数的值是否相等,如果不相等则条件为真。

(!A==B)结果为真

>

判断大于:检查左操作数的值是否大于右操作数,如果大于则条件为真。

(A>B)结果为假

>=

判断大于等于:检查左操作数的值是否大于等于右操作数,如果大于等于则条件为真。

(A>=B)结果为假

<

判断小于:检查左操作数的值是否小于右操作数是,如果小于则条件为真。

(A<B)结果为真

<=

判断小于等于:检查左操作数的值是否小于等于右操作数是,如果小于等于则条件为真。

(A<=B)结果为真

 5.逻辑运算

关于关系的复合运算,返回布尔值。包括:逻辑反!,逻辑与&,逻辑或|,逻辑异或^。

逻辑运算实例(假设布尔变量A为真,B为假):

操作符

描述

例子

!

逻辑反:用来反转操作数的逻辑状态。如果条件为true,则逻辑非运算符将得到false。

(!B)为真

&

逻辑与:当且仅当两个操作数都为真,条件才为真。(全真才真)

(A&B)为假

|

逻辑或:两个操作数任何一个为真时,条件都为真。(全假才假)

(A|B)为真

^

逻辑异或:两个操作数相同为假,不同为真。

(A^B)为真

附:

1.逻辑短路与,与逻辑与不同的是,一旦判断前一关系结果为假,则后续关系不做判断,直接返回结果为假。
2.逻辑短路或,与逻辑或不同的是,一旦判断前一关系结果为真,则后续关系不做判断,直接返回结果为真。

6.赋值运算

自增一++,自减一--,赋值=,自乘*=,自除/=,自余%=,自加+=,自减-=,自与&=,......

赋值运算实例:

操作符

描述

例子

++

自增一,操作数的值加1

当B=20时,B++=21

--

自减一,操作的值减1

当B=20时,B--=19

=

简单的赋值运算符,将右操作数的值赋给左侧操作数

C=A+B将把A+B得到的值赋给C

+ =

加和赋值操作符,它把左操作数和右操作数相加赋值给左操作数

C+=A等价于C=C+A

- =

减和赋值操作符,它把左操作数和右操作数相减赋值给左操作数

C-=A等价于C=C-A

* =

乘和赋值操作符,它把左操作数和右操作数相乘赋值给左操作数

C*=A等价于C=C*A

/ =

除和赋值操作符,它把左操作数和右操作数相除赋值给左操作数

C/=A等价于C=C/A

%=

取模和赋值操作符,它把左操作数和右操作数取模后赋值给左操作数

C%=A等价于C=C%A

<< =

左移位赋值运算符

C<<=2等价于C=C<<2

>> =

右移位赋值运算符

C>>=2等价于C=C>>2

&=

按位与赋值运算符

C&=2等价于C=C&2

^ =

按位异或赋值操作符

C^=2等价于C= C^2

| =

按位或赋值操作符

C|=2等价于C=C|2

7.条件运算符

逻辑判断“?:”,用法:变量 x = (表达式) ? value if true : value if false ,逻辑判断?值1:值2,作用是判断逻辑是真还是假,如果是真则返回值1,否则返回值2。

例如(1>2)?3:4,因1>2为假,所以返回4,即(1>2)?3:4的结果为4。

附:Java运算符优先级

当多个运算符出现在一个表达式中,会涉及到运算的优先级别的问题,在一个多运算符的表达式中,运算级别的不同会导致结果差别很大。

顺序:算术→位运算→字符串运算→关系运算→逻辑运算→赋值运算

算术:正号负号>乘除余>加减;

关系运算:并列

逻辑:反>与>或/逻辑短路或>逻辑异或

赋值:自增自减>赋值、自乘、自除……

另外,要优先运算哪个,可以用()小括号括起来。

Java基本运算符的更多相关文章

  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. 与众不同 windows phone (43) - 8.0 相机和照片: 镜头的可扩展性, 图片的可扩展性, 图片的自动上传扩展

    [源码下载] 与众不同 windows phone (43) - 8.0 相机和照片: 镜头的可扩展性, 图片的可扩展性, 图片的自动上传扩展 作者:webabcd 介绍与众不同 windows ph ...

  2. 重大发现Discuz DB层跨库映射关系表名前缀BUG

    本文更新:http://www.cnblogs.com/x3d/p/3916198.html 场景: 在Discuz中创建Table模型,但该Table所在库与Discuz不在同一个库. Discuz ...

  3. iOS UITableview

    1. UITableView //去除tableviews的点击效果 cell.selectionStyle = UITableViewCellSelectionStyleNone;    //隐藏t ...

  4. 优雅输出Javascript从Chrome浏览器

            一般前端Web开发好的App中js脚本文件,为了节约流量,都会做最小化,甚至合并压缩处理.但在对于需要Debug已处理过Javascript文件就不太方便了,可读性太差了. 使用Goo ...

  5. [JS]东方财富网财经数据汇总代码示例

    把握全球金融状况 一个页面看全球金融,感觉不错 再加上以前做的,读取显示 新浪7*24财经直播数据页面 那看得就更舒服了 下面是 新浪7*24财经直播数据 代码地址: http://www.cnblo ...

  6. 聊聊Function的bind()

    bind顾名思义,绑定. bind()方法会创建一个新函数,当这个新函数被调用时,它的this值是传递给bind()的第一个参数,它的参数是bind()的其他参数和其原本的参数. 上面这个定义最后一句 ...

  7. 【使用 DOM】使用 Window 对象

    1. 获取 Window 对象 可以用两种方式获得Window对象.正规的HTML5方式是在Document对象上使用defaultView属性.另一种是使用所有浏览器都支持的全局变量window . ...

  8. 维翔主机asp主机使用遇到的问题及解决方案总结

    1.数据库配置 在这里,我们会发现,红色圈起来的部分"Webadmin"处点击之后会报错,这是因为,数据库管理工具没有进行域名解析,需要在域名购买商处添加一个域名解析,mssql, ...

  9. R语言学习笔记:日期处理

    1.取出当前日期 Sys.Date() [1] "2014-10-29" date()  #注意:这种方法返回的是字符串类型 [1] "Wed Oct 29 20:36: ...

  10. 在Android Studio中用Gradle添加Robolectric

    我们用Robolectric测试的话需要在gradle中进行配置,国内的详细教程太过简易,而且很多是低版本下的配置方案.所以经过本人的仔细摸索,找到了现在高版本中的配置方案,主要还是参考了官网的配置教 ...