您的位置 首页 java

《程序猿入门系列》第三节:Java运算符

1. 算术运算符

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

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

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

表格中的例子中,变量 a 的值为5,变量 b 的值为3,变量 i 的值为1:

《程序猿入门系列》第三节:Java运算符

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

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

下面来看下代码吧!

《程序猿入门系列》第三节:Java运算符

《程序猿入门系列》第三节:Java运算符

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

2. 位运算符

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

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

《程序猿入门系列》第三节:Java运算符

下面来看看代码吧:

《程序猿入门系列》第三节:Java运算符

3 .逻辑运算符

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

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

《程序猿入门系列》第三节:Java运算符

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

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

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

下面来看看代码吧:

《程序猿入门系列》第三节:Java运算符

4. 赋值运算符

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

《程序猿入门系列》第三节:Java运算符

来看看代码吧:

《程序猿入门系列》第三节:Java运算符

结果:

《程序猿入门系列》第三节:Java运算符

5. 关系运算符

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

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

《程序猿入门系列》第三节:Java运算符

来看看下面的代码:

《程序猿入门系列》第三节:Java运算符

强调

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

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

例如:

《程序猿入门系列》第三节:Java运算符

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

《程序猿入门系列》第三节:Java运算符

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

来看下代码

《程序猿入门系列》第三节:Java运算符

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

《程序猿入门系列》第三节:Java运算符

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

来看下下面的代码:

《程序猿入门系列》第三节:Java运算符

6. 条件运算符

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

那有没有三目运算符呢?

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

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

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

例如:

《程序猿入门系列》第三节:Java运算符

例:

instanceof 运算符

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

instanceof运算符使用格式如下:

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

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

下面是一个例子:

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

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

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

资料非常全,java初级到高级都有,视频,电子书,面试宝典,简历模板,经典案例,源码分析。
目录 
框架 
视频及开发工具 #wechat_redirect
面试技巧及简历 #wechat_redirect
     */    


7.Java运算符优先级

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

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

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

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

文章来源:智云一二三科技

文章标题:《程序猿入门系列》第三节:Java运算符

文章地址:https://www.zhihuclub.com/169513.shtml

关于作者: 智云科技

热门文章

网站地图