【JAVA知识点每日一练】 —— 运算符的那些事


         都说基础不牢地动山摇,还真是那么回事!别小看这运算符,每个语法中运算符扮演者举足轻重的角色,稍微没用对,那可就犯了大错误!

        接下来跟随小梦,迈着轻松且愉快的步伐一起看看运算符的那些事吧~


运算符的那些事

🌊Java 语言支持的运算符

💧算术运算符

💧赋值运算符 

💧扩展赋值运算符

💧关系运算符

💧逻辑运算符

💧条件运算符

🌊运算符的优先级别


🌊Java 语言支持的运算符

  • 算术运算符
+,-,*,/,%,++(自增),--(自减)
  • 赋值运算符 
=  
  • 扩展赋值运算符
+=,-=,*=,/=
  • 关系运算符
>,<,>=,<=,==,!=
  • 逻辑运算符
&,|,    &&,||,!,^
  • 条件运算符
 &,|,^,~ , >>,<<,>>>
  • 位运算符
?:

        前面看到了JAVA支持这么多的运算符,运算符用的秒能简化不少的代码!认真复习一波~


💧算术运算符

        /   除法运算符 表示两个数相除运算

        % 取余运算符 : 用来求余数的

public class TestOpe01{public static void main(String[] args){//打印结果:System.out.println(12/3);System.out.println(12%5);System.out.println(12/3.0);System.out.println(12%5.0);}
}

        + :表示正数,表示相加操作,进行字符串的拼接

public class Test03{public static void main(String[] args){//表示正数:System.out.println(+5);//5//相加操作:System.out.println(5+6);//11System.out.println(5+'6');//59//字符串的拼接://规则:+左右两侧的任意一侧有字符串,那么这个加号就是字符串拼接的作用,结果一定是字符串int num = 56;System.out.println("num="+num);//"num=56" ---> num=56System.out.println(5+6+"7");//11+"7"--->"117"  --->117System.out.println(5+'6'+"7");//59 +"7"--->"597" --->597System.out.println("5"+6+"7");//"56"+"7"  --->"567"--->567System.out.println("5"+'6'+"7");//"56"+"7"--->"567"--->567System.out.println("5"+'6'+'7');//"56"+'7'--->"567"---567}
}

        ++: ++单独使用的时候,无论放在前还是后,都是加1操作。参与到运算中的时候,看++在前还是在后,如果++在后:先运算,后加1。如果++在前,先加1,后运算。

int a = 5;
a++;//理解为:相当于  a=a+1 操作a = 5;
++a;//理解为:相当于  a=a+1 操作a = 5;
int m = a++ + 7;//先运算  m=a+7  再加1:  a = a+1a = 5;
int n = ++a + 7;//先加1  a=a+1  再运算:  n = a+7


💧赋值运算符

        =:将等号右侧的值赋给等号左侧

int a = 30;
int b = 50;

💧扩展赋值运算符

        a+=b  和  a=a+b  区别:

 a+=b    可读性稍差 编译效率高   底层自动进行类型转换

 a=a+b  可读性好  编译效率低   手动进行类型转换

        没想到小小运算符还有这等区别,别慌下面还有,我们接着看~        


💧关系运算符

                相信大家不管是学习中,还是工作中关系运算符的使用频率那是杠杠滴!小梦直接上代码带大家温习一遍,如有不清楚的请小伙伴们多练习练习~

//>,<,>=,<=,==,!=
//关系运算符最终结果:要么是true要么是false
System.out.println(5>11);//false
System.out.println(5<11);//true
System.out.println(5>=11);//false
System.out.println(5<=11);//true
System.out.println(5==11);//false
System.out.println(5!=11);//true
System.out.println((5<11)!=(9==12));//true

注意!关系运算符最终结果:要么是true要么是false 


💧逻辑运算符

        逻辑运算符:进行逻辑运算的,运算符左右连接的都是 布尔类型的操作数,最终表达式的结果是布尔值。要么是true,要么false。

        逻辑与 &:只要有一个操作数是false,那么结果一定是false

        短路与 &&:效率高一些,只要第一个表达式是false,那么第二个表达式就不用计算了,结果一定是false

       逻辑或 |:只要有一个操作数是true,那么结果一定是true

       短路或 ||:效率高一些,只要第一个表达式是true,那么第二个表达式就不用计算了,结果一定是true

      逻辑非 !相反结果

