逻辑操作符符与按位操作符的这些知识,你必须要知道!

无论何时,都要保持足够的警惕性。比你聪明的人都在努力,再不动起来,我们就老了。欢迎大家扫描下方的二维码关注我的微信公众号,与我一起学习Java。 扫一扫,关注我 温故知新 上一节,我们讲了Java中的算术操作符、自增自减操作符以及关系操作符,并通过案例进行了相应的说明。请回答以下几个问题: +/-操作符在作为一元操作符时,它们的作用分别是什么? 假设有变量a,那么a++和++a,其含义有何不同? 关系操作符适用于所有基本数据类型吗? 请说说==和equals有什么异同。 更上一层楼 今天我们继续讲解Java中操作符的相关知识,主要涉及两块的内容: 逻辑操作符 按位操作符 逻辑操作符 逻辑操作符负责连接多个关系表达式,其能根据参数的逻辑关系,生成一个boolean值。逻辑操作符有与(&&)、或(||)、非(!)。“与”、“或”、“非”只能应用于boolean值,而不能将一个非布尔值当作布尔值在逻辑表达式中使用。 &&操作符表示所有的关系表达式都为true时才为true ||操作符表示只要有一个关系表达式为true就为true !操作符表示取当前的相反量 逻辑操作符混合使用时,可以使用括号()来确定优先级 public class LogicExp { public static void main(String [] args) { //&& 所有的关系表达式都为true时才为true System.out.println(5>3&&5>4); System.out.println(5>3&&5>6); //|| 只要有一个关系表达式为true就为true System.out.println(5>3||5>4); System.out.println(5>3||5>6); //! 取当前的相反量 System.out.println(5>3); System.out.println(!(5>3)); //混合使用逻辑操作符()内的表达式优先进行运算 System.out.println((5>6&&5>3) || 5>4); System.out.println(5>6 && (5>3||5>4)); } } //output //true //false //true //true //true //false //true //false &&、||操作符往往还有短路的作用,短路的作用体现在:比如说&&操作符,如果第一个表达式为false,那么它便不会去对第二个表达式进行运算。||操作符具有同样的特性,如果第一个表达式为true,那么它便不会去对第二个表达式进行运算。 public class LogicExp { public static void main(String [] args) { System.out.println("&&短路操作:"+(test3()&&test1())); System.out.println("====================================") System.out.println("||短路操作:"+(test1()||test2())); } public static test1() { System.out.println("5>3:"+(5>3)); return (5>3); } public static test2() { System.out.println("5>4:"+(5>4)); return (5>4); } public static test3() { System.out.println("5>6:"+(5>6)); return (5>6); } } //output //5>6:false //&&短路操作:false //==================================== //5>3:true //||短路操作:true 因此在写逻辑表达式的时候,把重要判断的条件表达式放在前面优先判断,可以减少不必要的运算,从而获得潜在的性能提升。 按位操作符 除了Java中的八种基本数据类型外,还有一个比这些基本数据类型还小的单位bit(位),如1 byte = 8 bit。按位操作符就是对这个二进制位进行操作。按位操作符会对两个参数中对应的位执行布尔(boolean)代数运算(因为二进制位只可能为0或者为1),并生成一个boolean结果。 按位操作符主要分为&(按位与)、|(按位或)、^(按位异或)、~(非)四种。 &(按位与):如果两个输入为都是1,则生成1,否则生成0。 假设输入值的二进制数是下列的输入值1和输入值2 输入值1:00011010 输入值2:00110011 => 比较后的结果是:00010010 |(按位或):只要两个输入位有一个为1,则生成1;只有两个输入位都是0的情况下才会生成0。 假设输入值的二进制数是下列的输入值1和输入值2 输入值1:00011010 输入值2:00110011 => 比较后的结果是:00111011 ^(按位异或):如果两个输出位有且只有一个为1,则生成1,否则生成0. 假设输入值的二进制数是下列的输入值1和输入值2 输入值1:00011010 输入值2:00110011 => 比较后的结果是:00101001 ~(非):属于一元操作符,只对一个操作数进行操作,取其相反值。如0的相反值是1。 假设输入值的二进制数是下列的输入值1 输入值1:00011010 => 取反后的结果是:11100101 对于boolean值而言,由于其作为一种单bit值,按位操作符具有与逻辑操作符相同的效果,只是其没有逻辑操作符的短路功能。 每日一结 今天主要讲解了逻辑操作符和按位操作符,对boolean类型而言,两种操作符具有大致相同的逻辑判断效果,但是也有一定的区别,这是我们需要谨记的地方。 而在使用逻辑操作符时,一定要记得,把优先级高的、更顶层的关系表达式放在前面,这样能够避免不必要的运算,从而一定程度上提高程序性能。 如果觉得我写的内容对你有帮助,欢迎关注我的微信公众号: 扫一扫,关注我 分类: Java 标签: Java学习之路, Java 好文要顶 关注我 收藏该文 Lurker潜行者 关注 - 1 粉丝 - 5 +加关注 1 1 « 上一篇:Java基础知识——算术操作符、自增自减、关系操作符,你真的了解吗? posted on 2019-03-07 12:47 Lurker潜行者 阅读(146) 评论(0) 编辑 收藏 刷新评论刷新页面返回顶部 注册用户登录后才能发表评论,请 登录 或 注册,访问网站首页。 【推荐】超50万C++/C#源码: 大型实时仿真HMI组态CAD\GIS图形源码! 【推荐】专业便捷的企业级代码托管服务 - Gitee 码云 【活动】2019开源技术盛宴(6.24~26上海世博中心) 相关博文: · Matlab的逻辑操作符 · shell逻辑操作符 · 逻辑操作符 · 逻辑操作符 · PHP逻辑操作符 最新新闻: · SpaceX载人龙飞船迎来最艰难挑战:进入大气层重返地球 · 华为起诉美政府律师阵容曝光:2家大所+1家精品强所 · 熊猫直播将关站:管理混乱或为主因 王思聪11月已撤出 · 微软Windows 10现已登陆8亿台设备 · 太空互联网能否连接下一个10亿人?| 银河航天徐鸣访谈 » 更多新闻... 公告 昵称:Lurker潜行者 园龄:5个月 粉丝:5 关注:1 +加关注 导航 博客园 首页 新随笔 联系 订阅订阅 管理 < 2019年3月 > 日 一 二 三 四 五 六 24 25 26 27 28 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 1 2 3 4 5 6 统计 随笔 - 24 文章 - 0 评论 - 0 引用 - 0 搜索 常用链接 我的随笔 我的评论 我的参与 最新评论 我的标签 我的标签 Java学习之路(9) Linux命令学习之路(8) Java(5) Spring(2) 其他(1) MarkDown(1) RabbitMQ(1) Redis学习(1) 随笔分类 Java(11) Linux(8) Mysql RabbitMQ(1) Redis(1) Spring Boot 辅助工具(2) 随笔档案 2019年3月 (3) 2019年2月 (9) 2018年11月 (2) 2018年10月 (2) 2018年9月 (8) 阅读排行榜 1. 《Java编程思想》读书笔记-基本规范、注释、static关键字、import关键字(248) 2. 《Java编程思想》读书笔记-第一个Java程序(164) 3. 逻辑操作符符与按位操作符的这些知识,你必须要知道!(146) 4. Linux命令学习之路——变更工作目录:cd(96) 5. 《Java编程思想》读书笔记-对象导论(69) 推荐排行榜 1. 逻辑操作符符与按位操作符的这些知识,你必须要知道!(1) 2. 《Java编程思想》读书笔记-第一个Java程序(1) Powered by: 博客园 Copyright ©https://www.cnblogs.com/lurker-yaojiang/p/10488895.html
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信