【JAVA SE基础篇】9.运算符的分类与内容

1.运算符的分类

1.算术运算符:+(加法)、-(减法)、*(乘法)、/(除法)、%(取模/取余)、++(自增)、--(自减)

2.赋值运算符:=(赋值)、+=(加等)、-=(减等)、*=(乘等)、/=(除等)、%=(模等/取余等)

3.关系运算符:>(大于)、<(小于)、>=(大于等于)、<=(小于等于)、==(等于)、!=(不等于)、instanceof(对象是否是类的实例)

4.逻辑运算符:&&(短路与)、||(短路或)、^(异或)、&(逻辑与)、|(逻辑或)、!(逻辑非)

5.位运算符:&(按位与)、|(按位或)、^(按位异或)、~(取反)、>>(按位右移)、<<(按位左移)

6.其他运算符:?:(条件运算符)、+(字符串连接符)

 

2.各类运算符详解

1.算术运算

算数运算符分一元运算符(一个操作数)和二元运算符(两个操作数)

二元运算符:+(加法)、-(减法)、*(乘法)、/(除法)、%(取模/取余)

如果整数进行运算:有一个操作数是long型,那么结果就是long型。操作数没有long,结果就是int,不管其中哪个操作数是byte还是short还是int

如果是浮点数进行运算:只要有一个是double型,结果就是double型。只有两个操作数都是float型时,结果才是float型。

(关于类型转换后面会单独讲,了解这两个即可)

一元运算符:

a++和++a的区别:

++a是指a先自身加1,a的值变为a+1,再进行运算,输出结果a+1,此时a的值是a+1。

a++是指先运算,输出结果为a,a自身加1,a的值变为a+1,此时a的值是a+1

int a=3;
int b=++a;
此时输出ab:a的值是4,b的值是4

int a=3;
int b=a++;
此时输出ab:a的值是4,b的值是3

2.赋值运算符:

=(赋值)用法:讲等号右边的操作数赋值给左边

例:a=b  讲b的值赋给a,且b的值不变

+=(加等)、-=(减等)、*=(乘等)、/=(除等)、%=(模等/取余等)用法类似

例:

a+=b 相当于 a=a+b、a-=b 相当于 a=a-b、a*=b 相当于 a=a*b。。。。

int a=3;int b=4;a=a+b;等价于int a=3;int b=4; a=a+b;

输出结果a为7,b为4。

3.关系运算符:

所有的关系运算符输出结果只有true/false

=(赋值)是赋值运算符、==(等于)才是判断两个操作数是否相等的运算符

==(等于)、!=(不等于)适用于所有数据结构

>(大于)、<(小于)、>=(大于等于)、<=(小于等于)仅适用于byte、short、int、long、float、double、char

(instanceof暂时不用了解)

4.逻辑运算符:

逻辑运算符是用来操作布尔型(true/false)的运算符

同时^(异或)、&(逻辑与)、|(逻辑或)这三个也是位运算符

&(逻辑与):两个操作数同时为true,结果为true

|(逻辑或):两个操作数有一个为true,结果为true

&&(短路与):只要有一个为false,结果为false

||(短路或):只要有一个为true,结果为true

^(异或):两个操作数相同为false,不同为true

!(逻辑非):取反 例:!true的值为false

|(逻辑或)与||(短路或)区别:

“||”:   如果左边计算后的操作数为true,右边则不再执行,返回true;

“|”:前后两个操作数都会进行计算。也就是说:“|”不存在短路。

&(逻辑与)与&&(短路与)区别同上

例:

boolean c=1>2&&2>(3/0);
System.out.println(c);//不报错,不运行&&后面代码
boolean d=1>2&2>(3/0);
System.out.println(d);//报错,会运行&后面的代码

5.位运算符:

位运算符是将操作数转化位2进制后的操作(具体2进制有关内容自行学习)

&(按位与)、|(按位或)、^(按位异或)、~(取反):这四个运算符和逻辑运算符用法一致,只是将两个十进制变成转换为2进制后,每一位的逻辑运算后,再组成的新的二进制,最后转换为十进制

>>(按位右移)、<<(按位左移):这两个运算符,向左1位相当于操作数的乘2,向右1位相当于操作数除2取商

例:

int a=3*2*2;
int b=3<<2;
int c=12/2/2;
int d=12>>2;

a的值和b的值相等,c的值和d的值也相等

5.其他运算符:

+(字符串连接符):讲两个字符串来接起来,组成新的字符串

俩个操作数只要有一个是字符串类型,系统就会将另一个变成字符串再连接。

例:

System.out.println(3+4);//输出7

System.out.println(3+"4");//输出34

System.out.println(3+3+"4");//输出64 (第一个为算术运算符的加法,第二个为字符串连接符)

?:(条件运算符):

格式:x?y:z

其中x为布尔型表达式,如果x的值为true输出y的值,z的值为false输出z的值

例:

int score1=40;

int score2=80;

String reslut1=score1>60?"及格":"不及格";

String reslut2=score2>60?"及格":"不及格";

System.out.println(reslut1);//输出不及格

System.out.println(reslut2);//输出及格

 

posted @ 2020-05-09 19:57  CKuan  阅读(421)  评论(0编辑  收藏  举报