      逻辑异或 ^:两个操作数相同,结果为false,不相同,结果为true

// 逻辑与 &:只要有一个操作数是false,那么结果一定是false
System.out.println(true&true);
System.out.println(true&false);
System.out.println(false&false);
System.out.println(false&true);// 短路与 &&:效率高一些,只要第一个表达式是false,那么第二个表达式就不用计算了,结果一定是false
System.out.println(true&&true);
System.out.println(true&&false);
System.out.println(false&&false);
System.out.println(false&&true);// 逻辑或 |:只要有一个操作数是true,那么结果一定是true
System.out.println(true|true);
System.out.println(true|false);
System.out.println(false|false);
System.out.println(false|true);// 短路或 || :效率高一些,只要第一个表达式是true,那么第二个表达式就不用计算了,结果一定是true
System.out.println(true||true);
System.out.println(true||false);
System.out.println(false||false);
System.out.println(false||true);//逻辑非!:相反结果
System.out.println(!true);//false
System.out.println(!false);//true//逻辑异或^ :两个操作数相同,结果为false,不相同,结果为true
System.out.println(true^true);
System.out.println(true^false);
System.out.println(false^false);
System.out.println(false^true);

💧条件运算符

        三目运算符 格式:a?b:c

        其中a是一个布尔类型的表达式,返回结果要么是true要么false,通过a的结果决定最终表达式的结果

  •         如果a的结果是true,那么表达式最终结果为b
  •         如果a的结果是false,那么表达式最终结果为c

🌊运算符的优先级别

        在这里呢小梦提醒大家,不要可以区级运算符的优先级,我们要在实际运用中逐渐去掌握,水到渠成。其实实际中我们也不会去写一些非常复杂的表达式,怎么方便我们怎么写。

        优先级关系:赋值<三目<逻辑<关系<算术<单目


