从0开始学大数据-Java运算符(3)

发布时间:2020-06-05 19:26:32 作者:升sheng
来源:网络 阅读:761

我们从零开始学习大数据技术,从java基础,到Linux技术涉猎,再深入到大数据技术的Hadoop、Spark、Storm技术,最后到大数据企业平台的搭建,层层递进,由点到面!希望技术大牛能过来指导学习。


上一节了解Java基础语法,本节我们开始学习Java基础-运算符,将会围绕以下几个知识点进行展开学习:

  1. 算术运算符

  2. 赋值运算符

  3. 比较运算符

  4. 逻辑运算符

  5. 位运算符

  6. 三元运算符

PS:开始之前我们先针对上节数据类型中补充的几个小问题

 

一、数据类型中补充的几个小问题

1、byte值的问题

byte b1=127;

byte b2=(byte)128; //-128

byte b3=(byte)129//-127

byte b3=(byte)130; //-126

byte的范围:-128 ~ 127

128: 10000000

-128:10000000(这里的1即是符号位,也是数值位)


2、数据类型转化之默认转换(遵循从小到大转换)

byte,short,char ---int ---long---float---double

long:8个字节

float:4个字节

虽然是默认转换,但因为以下原因,long默认转换为float

a、它们底层的存储结构是不同的。

b、float表示的数据范围比long的范围大

3、Java语言中的字符char可以存储一个中文汉字吗,为什么呢?


二、运算符

从0开始学大数据-Java运算符(3)

运算符总览表


在我们数学中也会经常用到运算(加减乘除等),那在Java程序中也是经常要做一些运算操作都有哪些呢,那么先看一下以下针对运算和运算符的定义:

运算:是对常量和变量进行操作的过程成为运算

运算符:是对常量和变量进行操作的符号称为运算符

分类(6种):算术运算符,赋值运算符,比较运算符,逻辑运算符,位运算符,三目运算符

从0开始学大数据-Java运算符(3)

那么,我们现在对各类运算符逐一的进行了解


1、算术运算符


符号:

+,-,*,/,%,++,--

注意事项:

a、整数相除只能得到整数,如果想得到小数,必须把数据变换为浮点数类型

b、/ 获取的是除法操作的商,% 获取的是除法操作的余数

下面我们先编写程序代码执行看下效果

从0开始学大数据-Java运算符(3)



程序执行结果:



从0开始学大数据-Java运算符(3)


(1)++,--运算符的使用


A:单独使用:

B:参与运算使用:

C:作用:就是对变量进行自增或者自减。


程序举例:

从0开始学大数据-Java运算符(3)



放后面,程序打印出来的结果:

从0开始学大数据-Java运算符(3)



放前面,程序打印出来的结果

从0开始学大数据-Java运算符(3)



可见,我们前面总结的是对的。


接下来,我们进一步看一下+的用法(主要有三种):

    A:加法

    B:正号

    C:字符串的连接符

程序举例:

从0开始学大数据-Java运算符(3)



程序执行结果:

从0开始学大数据-Java运算符(3)



可见:

* 运算规则是从左到右做运算的,"hello"+'a'+1 ,系统会先识别到hello是一个字符串,则后面的加号就是作为字符串连接符使用,与字符a连接后,形成一个新的字符串,再拼接1。

* 同样的,在'a'+1+"hello"则是先运算'a'+1(这里的加号是作加法使用),再连接字符串hello.



2、赋值运算符


符号:

=,+=,-=,*=,/=,%=等


可以划分为以下两种:

基本的赋值运算符:=

扩展的赋值运算符:+=,-=,*=,/=,%=


程序举例:

从0开始学大数据-Java运算符(3)



程序执行结果:



从0开始学大数据-Java运算符(3)

思考题:

接下来,来思考两个问题,

判断上面两个代码有没有问题,如果有,哪里有问题?


编写程序代码验证下:

第一种:

从0开始学大数据-Java运算符(3)

程序执行结果:

从0开始学大数据-Java运算符(3)



注意:还记得,前面我们学的 short类型做运算的时候,默认是先转换成int类型,int类型占用4个字节数,short类型占用2个字节数,遵从从小到大的转换原则,所以本程序中s=s+1做运算会损失进度。


第二种:

从0开始学大数据-Java运算符(3)



程序执行结果:

从0开始学大数据-Java运算符(3)

可见,扩展的赋值运算符其实隐含了一个强制类型转换。



3、比较运算符


符号:

特点:

注意事项:


程序举例:

从0开始学大数据-Java运算符(3)



程序执行结果:

从0开始学大数据-Java运算符(3)



可见,比较运算符对应的结果是Boolean类型的



4、逻辑运算符


符号:

基本用法:

