一、运算符和表达式

如果用汉字去解释表达式这三个字,可能得费点劲,所以呢我们先来说这个运算符。

学过数学的人都知道,数学中除去数字,然后就是运算符,什么加、减、乘、除,这都是运算符。不例外,Java中也给我们提供了很多的运算符,写法和数学中的很类似,例如:+(加)、-(减)、*(乘)、/(除),因为计算机本身的原因,乘号和除号用这俩玩意代替了,因为数学中的乘号和英文字母X冲突了,所以就改成这个,至于除号,是因为键盘上打不出来,就用的斜杠代替了。

当然了,我都说了Java给我们很多的运算符,肯定不止这几个,还有很多,继续举栗:

=(这个在Java中叫做赋值,不是数学中的等于)

++(两个加好,这个在Java中叫做自增,具体怎么用下面我会去说的)

.....

知道了运算符之后,我们就可以来说说表达式了,其实很简单,1+1 这个整体,就是一个表达式,表示的是1和1相加。

(没有想到吧,表达式就一句话解决了~~~)

二、有哪些表达式

Java中提供的表达式有很多,下面我会一一说明:

1.算数运算符

这个可以很好的理解了吧,就是加减乘除,用法和数学一样,不多解释。

2.赋值运算符

=

数学中的等于就是我们要说的赋值运算符,这个符号可以将等号右面的值,赋值给左面。举栗来说:

int i = 0 ;

这个就是这样去理解的:将0这个常量 赋值给 i 这个变量。(从右面往左面读,不要理解成定义一个变量让他等于0!!!)。

3.关系运算符

说到关系,肯定说的是两个东西之间的,具体这俩东西之间是什么关系。而这俩东西之间关系的运算符有几个:

>、<、>=、<=、==、!=

挨个解释

> 、<表示 大于、小于,学过数学的都知道这俩东西吧,3<4,4>3。

>=表示大于等于,比如 2 大于等于1,2大于等于2.。

<=表示小于等于,同上类似用法,就是概念不一样。

== 这个呢,才是Java中的等于,和=不一样,一定要知道,对于初学者老弄错!

!= 是的,没有看错,感叹号等于,这个是Java中的不等于,!感叹号代表的意思是非,也就是不的意思,和=组合起来就是不等于的意思。

4.位逻辑运算符

是的,Java中还有一种叫 位 运算的东西,我当年刚开始学的时候也是一脸蒙。但是好在理解了

开始介绍:位逻辑运算符是啥呢,我解释不清楚,可以百度百科一下,去看看专业人士对于这个名词的正解,我下面抄一段

java 表达式工具 java →表达式_三目运算符

这就是百度百科对位运算的解释,我就直接说这个运算符有那些吧。

& | ^ ,哈哈哈,就这三个符号

& 符号,代表的意思是和、与,你与我,你和我,我和你,就可以写成 “你&我”;

| 这个不是1 也不是英文中的L ,这个是一个符号,按住shift + 

java 表达式工具 java →表达式_三目运算符_02

我实在不好表示,就上面红框框里的,按住这俩,就可以打出来了。

这个表示或,举栗来说,选择题,四个答案,一个是对的,那么你选的要不是A、要不是B、要么就C、要么D,这个用Java的语言去表示是这样子滴:A|B|C|D 

^ 这个符号啊,你得在英文输入法中才能打出来,我反正是用中文不行,按住shift + 字母键盘上的 6 

java 表达式工具 java →表达式_异或运算_03

就可以打出来了。

这个符号的意思是异或,很多人肯定一下就懵逼了,异或是什么鬼?

简单举栗说一下:

1^1 这个运算完结果是 0

1^0 这个运算完结果是 1 

总结,异或符号左右两边的值相等的时候,结果是0,;不相等的时候是1,再来一个难一点的栗子,1100异或1010

1100

1010

0110

细不细很神奇啊?

5.逻辑运算符

这个和上面的位逻辑运算符很类似,有俩,一个是 &&,一个是||。

&& 两个  & 这个运算符代表的意思和 一个& 代表的意思一样,也表示 与、和的意思。

|| 和|  也是一样,都表示 或者

但是,谁吃饱了撑的 弄两套一样的运算符出来呢,他们肯定有不一样的地方!

是的,没有错,下面我们会去说这些东西的。

6.条件运算符

条件运算符就一个       ?:

这个东西也称为三目运算符,它呢并不是像前面那样连住串儿用的,而是分开的,我举个栗子来说你就明白了

eg:如果今天下雨?我就带伞:不带伞

看到了吧,是这么用的,理解起来就是这样子的

?左面写条件,如果今天下雨。

然后跟执行,如果下雨,就执行冒号左面的,我就带伞,如果不下雨就执行冒号右面的,不带伞。

 

先介绍一些,并不全,详细可以查看百度百科,Java语言运算符,里面有图有真相!

三、符号详解

1.&& & || |

先来说说这四个东西

&& 和 & 的意思是一样的,都表示与、和这个意思,不同的地方在于短路与不短路。

(3>4)&& (3<4)

就看这段表达式,3大于4是错误的,如果中间用&& 来执行,它在执行完成3>4这段表达式之后,就不往下执行了,也就是说不再去判断3是不是小于4了,这就是将后面3<4这个表达式短路了,这样做可以减少计算量,所以我们一般都用&&来进行判断。

&一般都是去做位运算的。例如,0x31 & 0x0f的结果为0x01。

第一位0 都一样所以输出0;第二位x也一样输出x;第三位一个是3,一个是0,输出0,最后一个1和f 输出1,所以答案是0x01。f代表15。

|| 和| 也是一样的道理。

2.++ -- 

这个东西啊,考试啊、面试啊,都有可能会去问,因为啊这个超级容易搞晕。

++ 这个东西表示自增,就是自己再加一个自己,但是写法有两种

int i = 1

i++;

++i;

你知道i++和++i有啥不一样吗,他们最后都是2,但是他们是有区别滴

i++是先操作后加1;

++i是先加1后操作;

直接上代码:

java 表达式工具 java →表达式_三目运算符_04

看图说话,首先是定义了一个i然后将1赋值给i,这个很简单,然后最经典的一步来了,再定义一个j,将i++赋值给j,上面我们说了,i是先操作,然后再加1,所以呢,先将1赋值给j,然后,自身加1,然后输出结果,果不其然,j=1,i=2。

java 表达式工具 java →表达式_Java运算符与表达式_05

然后看这个,定义j,然后将++i赋值给j,按照上面我们说的,++i是先加1后操作,那么就是先计算++i,得到2,然后将2赋值给j,输出j和i,果不其然,都是2。

这个一定要好好理解!!不然弄混了就不好玩了。

今天暂时弄这么多,缺了啥,少了啥我再来补充说明。点个小心心关注一下。