 文章对小伙伴们有帮助的话,请给小梦一个👍一个吧~  感谢家人们~        


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/438328.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ASP.NET Core管道深度剖析[共4篇]

在《管道是如何处理HTTP请求的&#xff1f;》中&#xff0c;我们对ASP.NET Core的请求处理管道的构成以及它对请求的处理流程进行了详细介绍&#xff0c;接下来我们需要了解的是这样一个管道是如何被构建起来的。这样一个管道由一个服务器和一个HttpApplication构成&#xff0c…

SQL为什么动不动就百行以K记?

发明SQL的初衷之一显然是为了降低人们实施数据查询计算的难度。SQL中用了不少类英语的词汇和语法&#xff0c;这是希望非技术人员也能掌握。确实&#xff0c;简单的SQL可以当作英语阅读&#xff0c;即使没有程序设计经验的人也能运用。 然而&#xff0c;面对稍稍复杂的查询计算…

深入理解happens-before和as-if-serial语义

本文大部分整理自《Java并发编程的艺术》&#xff0c;温故而知新&#xff0c;加深对基础的理解程度。下面可以和小编来一起学习下 概述 本文大部分整理自《Java并发编程的艺术》&#xff0c;温故而知新&#xff0c;加深对基础的理解程度。 指令序列的重排序 我们在编写代码…

开源SPL重新定义OLAP Server

OLAP&#xff08;Online Analytical Processing&#xff09;是指在线联机分析&#xff0c;基于数据查询计算并实时获得返回结果。日常业务中的报表、数据查询、多维分析等一切需要即时返回结果的数据查询任务都属于OLAP的范畴。对应的&#xff0c;行业内也有相应产品来满足这类…

平层、错层、跃层、复式、loft的区别是什么?

平层正如字面上的理解&#xff0c;是所有功能厅都在同一个水平面上。平时我们所见的户型&#xff0c;都是平层。错层室内各功能用房在不同的平面上&#xff0c;用2-4个台阶进行隔断。跃层是两层的住宅&#xff0c;在室内会设计一条楼梯连接上下两层&#xff0c;功能区会分开。复…

C#集合类型总结和性能分析

C#集合类型概述 集合是.NET FCL(Framework Class Library)中很重要的一部分。所有的集合类都继承自IEnumerable。集合类总体可分为一下几类&#xff1a;关联/非关联型集合&#xff0c;顺序/随机访问集合&#xff0c;顺序/无序集合&#xff0c;泛型/非泛型集合&#xff0c;线程…

Spring AOP(通知、连接点、切点、切面)

一、AOP术语 通知&#xff08;Advice&#xff09;   切面的工作被称为通知。通知定义了切面是什么以及何时使用。除了描述切面要完成的工作&#xff0c;通知还解决了何时执行这个工作的问题。 5种通知类型&#xff1a;前置通知&#xff08;Before&#xff09;&#xff1a;在…

C#中几种常用的集合的用法

集合:将一推数据类型相同的数据放入到一个容器内&#xff0c;该容器就是数组&#xff1a;内存中开辟的一连串空间。 非泛型集合 ArrayList集合&#xff1a; ArrayList是基于数组实现的&#xff0c;是一个动态数组&#xff0c;其容量能自动 增长 ArrayList的命名空间System.…

C#使用Redis的基本操作

一&#xff0c;引入dll 1.ServiceStack.Common.dll 2.ServiceStack.Interfaces.dll 3.ServiceStack.Redis.dll 4.ServiceStack.Text.dll 二&#xff0c;修改配置文件 在你的配置文件中加入如下的代码&#xff1a; <appSettings><add key"RedisPath" value…

Navicat将mysql表结构导成oracle表结构

1&#xff0c;选中对应的表右键逆向表到模型 2.点击右上角文件转换模型为 3.模型选择物理&#xff0c;数据库oracle&#xff0c;选择对应的版本 4.新弹出的模型点击右上角文件&#xff0c;导出sql 5.选择路径导出sql

程序员们的三高:高并发、高性能、高可用

你们知道淘宝&#xff0c;京东这些购物商场吗&#xff1f;他们到了双11&#xff0c;双12为什么能支持全国14亿人口同时购物下单呢&#xff0c;因为他们的程序做到了高并发、高性能、高可用。那么你对程序员的三高了解多少呢&#xff1f; 高并发 一. 高并发 高并发是现在互联…

char 和 varchar 的区别,数据库索引B+树

char 和 varchar 的区别 char(n) &#xff1a;固定长度&#xff0c;效率高&#xff1b;缺点&#xff1a;占用空间&#xff1b;存储固定长度的&#xff0c;使用 char 非常合适。 varchar(n) &#xff1a;可变长度&#xff0c;存储的值是每个值占用的字节再加上一个用来记录其长…

C#基础操作符详解

本节内容&#xff1a; 1.操作符概览&#xff1b; 2.操作符的本质&#xff1b; 3.操作符与运算顺序 4.操作符详解。 1.操作符概览&#xff1a; 操作符&#xff08;Operator&#xff09;也译为”运算符” 操作符是用来操作数据的&#xff0c;被操作符操作的数据称为操作数&a…

C# 有什么惊艳到你的地方?

作者&#xff1a;皮皮关 链接&#xff1a;https://www.zhihu.com/question/335137780/answer/786853293 来源&#xff1a;知乎 著作权归作者所有。商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处。 很多游戏开发者都是由于Unity而“被迫”使用C#的。但用过一段…

SqlServer学习之存储过程

前言&#xff1a;对于存储过程一直有一种抵触的心理&#xff0c;因为毕业至今所在的公司开发组都不是很规范&#xff0c;对于开发的一些注意事项并没有很多的规定&#xff0c;只是在知乎上查找相关知识的时候&#xff0c;看到很多人对于在程序里使用存储过程的不好之处都有很多…

中间件之RPC

一、RPC的定义 1、RPC(Romote Procedure Call)&#xff1a;远程过程调用&#xff0c;允许一台计算机程序远程调用另外一台计算机的子程序&#xff0c;不用关心底层网络通信 2、应用&#xff1a;分布式网络通信 3、在Socket的基础上实现&#xff0c;比socket需要更多资源 4、…

需求分析之UML用例图学习

用例图常用的三种关系浅析&#xff1a; &#xff08;一&#xff09;泛化(Inheritance) 通常理解的继承关系 &#xff08;二&#xff09;包含&#xff08;include&#xff09; 分解功能&#xff0c;一定包含的功能 &#xff08;三&#xff09;拓展(extend) 附加功能&#xff0c…

UML之用例图(use case)箭头方向

1、Association&#xff0c;无箭头&#xff0c;Actor连接UseCase即可&#xff1b; 2、DirectedAssocition&#xff0c;Actor连接UseCase&#xff0c;箭头由Actor指向UseCase&#xff08;角色指向用例&#xff09;&#xff1b; 3、Generalization&#xff0c;继承&#xff0c;…

UML-记忆技巧

箭头方向 UML箭头方向&#xff1a;从子类指向父类&#xff0c;读作继承自定义子类时需要通过extend关键字指定父类子类一定时知道父类定义的&#xff0c;但父类并不知道子类的定义 只有知道对方信息时才能指向对方 image.png 实现-继承|虚线-实现 空心三角箭头&#xff1…

国密算法SM2,SM3,SM4-java实现

SM2是国家密码管理局于2010年12月17日发布的椭圆曲线公钥密码算法&#xff0c;基于ECC。其签名速度与秘钥生成速度都快于RSA&#xff0c;非对称加密&#xff0c;该算法已公开 SM3是中华人民共和国政府采用的一种密码散列函数标准&#xff0c;由国家密码管理局于2010年12月17日…