java --操作符_java基础-操作符

浏览以下内容前,请点击并阅读

定义:操作符是一种能够对一个,两个或三个操作对象执行特定的操作,并返回一个结果的特定符号。

java中操作符的种类和优先级如下表所示,除了赋值运算,所有二元操作符运算顺序都是由左到右,优先级顺序由上往下依次降低:

操作符优先级

后缀

expr++ expr--

一元运算

++expr --expr +expr -expr ~ !

乘除

* / %

加减

+ -

位移

<< >> >>>

大小关系的

< > <= >= instanceof

等同性

== !=

按位与

&

按位非

^

按位或

|

逻辑与

&&

逻辑或

||

三元运算

? :

赋值

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

以下对各个操作符逐一说明:

赋值操作符

赋值操作符“=”是java中使用最多的操作符,很简单,它的作用就是将右侧的值赋值给左侧的操作对象。

还有一类赋值操作符,就是将算数操作符,位移操作符,位操作符与等号组合使用,包括+=, -=, *=, /= ,%= ,&=, ^=, |= ,<<= ,>>= ,>>>=他们的使用能简化代码。如

a+=1;//等同于

a=a+1;

算数操作符

算数操作符包括加,减,乘,除以及取余,如下表所示:

操作符描述

+

加操作符 (也可用于字符串的连接操作)

-

减操作符

*

乘操作符

/

除操作符

%

取余操作符

一元操作符

一元操作符只需要一个操作对象,包括如下操作符:

操作符描述

+

一元加操作符; 表明该数字位正数 (然而数字前没有符号也是正数)

-

一元减操作符; 使一个表达式变为负

++

增加操作符; 加1

--

减操作符; 减 1

!

逻辑操作符; 非

增加操作符可用于操作对象之前(前缀)也可用与操作对象之后(后缀),代码

int result=1;//输出为1

System.out.println(result++);//result已经增加1 ,输出为2

System.out.println(result);//--分割线

int result =1;//输出为2

System.out.println(++result);//result已经增加1 ,输出为2

System.out.println(result);

都会使得变量result增加1,唯一不同的是取值,前者(result++)取值为result 而后者(++result)取值为result+1。

相等与大小关系操作符

相等与大小关系操作符比较简单,要注意的是,判断是否相等,需要使用“==”而不是“=”,“=”是赋值操作符,整个表达式可以返回true或者false。

== 等于

!= 不等于

> 大于

>= 大于等于

< 小于

<= 小于等于

条件操作符(逻辑判断)

条件操作符的操作对象是两个布尔表达式,需要注意的是,他们有“短路”特性,即只有在必要时,才会对第二个表达式进行判断。

&& 条件与

|| 条件或

另外一个条件操作符是 ?:,它是一个三元操作符,作用相当于 if-then-else语句,用法如下所示:

boolean someCondition = true;//如果someCondition位true 则将value1赋值给result 否则将value2赋值给result

result = someCondition ? value1 : value2;

位级与位移操作符

位操作符的一般的使用比较少,但是要知道他们是存在的。

~ ,一元操作符,用于将操作对象反置,即将数字中所有的0变为1,把所有的1变为0。

>>,带符号,将一个位数字向右移动若干位,移动的位数由右侧的操作对象决定。

<

>>>,不带符号,将一个位数字向右移动若干位,移动的位数由右侧的操作对象决定。

& ,按位与

^,按位或非

| ,按位或

关于位移的使用,请参考:Java的位移操作

instanceof操作符

instanceof操作符用于判断左侧操作对象是否为右侧操作对象的实例,即如果左侧对象的类继承右侧的类,或者实现右侧的接口,则返回true:

//假设各个类的关系如下//class Child extends Parent implements MyInterface {}//interface MyInterface {}//则有:

classInstanceofDemo {public static voidmain(String[] args) {

Parent obj1= newParent();

Parent obj2= newChild();

System.out.println("obj1 instanceof Parent:"

+(obj1 instanceof Parent));

System.out.println("obj1 instanceof Child:"

+(obj1 instanceof Child));

System.out.println("obj1 instanceof MyInterface:"

+(obj1 instanceof MyInterface));

System.out.println("obj2 instanceof Parent:"

+(obj2 instanceof Parent));

System.out.println("obj2 instanceof Child:"

+(obj2 instanceof Child));

System.out.println("obj2 instanceof MyInterface:"

+(obj2 instanceof MyInterface));

}

}

上述代码输出为:

obj1 instanceof Parent: true

obj1 instanceof Child: false

obj1 instanceof MyInterface: false

obj2 instanceof Parent: true

obj2 instanceof Child: true

obj2 instanceof MyInterface: true

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值