特殊用法:

特点:

表达式:

算术表达式:a + b

比较表达式:a == b

结论:

(1)& 逻辑与:有false则false

(2)| 逻辑或:有true则true

(3)  ^ 逻辑异或:相同为false,不同为true

    ^异或举例:

(4)  !逻辑非:非false则true,非true则false


编写以下程序对上述几种逻辑运算进行验证:


程序举例:

从0开始学大数据-Java运算符(3)

程序执行结果:

从0开始学大数据-Java运算符(3)



可见,我们的结论是正确的,逻辑运算符的基本用法也都讲完了,下面我们看看特殊用法。


程序举例(双与&& 用法):

从0开始学大数据-Java运算符(3)



程序执行结果:

从0开始学大数据-Java运算符(3)

可见,&&与&的区别?||与|的区别?

||与|就不再多做代码演示,可以自行尝试验证:

注意:开发中常用的逻辑运算符:


5、位运算符

符号:

注意:


案例:

通过下述案例,了解下位运算符的特点:

从0开始学大数据-Java运算符(3)



我们先分析下几条位运算符打印出来的结果:

分析: 因为是位运算,所以我们必须要把数据换算成二进制


3的二进制: 11

00000000 00000000 00000000 00000011

4的二进制:100

00000000 00000000 00000000 00000100

&位与运算:有0则0

00000000 00000000 00000000 00000011

        &   00000000 00000000 00000000 00000100‍

                ---------------------------------------------

00000000 00000000 00000000 00000000

结果是:0



|位或运算:有1则1

00000000 00000000 00000000 00000011

  |   00000000 00000000 00000000 00000100

-------------------------------------------------

00000000 00000000 00000000 00000111

结果是:7‍



^位异或运算:相同则0,不同则1

00000000 00000000 00000000 00000011

^   00000000 00000000 00000000 00000100

---------------------------------------------

00000000 00000000 00000000 00000111

结果是:7‍



~按位取反运算:0变1,1变0

     00000000 00000000 00000000 00000011

     ----------------------------------------------

~  11111111 11111111 11111111 11111100 (补码)‍



补码:11111111 11111111 11111100

反码:11111111 11111111 11111011

原码:10000000  0000000  00000100

结果是:-4‍


通过分析执行程序代码,可见我们的分析是正确的:

从0开始学大数据-Java运算符(3)



*另外,针对^还有以下特点:


程序举例:

从0开始学大数据-Java运算符(3)



执行结果如下:

从0开始学大数据-Java运算符(3)



可见,^异或运算可以用于两个数值对调的运算,建议自行编写如下代码做验证:

这个留给大家自己动手操作。


接下来,我们进一步看一下以下几种运算:

举例:

从0开始学大数据-Java运算符(3)



在执行运算之前,我们先做以下分析:

<<的移动:


首先,我们需要先计算出3的二进制:11

00000000 00000000 00000000 00000011

(00)00000000 00000000 00000000 00001100

--------------------------------------------------------

左移2位,结果为:12‍


>>的移动:


计算出24的二进制:11000

原码:10000000   00000000   00000000  00011000

反码:11111111  11111111    11111111  11100111

补码:11111111  11111111    11111111  11101000

1111111111  11111111   11111111   111010(00)

        右移2位,最高位补1,生成新的补码‍


然后再通过以下方式求出原码,就是我们需要的结果。  


补码:1111111111 11111111  11111111 111010

反码:1111111111 11111111  11111111 111001

原码:1000000000 00000000  00000000 000110

-----------------------------------------------------

结果是:-6‍


>>>的移动:


计算出24的二进制:11000

原码:10000000  00000000 00000000 00011000

反码:11111111  11111111 11111111 11100111

补码:11111111  11111111 11111111 11101000

0011111111 11111111 11111111 111010(00)

右移2位,最高位补0,生成新的补码‍

新的补码:0011111111  11111111 11111111 111010



程序的执行结果为:

从0开始学大数据-Java运算符(3)



可见,我们最终可以总结如下几点:


最后,还有一个三元运算符没讲,我们将放到下一节做专题说明。

往期文章:

从0开始学大数据-Java基础开篇(1)

从0开始学大数据-Java基础语法(2)

 

本人能力有限,如有不足,还望指正

感谢大家一如既往的支持

希望一起分享给更多的人

让大家一起学习大数据技术

从0开始学大数据-Java运算符(3)


推荐阅读:
  1. 从0开始学习Swift开发IOS应用(3)——TabBar
  2. 大数据开发需要学哪些项目 从哪里入手比较好

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

大数据 java ccie

上一篇:【cocos2d-x】瓷砖地图(TileMap)基础知识

下一篇:怎样制作高质量的SEO文章?

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》