【JAVA基础篇】运算符

一、表达式

表达式由运算符和操作数组成

例如: 5

num1

num1+num2

sum=num1+num2

二、运算符分类

算数运算符、赋值运算符、关系运算符、逻辑运算符、条件运算符、位运算符

三、算数运算符

 

四、赋值运算符

格式:变量=表达式

例如:int n=3;//将3赋值给变量n

注意:赋值运算符是从右往左运算!赋值运算符的左边不能是常量!

复合赋值运算符

 

五、关系运算符

比较运算符用于判断两个数据的大小,如大于
比较的结果是一个布尔值

六、逻辑运算符

短路运算符:&&和||,左边的表达式值可以确定结果时,就不再继续运算右边的表达式的值

七、条件运算符

Java中的条件运算符是三目运算符

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

八、位运算符

操作二进制位,&,|,<<、>>、>>>

九、运算符优先级

优先级

运算符

结合性

1

() [] .

从左到右

2

! +(正)  -(负) ~ ++ --

从右向左

3

* / %

从左向右

4

+(加) -(减)

从左向右

5

<< >> >>>

从左向右

6

< <= > >= instanceof

从左向右

7

==   !=

从左向右

8

&(按位与)

从左向右

9

^

从左向右

10

|

从左向右

11

&&

从左向右

12

||

从左向右

13

?:

从右向左

14

= += -= *= /= %= &= |= ^=  ~=  <<= >>=   >>>=

从右向左

ps:&、|、^这三个运算符在操作数分别是数值类型和布尔类型的时候,表示的含义分别是按位与、按位或、按位异或和逻辑与、逻辑或、逻辑异或。上面的表格我其实没有标识出来是按位还是逻辑,如果有大佬知道优先级的话麻烦在下方评论!

十、位运算符的使用

共同特性:先将操作数转换成二进制,然后按照二进制位做运算,移位运算符如果超出二进制位的部分丢弃

10.1、<<左移运算符

含义:使指定值的所有位都左移规定的次数

语法格式:value << num

规则:

  1. 低位补0
  2. 如果移动的位数超过了该类型的最大位数,那么编译器会对移动的位数取模。如对int型移动33位,实际上只移动了33-32=1位
  3. 当左移的运算数是byte 和short类型时,将自动把这些类型扩大为 int 型。

10.2、>>右移运算符

含义:使指定值的所有位都右移规定的次数

语法格式:value >> num

规则:

  1. 高位补符号位,即正数高位补0,负数高位补1
  2. 如果移动的位数超过了该类型的最大位数,那么编译器会对移动的位数取模。如对int型移动33位,实际上只移动了33-32=1位
  3. 当左移的运算数是byte 和short类型时,将自动把这些类型扩大为 int 型。

10.3、>>>无符号右移运算符

语法格式:value >>> num

规则:

  1. 忽视符号位,高位补0
  2. 当无符号右移的运算数是byte 和short类型时,将自动把这些类型扩大为 int 型。

10.4、示例代码

