您当前的位置:首页 > 电脑百科 > 程序开发 > 语言 > JAVA

零基础学习Java之运算符

时间:2019-12-05 14:09:41  来源:  作者:
「编程基础」零基础学习Java之运算符

 

学习计算机编程语言都会遇到运算符这一知识点,运算符这个知识点是教怎么运用编程语言进行最基本的数据处理,下面就讲一下在JAVA语言中运算符是怎么回事。

1、算术运算符:

基本上和C/C++语言中的一样;

加(+):计算两个数之和或者将较小的数据类型提升为int;

减(-):计算两个数的差或者转变数据的符号;

编译器会自动识别是两个数之间的计算还是其他。

比如:x = -a; x= a +b;

乘(*):计算两个数的积;

除(/):计算两个数之商。注意a/b,b不能为0,要不然编译不过;整数的除法如果除不尽会直接把小数部分抹掉而不是四舍五入。

取余(%):还叫取模,取的是两个数的余数。

自动递增/减(--、++):++a相当于a=a+1;注意这两个操作符分前缀(++a)和后缀(a++),前缀会先进行运算,再使用这个变量,后缀是先使用变量再进行计算;

比如:int a = 1;

println("a = " + ++a);//2;

println("a = " + a++);//2

上面打印出来都是2,第一个因为是前缀,所以先执行运算后打印a,第二个是先打印a再执行运算;

这个经常出现在面试题中,在实际项目中也经常用到。

2、关系运算符:

关系运算生成的是一个boolean结果;

大于(>),小于(<),大于等于(>=),小于等于(<=),等于(==),不等于(!=)。

在基本数据类型之间使用关系运算符很容易理解,就是比较两个数的大小关系,但是对于等于和不等于可以用在其他的数据类型(对象)之间,这个时候比较的是对象的内存地址是否一样,这里先不过多讲解,后面的文章在学习完类和对象之后会拿来和equals()方法放在一期讲。

3、逻辑运算符:

与(&&),或(||),非(!)生成的结果也是一个boolean值。

a&&b,a和b全为true时结果才是ture;

a||b,a或者b有一为true结果就是true;

这里a和b可能是两个boolean变量,也可能是两个结果为boolean的表达式。

注:说一下短路问题,这个在实际编程中也会遇到,短路是在进行逻辑运算时,如果通过前面的判断已经能够明确的知道整个表达式的值,就不会再进行后面表达式的逻辑判断。例如:表达式a || 表达式b || 表达式c 在知道表达式a是true时就已经能够知道整个表达式的值为true,所以表达式2和3 都不会再进行判断。

4、位运算符:

用来操作整数基本数据类型的每一个位,也就是把整数按照二进制进行计算。

int a = 50;

int b = 30;

System.out.println(Integer.toBinaryString(a));// 110010

System.out.println(Integer.toBinaryString(b));// 011110

System.out.println(Integer.toBinaryString(a & b));// 010010

System.out.println(Integer.toBinaryString(a | b));// 111110

System.out.println(Integer.toBinaryString(a ^ b));// 101100

System.out.println(Integer.toBinaryString(a << 2));// 11001000

System.out.println(Integer.toBinaryString(a >> 2));// 1100

&按位与操作符,当且仅当两个操作数都为1时结果才为1。

|按位或操作符,只要两个操作数的某一位是1结果就为1。

^按位异或操作符,两个操作数不相同时则结果为1。

〜按位补运算符翻转操作数的每一位,0翻转为1,1翻转为0。

<< 按位左移运算符。左操作数按位左移右操作数指定的位数,低位补0。左移几位等于乘2的几次幂。

>> 按位右移运算符。左操作数按位右移右操作数指定的位数,高位补0或者1,取决于操作数正负,正则补0,负则补1。右移几位等于除2的几次幂。

>>> 按位右移补零操作符(无符号右移)。左操作数的值按右操作数指定的位数右移,移动得到的空位以0填充。

5.三元运算符:

三元操作符也叫条件操作符。表达式如下:

boolean-expression ? value0 : value1;

如果boolean-expression 是true则就计算value0,并且作为整个表达式的值返回,如果为false则计算value1,并作为结果返回。

6.关于优先级:

网上流传最多的是下面的口诀:

单目乘除为关系,逻辑三目后赋值。

单目:单目运算符+ –(负数) ++ -- 等

乘除:算数单目运算符* / % + -

