Java的各种运算符详解(兔C内功残篇)

目录

前篇 复习. 什么是字节?

1.运算符 && || !

2.运算符 & | ^

3.运算符 ~ << >>

4. + 号拼接的使用

5. (a +b )? x : y 三元运算符

6. ++ -- 在前在后。

7.总结


前篇 复习. 什么是字节?

这篇博文写的比较官方,不像以往,直接在在csdn中进行编辑描述,然后发送出去。
我开始采用在md 文档中进行编写,然后发送到csdn当中,因为我发现我上周发出去的博文,有570的浏览量。所以我想把兔C残篇开始进行积攒。让兔C残篇慢慢的发展完整。


这里我们要聊一下上周博文的精华内容,将上周博文的精华内容,再次进行描述贯通。


什么是字节?
说到字节,我们就需要阐述一下位,简单点就是科普一下基础知识。

是计算机内部数据,用于进行存储的最小单位。
简单点就是,计算机最小的存储单位叫位,也就是计算机存储数据的时候,它的存储单位,最小的叫做位,然后字节是数据处理的基本单位

位 : bit 表示,简写 就是 数字 然后加个 b
字节: 大写的 Bit表示,简写 就是 数字 然后加个 B

他们之间的换算单位是 1B = 8b,即 1字节 等于 8位

基于上述,我们可以总结为:
计算机存储数据时,最小的单位叫做 ,然后计算机进行数据处理时候,最基本的单位叫做 Bit
 


1.运算符 && || !

&&    与
使用此运算符时,设置的条件必须都成立为 true,结果才会为true
     即 都真皆真,一假都为假。

||    或
使用此运算符时,设置的条件只要有一个成立为 true,结果就会为true
     即 一假皆假,一真即真
     当然在使用此运算符的时候,设置的第一个条件为 false,之后的条件将不会进行运算。
     因为 一假皆假,结果已经产生

!    非
使用此运算符,可以进行判断时的取反设置。
     例如写一个if条件

     if(!作者:兔C){
          System.out.println("这不是那个小丑");
     }
    System.out.println("这就是那个笨蛋,就是他!");

如上述,如果你浏览到的博客内容的作者不是我,那么就会输出: 这不是那个小丑,
     而如果你浏览到的博客内容的作者正好是我,那么就会输出: 这就是那个笨蛋,就是他!
          
          这就是 与或非的简单讲解


2.运算符 & | ^

//下面我们继续聊 单& 单| 还有异或^
这三个运算符一般用于计算机进行计算时使用,我们都知道计算机是二进制的,当我们使用计算机输入十进制进行做数学计算的时候,计算机会把我们录入的十进制内容,转换为它自己的二进制方言。

     //其实在这里我们 借助&& || ! 进行帮助记忆
     
&
使用此运算符进行计算,如果条件都为true时候,才为true
                如果其中一个条件为false,那结果就为false
     
|
使用此运算符进行计算,如果其中一个条件为true,那结果就为true
               
^
使用异或符号,如果设置运算条件,在转换为二进制计算时,如果运算的位上的两数,相同,输出的就为0。
     如果运算时位上的数,不同,那输出的结果就为1。
     0代表 true, 1代表false时   ↓
     
     即 运算位上的数相同,结果为 0 true
                数不同,结果为 1 false


3.运算符 ~  <<   >>

~ 取反
~ 运算符,一般用于数学计算时,取相反的值
     ~0  结果便为 1
     ~1  结果便为相反的 0
     
<< 左移运算符
>> 右移运算符
     
下面我们将要说位移运算符,如果你碰到一个面试题,例如:
面试官问: 用计算机 计算 2 * 8 时,怎么样计算的更快
     我们都知道 2 * 8 就是  2 * 2 * 2 *2 的计算,我们都知道是 16
     那我们怎么能让计算机帮我们更快的算出结果呢。
     那这个时候就要用到 位移运算符 让转换为二进制后 位上的数移动即可。
 

     
//代码示例
     //让 number 变量,在计算机中以最快的方式,得出 *8 的结果
     int number = 2;
    //我们知道 2 * 8 = 2*2*2*2,那我们移动其二进制上的位数。
    System.out.printl(number << 3);   //自己输出代码,看其结果。

使用位运算符,计算机内部,将十进制转换为二进制所对应十进制数值的八个位上的值,直接移动位上的值,得到的结果,不同于 2 * 8,换成二进制之后,计算机在内部做的运算。

简单点说,就是直接移动了位上的值,不用计算机做计算了。在位上做了手脚。


4. + 号拼接的使用

初级程序员,面试时经常会碰到的问题,

    System.out.println("" + 10 +20); //结果?
    System.out.println(10 +20 + ""); //结果?

