当前位置:网站首页 > Java教程 > 正文

java分符教程



“二哥,让我盲猜一下哈,运算符是不是指的就是加减乘除啊?”三妹的脸上泛着甜甜的笑容,我想她一定对提出的问题很有自信。

“是的,三妹。运算符在 Java 中占据着重要的位置,对程序的执行有着很大的帮助。除了常见的加减乘除,还有许多其他类型的运算符,来看下面这张思维导图。”

算术运算符除了最常见的加减乘除,还有一个取余的运算符,用于得到除法运算后的余数,来串代码感受下。

对于初学者来说,加法(+)、减法(-)、乘法(*)很好理解,但除法(/)和取余(%)会有一点点疑惑。在以往的认知里,10/3 是除不尽的,结果应该是 3....,而不应该是 3。相应的,余数也不应该是 1。这是为什么呢?

因为数字在程序中可以分为两种,一种是整型,一种是浮点型(不清楚的同学可以回头看看数据类型那篇),整型和整型的运算结果就是整型,不会出现浮点型。否则,就会出现浮点型。

需要注意的是,当浮点数除以 0 的时候,结果为 Infinity 或者 NaN。

Infinity 的中文意思是无穷大,NaN 的中文意思是这不是一个数字(Not a Number)。

当整数除以 0 的时候(),会抛出异常:

所以整数在进行除法运算时,需要先判断除数是否为 0,以免程序抛出异常。

算术运算符中还有两种特殊的运算符,自增运算符(++)和自减运算符(--),它们也叫做一元运算符,只有一个操作数。

一元运算符可以放在数字的前面或者后面,放在前面叫前自增(前自减),放在后面叫后自增(后自减)。

前自增和后自增是有区别的,拿 这个表达式来说(x = 10),它可以拆分为 ,所以表达式的结果为 。拿 这个表达式来说(x = 10),它可以拆分为 ,所以表达式的结果为 。

对于前自减和后自减来说,你可以自己试一把。

关系运算符用来比较两个操作数,返回结果为 true 或者 false。

来看示例:

在学习位运算符之前,需要先学习一下二进制,因为位运算符操作的不是整型数值(int、long、short、char、byte)本身,而是整型数值对应的二进制。

从程序的输出结果可以看得出来,60 的二进制是 0011 1100(用 0 补到 8 位),13 的二进制是 0000 1101。

PS:现代的二进制记数系统由戈特弗里德·威廉·莱布尼茨于 1679 年设计。莱布尼茨是德意志哲学家、数学家,历史上少见的通才。

来看示例:

对于初学者来说,位运算符无法从直观上去计算出结果,不像加减乘除那样。因为我们日常接触的都是十进制,位运算的时候需要先转成二进制,然后再计算出结果。

鉴于此,初学者在写代码的时候其实很少会用到位运算。对于编程高手来说,为了提高程序的性能,会在一些地方使用位运算。比如说,HashMap 在计算哈希值的时候:

如果对位运算一点都不懂的话,遇到这样的源码就很吃力。所以说,虽然位运算用的少,但还是要懂。

1)按位左移运算符:

等于 10 乘以 2 的 2 次方; 等于 10 乘以 2 的 3 次方。

2)按位右移运算符:

等于 10 除以 2 的 2 次方; 等于 20 除以 2 的 2 次方。

逻辑与运算符(&&):多个条件中只要有一个为 false 结果就为 false。

逻辑或运算符(||):多个条件只要有一个为 true 结果就为 true。

逻辑非运算符(!):用来反转条件的结果,如果条件为 true,则逻辑非运算符将得到 false。

单逻辑与运算符(&):很少用,因为不管第一个条件为 true 还是 false,依然会检查第二个。

单逻辑或运算符(|):也会检查第二个条件。

也就是说,& 和 | 性能不如 && 和 ||,但用法一样:

赋值操作符恐怕是 Java 中使用最频繁的操作符了,它就是把操作符右侧的值赋值给左侧的变量。来看示例:

不过在进行数值的赋值时,需要小点心,比如说下面这种情况:

编译器之所以提示错误,是因为 = 右侧的算术表达式默认为 int 类型,左侧是 short 类型的时候需要进行强转。

除此之外,还会有边界问题,比如说,两个非常大的 int 相乘,结果可能就超出了 int 的范围:

程序输出的结果为 -10000,这个答案很明显不是我们想要的结果,虽然可以通过右侧表达式强转 long 的方法解决:

但尽量不要这样做,结果非常大的时候,尽量提前使用相应的类型进行赋值。

三元运算符用于替代 if-else,可以使用一行代码完成条件判断的要求。来看示例:

如果 ? 前面的条件为 true,则结果为 : 前的值,否则为 : 后的值。

“好了,三妹,关于 Java 运算符就先说这么多吧,你是不是已经清楚了?”转动了一下僵硬的脖子后,我对三妹说。

“差不多,二哥,我需要写点 demo 练习会。”

本文全面介绍了Java运算符,包括算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符等。通过阅读本文,您将了解到Java运算符的分类、用法和优先级,以及如何在实际开发中灵活运用各类运算符提高编程效率。


GitHub 上标星 10000+ 的开源知识库《二哥的 Java 进阶之路》第一版 PDF 终于来了!包括Java基础语法、数组&字符串、OOP、集合框架、Java IO、异常处理、Java 新特性、网络编程、NIO、并发编程、JVM等等,共计 32 万余字,500+张手绘图,可以说是通俗易懂、风趣幽默……详情戳:太赞了,GitHub 上标星 10000+ 的 Java 教程

微信搜 沉默王二 或扫描下方二维码关注二哥的原创公众号沉默王二,回复 222 即可免费领取。

  • 上一篇: java异常问题教程
  • 下一篇: java教程365
  • 版权声明


    相关文章:

  • java异常问题教程2024-12-14 22:42:03
  • 盾构机教程java2024-12-14 22:42:03
  • java 开发vr教程2024-12-14 22:42:03
  • java教程免费课件2024-12-14 22:42:03
  • java教程阿旭2024-12-14 22:42:03
  • java教程3652024-12-14 22:42:03
  • java android视频教程2024-12-14 22:42:03
  • java教程入门教程2024-12-14 22:42:03
  • java输入字符串教程2024-12-14 22:42:03
  • java直装教程2024-12-14 22:42:03