目录

 

1. 算术运算符

2. 位运算符

3 .逻辑运算符

4. 赋值运算符

5. 关系运算符 

6. 条件运算符

instanceof 运算符

7.Java运算符优先级


1. 算术运算符

     运算符顾名思义是一种符号,它是连接一个以上的操作符,实现某种功能的运算。

     我们就先来认识一下算术运算符吧!

     算术运算符用在数学表达式中,主要实现的是算术运算,如我们常见的加法减法乘法除法等。

     

java 中idle是什么 java中i--是什么意思_java基础

   其中,自增(++)和自减(--)运算符有两种写法:前缀(++i,--i)和后缀(i++,i--)。

         1.前缀自增自减法(++i,--i): 先进行自增或者自减运算,再进行表达式运算。

         2. 后缀自增自减法(i++,i--): 先进行表达式运算,再进行自增或者自减运算

下面来看下代码吧!

java 中idle是什么 java中i--是什么意思_Java_02

   大家可以发现++在变量的左边和右边,赋值得到的结果是不一样的,自减也是同样的道理。

2. 位运算符

     Java定义了位运算符,应用于整数类型(int),长整型(long),短整型(short),字符型(char),和字节型(byte)等类型。位运算时  先转换为二进制,再按位运算。

  表格中的例子中,变量a的值为60,变量b的值为13: 

java 中idle是什么 java中i--是什么意思_java基础_03

 下面来看看代码吧:

 

java 中idle是什么 java中i--是什么意思_操作数_04

 

3 .逻辑运算符

逻辑运算符是通过运算符将操作数或等式进行逻辑判断的语句。

表格中的例子中,假设布尔变量a为真,变量b为假:

java 中idle是什么 java中i--是什么意思_java 中idle是什么_05

我们可以通过“举手表决”来理解逻辑运算符

  • &&a同意了(值为true),c也同意了(值为true),那这件事情肯定就Ok了,所以 a && c就为ture;但是其中有一个人不同意,这件事情不行,也就是ac中,有一个为false, a && c就为false
  • ||:这件事情只要有一个人同意了,就可以了。所以ac中,有一个为true, a || c就为true
  • !:某个人原本同意,但非运算使他的结果变为相反的。atrue!a就是falseafalse!a就是true
  • 异或^:两个人的表决结果相同,就不通过;表决结果不同,才通过。所以ac中,一真一假结果为真,其他的都是假。

其中,当使用与逻辑运算符时,在两个操作数都为true时,结果才为true,但是当得到第一个操作为false时,其结果就必定是false,这时候就不会再判断第二个操作了。

下面来看看代码吧:

java 中idle是什么 java中i--是什么意思_操作数_06

 

4. 赋值运算符

赋值运算符是指将右边的操作数或运算结果赋值给左边的操作数。

java 中idle是什么 java中i--是什么意思_java基础_07

来看看代码吧:

java 中idle是什么 java中i--是什么意思_运算符_08

 结果:

java 中idle是什么 java中i--是什么意思_java 中idle是什么_09

5. 关系运算符 

关系运算符生成的是一个boolean(布尔)结果,它们计算的是操作数的值之间的关系。如果关系是真实的,结果为true(真),否则,结果为false(假)。

表格中的例子中,假设变量a为3,变量b为5:

java 中idle是什么 java中i--是什么意思_操作数_10

 来看看下面的代码:

 

java 中idle是什么 java中i--是什么意思_运算符_11

强调:

  • ==!=适用于所有的基本数据类型,其他关系运算符不适用于boolean,因为boolean值只有truefalse,比较没有任何意义。
  • ==!=也适用于所有对象,可以比较对象的引用是否相同。

引用:Java 中一切都是对象,但操作的标识符实际是对象的一个引用。

例如:

java 中idle是什么 java中i--是什么意思_Java_12

 在这里,创建的是引用,不是对象。创建引用后,一种安全的做法是对其进行初始化。

java 中idle是什么 java中i--是什么意思_操作数_13

通常采用new操作符生成一个新对象,然后将引用与该对象相关联。

来看下代码

java 中idle是什么 java中i--是什么意思_java 中idle是什么_14

在上面的代码中,各位可能认为输出的结果是什么呢,可能认为先是true再是false,因为两个对象是相同的。尽管两个对象的内容相同,但它们的引用却不相同,==!=比较的就是对象的引用,所以结果false再是true,如下:

java 中idle是什么 java中i--是什么意思_Java_15

而想要比较对象的内容是否相同时,Java 提供了一个特殊的方法equals(),它不适用于基本类型,基本类型使用==和!=进行比较。

来看下下面的代码:

 

java 中idle是什么 java中i--是什么意思_操作数_16

 

6. 条件运算符

同学们从上面我们可以发现,我们把各类运算符分为了单目运算符和双目运算符,这是什么意思呢?单目运算符(或一元运算符)是只需要有一个操作数的运算符,双目运算符(或二元运算符)是需要两个操作数的运算符。

那有没有三目运算符呢?

条件运算符?:便是唯一的一个三目运算符了。

语法形式:布尔表达式?表达式1 : 表达式2

运算过程:如果布尔表达式的值为true ,则返回 表达式1 的值,否则返回 表达式2 的值。

例如:

java 中idle是什么 java中i--是什么意思_java 中idle是什么_17

instanceof 运算符

该运算符用于操作对象实例,检查该对象是否是一个特定类型(类类型或接口类型)。

instanceof运算符使用格式如下:

( Object reference variable ) instanceof  (class/interface type)

如果运算符左侧变量所指的对象,是操作符右侧类或接口(class/interface)的一个对象,那么结果为真。

下面是一个例子:

String name = "James";boolean result = name instanceof String; // 由于 name 是 String 类型,所以返回真

如果被比较的对象兼容于右侧类型,该运算符仍然返回true。

7.Java运算符优先级

当多个运算符出现在一个表达式中,谁先谁后呢?这就涉及到运算符的优先级别的问题。在一个多运算符的表达式中,运算符优先级不同会导致最后得出的结果差别甚大。

例如,(1+3)+(3+2)*2,这个表达式如果按加号最优先计算,答案就是 18,如果按照乘号最优先,答案则是 14。

再如,x = 7 + 3 * 2;这里x得到13,而不是20,因为乘法运算符比加法运算符有较高的优先级,所以先计算3 * 2得到6,然后再加7。

下表中具有最高优先级的运算符在的表的最上面,最低优先级的在表的底部。

 

java 中idle是什么 java中i--是什么意思_运算符_18

欢迎关注微信公众号:Java的学习之路

里面资料非常全,从java初级到高级都有,视频,电子书,面试宝典,简历模板,经典案例,源码分析程序员故事以及解决bug方法。。。。应有尽有,可以推荐大家一起学习下!!