其实这个不难理解,字符串"" 字符串会先进行拼接,那拼接成字符串之后,结果就变成了1020.
     那字符串在后,数字在前,数字还是会进行计算的。拼接是这之后的事: 30 + " "


5. (a +b )? x : y 三元运算符

三元运算符不难理解,就是 ?之前 设置一个条件 然后: 前后定义两个结果,如果条件成立 就为: 前的结果,如果条件不成立,就为: 之后的结果
     
//示例: 获取三个数的最大值
     //我们先定义三个数值

    int numbeA = 10;
    int numberB =20;
    int numebrC =30;


//然后先比较其中的任意两个数,得出两个数的最大值

int numberTemp = (numberA > numberB) ? numberA : numberB;


//然后我们就会得出其中的最大值,并保存在 numberTemp 变量当中
//之后在用当前的最大值numberTemp变量去比较 还未参与到比较的变量

int numberMax = (numberTemp > numberC) ? numberTemp : numberC;

//最后我们直接进行输出numberMax,就知道了其中三个数的最大值

System.out.println("三个数中,最大数值的数是:" + numberMax);


6. ++ -- 在前在后。

//最后我们说 ++ 和 -- 运算符,以及运算符在前和在后的区别。

int number1 = 10;

System.out.println(number1++); //10
System.out.println(number1);  //11

//观察结果,然后我们在把++换到前面

int number2 =10;
System.out.println(++number2); //11
System.out.println(number2);  //11

//从中观察,我们便知道了 ++ 在前和在后的区别
//当 ++在变量后时,会在程序执行之后,才进行 ++ 这个动作,也就是在程序执行之后,才去计算。
//当 ++在变量前时,会在输出语句之前,进行 ++ 这个动作,也就是 同步程序执行时,一起执行。

//对于我总结的是否标准,是否可以这样理解,请大家浏览到博文的时候,在评论其进行讨论,我们一起学习,一起努力

//然后我们在换成 -- 的运算符,这次我不会注释上结果,请大家自行总结,
//然后以讲述给第三者的形式,输出在评论其,为我进行讲解

//--在后
int number3 = 10;

System.out.println(number3--); 
System.out.println(number3); 
//--在前
int number4 = 10;

System.out.println(--number4); 
System.out.println(number4); 


7.总结


最后,我想跟大家聊一下几个话题:

讨论一下关于博文的重要性。
我写博文,只是为了记录和总结。记录是以讲述的形式,发到博文上。为什么是以讲述的形式,因为学习过程中,不能只是输入,输出的过程中,才知道自己哪里会,哪里不会,给别人都讲不清楚,说明什么?自己不会怎么讲?


倒不是为了去给别人讲清楚,想要学习的更牢靠,就要讲述一下,看看自己会不会,如果能获得大家的评论,得到跟大家辩论的机会,那对自己的成长是非常有帮助的。这是我对于博文重要性的 自己的看法。

那为什么还要记录啊?
花点时间,整理一下知识很好,为什么发到CSDN上?
CSDN ,我对它的了解很少,不知道他到底是博客还是网站,到底什么是博客我也不知道,我只知道,不管是工作当中,还是学习当中,它更像是一个工具,我不管遇到什么样的问题,都会到上面去查。


我使用它的次数,多过于百度的次数,我百度的过程,也是为了更好的CSDN上找到所碰到问题的答案。


那么记录在CSDN上,积累自己的知识,在工作中,还是在生活学习中,遇到了把所学知识遗忘的问题,也能以更快的时间百度到最精准的问题。
因为是自己的问题,自己的总结,以经发送到自己的账号上。当然最为知道问题是什么?答案在哪找!

最后一个话题,兔C残篇。
我之前刷到过一个蔡志忠先生的视频,蔡志忠先生说,学习要跟对的人学,才能学习到更多的知识。就像学习不能跟妈妈学,因为那是妈妈,这里没有贬低妈妈的意思,因为妈妈很伟大,那为什么还不跟伟大的妈妈学呢。因为我们现在要学的东西不是妈妈的伟大。如果我们应该学习的东西没有学到,而学了妈妈的伟大,那对我们幼小的年龄还不成熟的羽翼,反而是种伤害,我们做不到妈妈的伟大。


所以我在学习Java这件事上的态度是漫长的,极度认真的。因为我知道自己的终点,我很认同蔡志忠先生的观点。所以我学习,跟我自己认为对的人学,而我把学习过程中,碰到的精华,都记录在兔C残篇中,积少成多,让兔C残篇,变成完篇,也是把自己的残缺,变成完整的知识体系的过程。
 

你可能感兴趣的:(JavaSE,java,c语言,蓝桥杯)