java中的运算符
2021-03-04 13:29
标签:als demo 表达 com 支持 += static -- 连接符 Java 语言中运算符的优先级共分为 14 级,其中 1 级最高,14 级最低。在同一个表达式中运算符优先级高的先执行。下面列出了所有的运算符的优先级以及结合性。 java中的运算符 标签:als demo 表达 com 支持 += static -- 连接符 原文地址:https://www.cnblogs.com/Victor0118/p/14349262.html运算符
Java语言支持如下运算符
优先级
优先级
运算符
结合性
1
()、[]、{}
从左向右
2
!、+、-、~、++、--
从右向左
3
*、/、%
从左向右
4
+、-
从左向右
5
?、?、>>>
从左向右
6
、>=、instanceof
从左向右
7
==、!=
从左向右
8
&
从左向右
9
^
从左向右
10
|
从左向右
11
&&
从左向右
12
||
从左向右
13
?:
从右向左
14
=、+=、-=、*=、/=、&=、|=、^=、~=、?=、?=、>>>=
从右向左
一元运算符
public class Demo04 {
public static void main(String[] args) {
//++ -- 自增,自减 一元运算符
int a=3;
int b=a++;//执行完代码后,先给b赋值,再自增
//a++ a=a+1;
System.out.println(a);//4
int c=++a;//执行完代码前,先自增,再给c赋值
System.out.println(a);//5
System.out.println(b);//3
System.out.println(c);//5
//幂运算 2^3 2*2*2 = 8; 很多运算会使用工具类来操作
double pow = Math.pow(2,3);
System.out.println(pow);
}
}
二元运算符
public class Demo01 {
public static void main(String[] args) {
int a=10;
int b=20;
System.out.println(a+b);
System.out.println(a-b);
System.out.println(a*b);
System.out.println(a/(double)b);
}
}
三元运算符
public class Demo08 {
public static void main(String[] args) {
// x?y:z
//如果x==true,则结果为y,否则结果为z
int score=80;
String type=score>60?"及格":"不及格";//必须掌握
//if
System.out.println(type);//及格
}
}
关系运算符
public class Demo03 {
public static void main(String[] args) {
//关系运算符返回的结果:正确 错误 布尔值
//if
int a=10;
int b=20;
int c=21;
System.out.println(c%a);//取余,模运算
System.out.println(a>b);
System.out.println(a
逻辑运算符
public class Demo05 {
public static void main(String[] args) {
//与(and)或(or)非(取反)
boolean a=true;
boolean b=false;
System.out.println("a&&b:"+(a&&b));//逻辑与运算:两个变量都为真,结果才为true
System.out.println("a||b:"+(a||b));//逻辑或运算:两个变量有一个为真,则结果才为true
System.out.println("!(a&&b):"+(!(a&&b)));//如果是真,则变为假,如果是假则变为真
//短路运算
int c=5;
boolean d=(c
位运算
import com.sun.scenario.effect.impl.sw.sse.SSEBlend_SRC_OUTPeer;
public class Demo06 {
public static void main(String[] args) {
/*
A = 0011 1100
B = 0000 1101
-------------------------------
A&B = 0000 1100
A|B = 0011 1101
A^B = 0011 0001
~B = 1111 0010
2*8=16 2*2*2*2
效率极高!!!
> /2
0000 0000 0
0000 0001 1
0000 0010 2
……
0000 1000 8
0001 0000 16
*/
System.out.println(2
扩展1:
public class Demo02 {
public static void main(String[] args) {
long a=212121113135131L;
int b=123;
short c=10;
byte d=8;
System.out.println(a+b+c+d);//long 有long就为long(同理对于double)
System.out.println(b+c+d);//int
System.out.println(c+d);//int 无论是否有int优先级低于int结果都为int
}
}
扩展2:
package operator;
public class Demo07 {
public static void main(String[] args) {
int a = 10;
int b = 20;
a+=b;//a=a+b
a-=b;//a=a-b
System.out.println(a);
//字符串连接符 + ,String
String c=""+a+b;
String d=a+b+"";
System.out.println(""+a+b);//1020 String
System.out.println(a+b+"");//30 String
}
}
上一篇:python闭包与装饰器
下一篇:C++ 二叉树知识点