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

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

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 {}
//则有:
class InstanceofDemo {
public static void main(String[] args) { Parent obj1 = new Parent();
Parent obj2 = new Child(); 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
												

java基础-操作符的更多相关文章

  1. 【JAVA面试题系列一】面试题总汇--JAVA基础部分

    JAVA基础 基础部分的顺序: 基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法 线程的语法,集合的语法,io 的语法,虚拟机方面的语法 每天几道,持续更新!! 1.一个". ...

  2. Java基础知识【下】( 转载)

    http://blog.csdn.net/silentbalanceyh/article/details/4608360 (最终还是决定重新写一份Java基础相关的内容,原来因为在写这一个章节的时候没 ...

  3. Java基础知识【上】(转载)

    http://blog.csdn.net/silentbalanceyh/article/details/4608272 (最终还是决定重新写一份Java基础相关的内容,原来因为在写这一个章节的时候没 ...

  4. java基础知识小总结【转】

    java基础知识小总结 在一个独立的原始程序里,只能有一个 public 类,却可以有许多 non-public 类.此外,若是在一个 Java 程序中没有一个类是 public,那么该 Java 程 ...

  5. Java基础应用

    Java集合类解析 List.Map.Set三个接口,存取元素时,各有什么特点? List 以特定次序来持有元素,可有重复元素.Set 无法拥有重复元素,内部排序.Map 保存key-value值,v ...

  6. Java基础常见英语词汇

    Java基础常见英语词汇(共70个) ['ɔbdʒekt] ['ɔ:rientid]导向的                             ['prəʊɡræmɪŋ]编程 OO: object ...

  7. 经典的Java基础面试题集锦

    经典的Java基础面试题集锦,欢迎收藏和分享. 问题:如果main方法被声明为private会怎样? 答案:能正常编译,但运行的时候会提示”main方法不是public的”. 问题:Java里的传引用 ...

  8. JAVA面试精选【Java基础第一部分】

    这个系列面试题主要目的是帮助你拿轻松到offer,同时还能开个好价钱.只要能够搞明白这个系列的绝大多数题目,在面试过程中,你就能轻轻松松的把面试官给忽悠了.对于那些正打算找工作JAVA软件开发工作的童 ...

  9. Java 基础之认识 Annotation

    Java 基础之认识 Annotation 从 JDK 1.5 版本开始,Java 语言提供了通用的 Annotation 功能,允许开发者定义和使用自己的 Annotation 类型.Annotat ...

随机推荐

  1. iPhone:4.7 5.5 4 3.5 对应的各个设备屏幕尺寸对应的像素及App上线信息

    Shared App Information You can access these properties from the App Details page in the App Informat ...

  2. 二、JavaScript语言--JS动画--JS动画效果

    运动框架实现思路: 1.速度(改变值:left , right , width , height , opacity) 2.缓冲运动 3.多物体运动 4.任意值改变 5.链式运动 6.同时运动 js用 ...

  3. VCC、VDD、VSS、 VEE 和VPP的区别

    在电子电路中,常可以看到VCC.VDD和VSS三种不同的符号,它们有什么区别呢? 一.解释 VCC:C=circuit 表示电路的意思, 即接入电路的电压: VDD:D=device 表示器件的意思, ...

  4. MyEclipse破解(MEGen.java)

    步骤: 1.将MEGen.java粘贴到任意web项目下,运行结果如下: 2.输入注册名:如sun,得到注册码: 3.Window  >>  Preference  >>  S ...

  5. 数据结构和算法 – 12.高级查找算法(下)

    哈希(散列)技术既是一种存储方法,也是一种查找方法.然而它与线性表.树.图等结构不同的是,前面几种结构,数据元素之间都存在某种逻辑关系,可以用连线图示表示出来,而哈希技术的记录之间不存在什么逻辑关系, ...

  6. MVC公开课 – 2.查询,删除 (2013-3-15广州传智MVC公开课)

    查询 /Controller/HomeController.cs /// <summary> /// 查询 文章 列表 /// </summary> /// <retur ...

  7. Implementing Navigation with UINavigationController

    Implementing Navigation with UINavigationController Problem You would like to allow your users to mo ...

  8. angularJS 二

    angularJS 2.1  ngForm <!DOCTYPE html> <html lang="zh-cn" ng-app> <head> ...

  9. jquery获取radio和select选中值

    //jquery 获取radio选中值 <input type="radio" name="c_type" value="a" > ...

  10. 第十九篇:提高SOUI应用程序渲染性能的三种武器

    SOUI是一套100%开源的基于DirectUI的客户端开发框架. 基于DirectUI设计的UI虽然UI呈现的效果可以很炫,但是相对于传统的win32应用程序中每个控件一个窗口句柄的形式,渲染效率是 ...