package org.cc.javase;
/*** 位运算符示例* @author cc**/
public class BitOperator {private static int a = 60;//0011 1100private static int b = 13;//0000 1101private static int c = -116;public static void main(String[] args) {//Integer.toBinaryString方法:若高位有连续的0,则高位不显示
//		yu(a,b);//两个正数做与运算
//		yu(a,c);//正负数做与运算,结果一定是一个正数
//		huo(a,b);//两个正数做或运算
//		yh(a,b);//两个正数做异或运算
//		qf(a);//正数做取反运算
//		yy(b,2);//正数右移两位
//		yy(c,2);//负数右移两位
//		zy(b,2);//正数左移两位
//		zy(c,2);//负数左移两位
//		yy1(c,2);//负数无符号右移两位}/*** & 与运算* @param a* @param b*/private static void yu(int a,int b){System.out.println("操作数a:"+complement0(a));System.out.println("操作数b:"+complement0(b));System.out.println("操作结果"+complement0(a&b));System.out.println(a&b);}/*** | 或运算* @param a* @param b*/private static void huo(int a,int b){System.out.println("操作数a:"+complement0(a));System.out.println("操作数b:"+complement0(b));System.out.println("操作结果:"+complement0(a|b));System.out.println(a|b);}/*** ^ 异或运算* @param a* @param b*/private static void yh(int a,int b){System.out.println("操作数a:"+complement0(a));System.out.println("操作数b:"+complement0(b));System.out.println("操作结果:"+complement0(a^b));System.out.println(a^b);}/*** ~ 取反* @param a*/private static void qf(int a){System.out.println("操作数a:"+complement0(a));System.out.println("操作结果:"+complement0(~a));System.out.println(~a);}/*** >> 带符号右移* @param a*/private static void yy(int a,int bitNum){System.out.println("操作数a:"+complement0(a));System.out.println("操作结果:"+complement0(a>>bitNum));System.out.println(a>>bitNum);}/*** << 带符号左移* @param a*/private static void zy(int a,int bitNum){System.out.println("操作数a:"+complement0(a));System.out.println("操作结果:"+complement0(a<<bitNum));System.out.println(a<<bitNum);}/*** >>> 不带符号右移* @param a*/private static void yy1(int a,int bitNum){System.out.println("操作数a:"+complement0(a));System.out.println("操作结果:"+complement0(a>>>bitNum));System.out.println(a>>>bitNum);}/** 将高位的0也显示出来 */private static String complement0(int number){String binaryStr = Integer.toBinaryString(number);StringBuffer sb = new StringBuffer();if(binaryStr.length()<32){int count = 32-binaryStr.length();for(int i=0;i<count;i++) sb.append("0");}return sb.append(binaryStr).toString();}}

 

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

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

相关文章

a4纸网页打印 table_打印模板不愁人,你还在打印单调的A4纸吗?

软件介绍早在几年前&#xff0c;社会上就已经开始了数字化、无纸化的推广&#xff0c;但是就算再怎么无纸化&#xff0c;纸张还是有它必要的存在&#xff0c;在工作、学习过程中&#xff0c;打印的需求也必不可少的。但是一般的打印都是比较平庸的&#xff0c;要做会议记录&…

上证指数30年k线图_技术预判2020:上证指数要突破3500点才会“井喷”

2019年的行情很快就要收官了&#xff0c;截止目前&#xff0c;上证指数今年的涨幅是20.5%&#xff0c;不过可能有部分投资者今年的收益率还没达到大盘指数的平均水平。不管怎样&#xff0c;今年很快就要翻篇了&#xff0c;关键是看2020年股市能不能迎来更好的行情了。而总结得失…

的优缺点_浅谈桉木家具的优缺点

家具现在的材质是有很多的&#xff0c;木质的&#xff0c;石材的&#xff0c;还有真空充气的&#xff0c;都是很不错的类型。桉木家具是现在很多人都喜欢的一种材质&#xff0c;但是很多人对桉木家具的优缺点不是很清楚&#xff0c;为了能够让大家更加清楚的了解桉木家具&#…

客户说发货慢怎么回复_女生微信说身体不舒服怎么回复关心她?

当你不在女生身边&#xff0c;女生微信给你说身体不舒服&#xff0c;肯定需要说点话来安慰她了。多喝热水肯定是不行了&#xff0c;一点用处都没有&#xff0c;还会让女生觉得你根本不重视她&#xff0c;是在敷衍她&#xff0c;那女生微信说身体不舒服怎么回复关心她呢&#xf…

【算法篇】八种内排序算法

常用的八种内排序算法分别是&#xff1a; 交换排序&#xff1a;冒泡排序、快速排序选择排序&#xff1a;简单选择排序、堆排序插入排序&#xff1a;直接插入排序、希尔排序归并排序基数排序 内排序巧记&#xff1a;选(选择)舰(简单选择)队(堆)的时候脚(交换)毛(冒泡)快(快速)&…

数据分析专题报告范文6篇_小学生看图写话范文:小熊玩跷跷板?(6篇),让孩子参考练习...

​范文01&#xff1a;小熊跷跷板一天&#xff0c;天气晴朗&#xff0c;胖乎乎的小熊和小白兔一起玩跷跷板。小熊一屁股坐在地上&#xff0c;小白兔说&#xff1a;“啊&#xff01;我有恐高症哇&#xff01;”小熊说&#xff1a;“我比你重&#xff0c;所以你没有办法把我翘起来…

win10环境安装使用svn客户端和服务端

一、下载安装包 安装包下载传送门http://subversion.apache.org/packages.html 无法下载的童鞋去百度云下载 链接&#xff1a;https://pan.baidu.com/s/1EuGohoZKIPmRvynp5-Subw 提取码&#xff1a;ohna 链接&#xff1a;https://pan.baidu.com/s/1EJrd5DzGCBE4rRfdhuno6Q …

所选元素非联通_非固化橡胶沥青防水涂料与耐根穿刺防水卷材(沥青基)施工要点...

目前&#xff0c;非固化复合耐根穿刺防水卷材在车库顶板的应用逐渐受到客户及用户的认可&#xff0c;也有不少慕名而来的防水从业者打电话来咨询此系统的应用情况及优势。下面就由小编来给大家系统介绍此应用系统的特点吧。01性能优势1.两种材料高度的相容性非固化橡胶沥青防水…

【Java中级篇】动态代理机制

要想搞明白动态代理之前&#xff0c;我们先来了解一下代理是什么意思&#xff0c;先来谈谈设计模式中的代理模式。 什么是代理模式&#xff08;Proxy&#xff09; 定义&#xff1a;给目标对象提供一个代理对象&#xff0c;并由代理对象控制对目标对象的引用。 在代理模式中&…

什么叫大数据人物画像_大数据时代,如何构建精准用户画像,直击精细化运营...

移动互联网时代&#xff0c;精细化运营逐渐成为企业发展的重要竞争力&#xff0c;“用户画像”的概念也应运而生。用户画像是指&#xff0c;在大数据时代&#xff0c;企业通过对海量数据信息进行清洗、聚类、分析&#xff0c;将数据抽象成标签&#xff0c;再利用这些标签将用户…

【Java中级篇】使用itextpdf生成PDF

我们可以发现很多求职网站都会将我们录入的信息来生成一个PDF简历文件。所以我这里提供了用itextpdf生成的PDF的代码。 一、步骤 1.1、使用Adobe Acrobat Pro工具编辑PDF模板 1.2、根据PDF模板文件路径创建一个PDFReader对象 1.3、创建一个输出流对象&#xff0c;用于存放生…

adb bugreport保存位置_adb 常用命令---日常提升效率

做为 Android 开发&#xff0c;怎么能不懂点 adb 命令呢&#xff1f;速看~adb 重置、断连的状况这里不说了&#xff0c;先来说一些直观的命令吧1、adb devices查看当前连接的设备如果当前正在连接着设备&#xff0c;那么就可以进行后续的操作了&#xff0c;如果没有&#xff0c…

jsp springmvc 视图解析器_Java面试题整理——SpringMVC

SpringMVC1、什么是SpringMVCSpring MVC是一个MVC的开源框架&#xff0c;Spring MVC Struts2spring&#xff0c;Spring MVC就相当于是Struts2加上Spring的整合&#xff0c;但是这里有一疑惑是Spring MVC和Spring是什么样的关系呢。Spring MVC是Spring的一个后续产品&#xff0…

采集标签_分流器(二):灵活分流能力,数据采集无忧

数据采集分析难怎么办&#xff1f;昨天和大家分享了数据采集分析的最佳助手——分流器的一些基础知识&#xff0c;回顾链接&#xff0c;今天继续和您分享第二篇&#xff0c;带您更深入地了解分流器的强大功能。业务难点在网络安全和数据可视化趋势推动下&#xff0c;企业安全分…

用友邮件撤回怎么操作_用户体验原则——“操作可控”

对于用户的误操作&#xff0c;提供二次确认或者撤销的功能&#xff0c;这样可提高用户的操作可控性。好设计应该是值得信任&#xff0c;也容易被相信的。在要求用户执行某一动作时&#xff0c;尽量帮他们理解为什么这个操作是必要的。每一步都需要借助诚实和清晰的表述来建立信…

蛋白结构建模与优化_最终幻想: 无中生有的蛋白质从头设计

作者简介: 刘源 北京大学化学与分子工程学院/力文所零.导读近几年&#xff0c;蛋白质结构预测领域连续取得重大突破。首先是【AlphaFold】&#xff0c;在可以充分利用共进化信息结合深度神经网络生成空间约束条件并降低相空间的搜索&#xff0c;极大地帮助了蛋白质的结构建模&a…

gcn在图像上的应用_每日摘要|基于CNN 特征的图像卷积网络识别杂草和作物

文章信息标题&#xff1a;CNN feature based graph convolutional network for weed and crop recognition in smart farming期刊&#xff1a;《 Computers and Electronics in Agriculture》第一单位&#xff1a;山东农业大学在线日期&#xff1a;2020-05-13Highlights1.提出了…

安卓超过两行就加省略号_基础标点符号使用规则详解—8.省略号

省略号省略号&#xff0c;是标点符号家族中的比较特殊的一个符号&#xff0c;它是由六个小圆点组成。省略号的用法不止省略文字的作用。它还有以下几种用法。1用法一(一)表示重复词语或列举的省略。例&#xff1a;1、果园里有桃树、梨树、杏树、枇杷树……真的是种类齐全。2、那…

kafka 脚本发送_Kafka笔记归纳(第五部分:一致性保证,消息重复消费场景及解决方式)...

写在开头&#xff1a;本章是Kafka学习归纳第五部分&#xff0c;着重于强调Kafka的事一致性保证&#xff0c;消息重复消费场景及解决方式&#xff0c;记录偏移量的主题&#xff0c;延时队列的知识点。文章内容输出来源&#xff1a;拉勾教育大数据高薪训练营。一致性保证水位标记…

eclipse debug 工程源码时出现source not found问题解决

问题描述&#xff1a;使用eclipse debug启动应用&#xff0c;并且打断点在工程的源码上面&#xff0c;提示source not found。 问题解决&#xff1a; 1、选中工程&#xff0c;右键Debug As》Debug Configurations 2、在Java Application下面选中需要debug的程序&#xff0c;然…