欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-05-01 20:22:25
1.运算符的分类 1.算术运算符:+(加法)、-(减法)、*(乘法)、/(除法)、%(取模/取余)、++(自增)、--(自减) 2.赋值运算符:=(赋值)、+=(加等)、-=(减等)、*=(乘等)、/=(除等)、%=(模等/取余等) 3.关系运算符:>(大于)、<(小于)、>=(大于等于)、<=(小 ......

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);//输出及格