1 2 3 4

Study07:运算符

运算符

Java语言支持的运算符如下:

  • 算术运算符:+,-,*,/,%(取余/模运算),++(自增),--(自减)
  • 赋值运算符:=
  • 关系运算符:>,<,>=,<=,==(等于),!(不等于)=instanceof
  • 逻辑运算符:&&(与),||(或),!(非)
  • 位运算符:&,|,^,~,>>,<<,>>>(了解即可)
  • 条件运算符:?,:
  • 扩展赋值运算符:+=,-=,*=,/=

二元运算符

//二元运算符
int a = 10;
int b = 20;
int c = 30;
int d = 40;
double e1 = a/b;		//先运算再转换
double e2 = a/(double)b;//先转换再运算

System.out.println(a+b);
System.out.println(a-b);
System.out.println(a*b);
System.out.println(a/b);    //0.5 int类型则为0
System.out.println((double) a/b);
System.out.println(e1);
System.out.println(e2);
long a = 600000000000000L;
int b = 123;
short c = 10;
byte d = 8;
double e = 6.6;
double f = 600000000000000L;

System.out.println(a+b+c+d);    //Long  存在Long类型则返回Long
System.out.println(b+c+d);      //Int   不存在则返回Int
System.out.println(c+d);        //Int   byte、char、short三种类型参与运算时,先一律转换成int类型再进行运算
//如何判断(c+d)为什么类型,如下所示,强制转换为String类型,报错,查看报错说明
// System.out.println((String)(c+d));
System.out.println(a+b+c+d+e);  //Double 存在double类型则返回double类型
System.out.println(f);

自动类型转换(隐式类型转换):从小类型到大类型可以自动完成。类型的大小关系如下:

1

关系运算符

//关系运算符返回结果:    Ture/False      通过布尔值来表示
//常和if一起使用

int a = 10;
int b = 20;
int c = 21;

System.out.println(a>b);
System.out.println(a<b);
System.out.println(a==b);
System.out.println(a!=b);
System.out.println(c%a);    

一元运算符

//++    --  自增、自减   一元运算符

int a = 3;
System.out.println(a);
int b = a++;    //a++   a = a + 1   先赋值再a+1
System.out.println(a);
int c = ++a;    //++a   a = a + 1   a先+1再赋值
System.out.println(a);
int d = a--;    //a--   a = a - 1   先赋值再a-1
System.out.println(a);
int e = --a;    //--a   a = a - 1   先赋值再a-1
System.out.println(a);

System.out.println("=======================================================================");
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(d);
System.out.println(e);

System.out.println("=======================================================================");
//幂运算   2^3     2*2*2   = 8
//工具类Math
double pow1 = Math.pow(2,3);
double pow2 = Math.pow(3,2);
System.out.println(pow1);
System.out.println(pow2);

逻辑运算符

//  与(and)   或(or)   非(取反)
boolean a = true;
boolean b = false;

System.out.println("a && b:"+(a && b));         //逻辑与运算(&&):两个变量都为真则为真
System.out.println("a || b:"+(a || b));         //逻辑或运算(||):两个变量有一个为真则为真
System.out.println("! (a && b):"+! (a && b));   //真变假,假变真

System.out.println("===============================================================================");
//短路运算
int c = 5;
boolean d = (c<4)&&(c++<4);                     //前面为假,后面直接就不执行,c++未执行
System.out.println(c);
System.out.println(d);

位运算符

//位运算:
/*
A =     0011    1100
B =     0000    1101
---------------------------------------------------------------------
A & B = 0000    1100
A / B = 0011    1101
A ^ B = 0011    0001(相同则为0)
~B =    1111    0010
---------------------------------------------------------------------
位运算——效率高
2 * 8 = 16  2*2*2*2
<<(左移)  相当于*2
>>(右移)  相当于/2

0000  0000  0
0000  0001  1
0000  0010  2
0000  0100  4
0000  1000  8
0001  0000  16

//计算机组成原理
 */

System.out.println(2<<1);//2*2
System.out.println(2<<3);//2*2*2*2
System.out.println(3<<3);//3*2*2*2

扩展赋值运算符

//扩展赋值运算符:
int a = 10;
int b = 20;

a += b;     //a = a+b
System.out.println(a);
b += a;
System.out.println(b);


a -= b;     //a = a-b
b -= a;
System.out.println(a);
System.out.println(b);

字符串连接符

//字符串连接符    +       在+号两侧,只要出现了一个String类型就会转换成String类型
System.out.println(a);
System.out.println(b);
System.out.println(a+b);
System.out.println(""+a+b); //后面的a+b进行拼接
System.out.println(a+b+""); //先进行运算再转换成String类型

三元运算符

// x ? y : z
//如果x==ture,则结果为y,否则结果为z

int score = 88;
String type = score < 60 ? "不及格":"及格";  //必须掌握
//流程控制——if
System.out.println(type);

运算符优先级

优先级 运算符 简介 结合性
1 [ ] .( ) 方法调用,属性获取 从左向右
2 !、~、 ++、 -- 一元运算符 从右向左
3 * 、/ 、% 乘、除、取模(余数) 从左向右
4 + 、 - 加减法 从左向右
5 <<、 >>、 >>> 左位移、右位移、无符号右移 从左向右
6 < 、<= 、>、 >=、 instanceof 小于、小于等于、大于、大于等于, 对象类型判断是否属于同类型 从左向右
7 == 、!= 2个值是否相等,2个值是否不等于。 下面有详细的解释 从左向右
8 & 按位与 从左向右
9 ^ 按位异或 从左向右
10 | 按位或 从左向右
11 && 短路与 从左向右
12 || 短路或 从左向右
13 ?: 条件运算符 从右向左
14 =、 += 、-= 、*= 、/=、 %=、 &=、 |=、 ^=、 <、<= 、>、>= 、>>= 混合赋值运算符 从右向左
posted @ 2021-03-17 14:24  草帽将军一呆  阅读(45)  评论(0编辑  收藏  举报