为:位移单目运算符<< >>

关系:关系单目运算符> < >= <= == !=

逻辑:逻辑单目运算符&& || & | ^

三目:三目单目运算符A > B ? X : Y

后:无意义,仅仅为了凑字数

赋值:赋值=

在实际工作中写代码尽量都加上括号,用括号来区分哪个优先,还有就是避免写太长的运算符表达式。专业的代码是美观,易懂的,谁也不会单纯死记这些优先级,除非哪个变态面试官出这样的无聊题目。

以上就是Java语言中关于运算符的讲解,重在理解。



Tags:Java 运算符   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
学习计算机编程语言都会遇到运算符这一知识点,运算符这个知识点是教怎么运用编程语言进行最基本的数据处理,下面就讲一下在Java语言中运算符是怎么回事。1、算术运算符:基本上...【详细内容】
2019-12-05  Tags: Java 运算符  点击:(62)  评论:(0)  加入收藏
▌简易百科推荐
面向对象的特征之一封装 面向对象的特征之二继承 方法重写(override/overWrite) 方法的重载(overload)和重写(override)的区别: 面向对象特征之三:多态 Instanceof关键字...【详细内容】
2021-12-28  顶顶架构师    Tags:面向对象   点击:(2)  评论:(0)  加入收藏
一、Redis使用过程中一些小的注意点1、不要把Redis当成数据库来使用二、Arrays.asList常见失误需求:把数组转成list集合去处理。方法:Arrays.asList 或者 Java8的stream流式处...【详细内容】
2021-12-27  CF07    Tags:Java   点击:(3)  评论:(0)  加入收藏
文章目录 如何理解面向对象编程? JDK 和 JRE 有什么区别? 如何理解Java中封装,继承、多态特性? 如何理解Java中的字节码对象? 你是如何理解Java中的泛型的? 说说泛型应用...【详细内容】
2021-12-24  Java架构师之路    Tags:JAVA   点击:(5)  评论:(0)  加入收藏
大家好!我是老码农,一个喜欢技术、爱分享的同学,从今天开始和大家持续分享JVM调优方面的经验。JVM调优是个大话题,涉及的知识点很庞大 Java内存模型 垃圾回收机制 各种工具使用 ...【详细内容】
2021-12-23  小码匠和老码农    Tags:JVM调优   点击:(12)  评论:(0)  加入收藏
前言JDBC访问Postgresql的jsonb类型字段当然可以使用Postgresql jdbc驱动中提供的PGobject,但是这样在需要兼容多种数据库的系统开发中显得不那么通用,需要特殊处理。本文介绍...【详细内容】
2021-12-23  dingle    Tags:JDBC   点击:(13)  评论:(0)  加入收藏
Java与Lua相互调用案例比较少,因此项目使用需要做详细的性能测试,本内容只做粗略测试。目前已完成初版Lua-Java调用框架开发,后期有时间准备把框架进行抽象,并开源出来,感兴趣的...【详细内容】
2021-12-23  JAVA小白    Tags:Java   点击:(11)  评论:(0)  加入收藏
Java从版本5开始,在 java.util.concurrent.locks包内给我们提供了除了synchronized关键字以外的几个新的锁功能的实现,ReentrantLock就是其中的一个。但是这并不意味着我们可...【详细内容】
2021-12-17  小西学JAVA    Tags:JAVA并发   点击:(11)  评论:(0)  加入收藏
一、概述final是Java关键字中最常见之一,表示“最终的,不可更改”之意,在Java中也正是这个意思。有final修饰的内容,就会变得与众不同,它们会变成终极存在,其内容成为固定的存在。...【详细内容】
2021-12-15  唯一浩哥    Tags:Java基础   点击:(17)  评论:(0)  加入收藏
1、问题描述关于java中的日志管理logback,去年写过关于logback介绍的文章,这次项目中又优化了下,记录下,希望能帮到需要的朋友。2、解决方案这次其实是碰到了一个问题,一般的情况...【详细内容】
2021-12-15  软件老王    Tags:logback   点击:(19)  评论:(0)  加入收藏
本篇文章我们以AtomicInteger为例子,主要讲解下CAS(Compare And Swap)功能是如何在AtomicInteger中使用的,以及提供CAS功能的Unsafe对象。我们先从一个例子开始吧。假设现在我们...【详细内容】
2021-12-14  小西学JAVA    Tags:JAVA   点击:(22)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条