一、运算符和表达式
如果用汉字去解释表达式这三个字,可能得费点劲,所以呢我们先来说这个运算符。
学过数学的人都知道,数学中除去数字,然后就是运算符,什么加、减、乘、除,这都是运算符。不例外,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中还有一种叫 位 运算的东西,我当年刚开始学的时候也是一脸蒙。但是好在理解了
开始介绍:位逻辑运算符是啥呢,我解释不清楚,可以百度百科一下,去看看专业人士对于这个名词的正解,我下面抄一段
这就是百度百科对位运算的解释,我就直接说这个运算符有那些吧。
& | ^ ,哈哈哈,就这三个符号
& 符号,代表的意思是和、与,你与我,你和我,我和你,就可以写成 “你&我”;
| 这个不是1 也不是英文中的L ,这个是一个符号,按住shift +
我实在不好表示,就上面红框框里的,按住这俩,就可以打出来了。
这个表示或,举栗来说,选择题,四个答案,一个是对的,那么你选的要不是A、要不是B、要么就C、要么D,这个用Java的语言去表示是这样子滴:A|B|C|D
^ 这个符号啊,你得在英文输入法中才能打出来,我反正是用中文不行,按住shift + 字母键盘上的 6
就可以打出来了。
这个符号的意思是异或,很多人肯定一下就懵逼了,异或是什么鬼?
简单举栗说一下:
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后操作;
直接上代码:
看图说话,首先是定义了一个i然后将1赋值给i,这个很简单,然后最经典的一步来了,再定义一个j,将i++赋值给j,上面我们说了,i是先操作,然后再加1,所以呢,先将1赋值给j,然后,自身加1,然后输出结果,果不其然,j=1,i=2。
然后看这个,定义j,然后将++i赋值给j,按照上面我们说的,++i是先加1后操作,那么就是先计算++i,得到2,然后将2赋值给j,输出j和i,果不其然,都是2。
这个一定要好好理解!!不然弄混了就不好玩了。
今天暂时弄这么多,缺了啥,少了啥我再来补充说明。点个小心心关注一下。