Java 运算符
运算符
-
算术运算符 + - * / %(模) ++ --
-
赋值运算符 =
-
关系运算符 > < >= <= ==(等于) !=instanceof(不等于)
-
逻辑运算符 && || !
-
位(二进制01)运算符 & | ^ ~ >> << >>>(了解!!!)
-
条件运算符 : ?
-
扩展赋值运算符 +=, -=, *=, /=。
算术运算符
//算术运算符
long a = 1231235234523L;
int b = 123;
short c = 10;
byte d =7;
double e= 123525124.0d;
System.out.println(a+b+c+d); //Long,只要有一个long类型就是long
System.out.println(b+c+d); //Int,没有long 都为int
System.out.println(c+d); //Int
System.out.println((double)c+d); //有double 类型就是double
System.out.println(d+e);
System.out.println(b*e);
System.out.println(a/c); //四舍五入 int
System.out.println(b/c); //四舍五入 int
System.out.println(c%d); //模 取余数
// ++ 自增 一元运算符
int a = 3;
int b = a++; //执行完这行代码后,先给b赋值,再自增
//a++ a = a + 1
//System.out.println(a);
//++a a = a + 1;
int c = ++a; //执行这行代码前,先自增,在赋值
//System.out.println(c);
System.out.println(a);
System.out.println(b);
System.out.println(c);
// -- 自减
int d = 10 ;
int e = d--;
// d-- = d - 1 ,先赋值,在自减
//System.out.println(e);
int f = --d; // --d = d - 1 ,先自减,在赋值
//System.out.println(f);
System.out.println(d);
System.out.println(e);
System.out.println(f);
//幂运算 很多运算,使用一些工具类去操作
double pow = Math.pow(2,3);
System.out.println(pow);
关系运算符
//关系运算符 返回的结果:正确,错误 布尔值
int a = 10;
int b = 20;
int c = 21;
//取余 模运算
System.out.println(c%a); // c/a 21/10=2...1
System.out.println(a>b);
System.out.println(a<b);
System.out.println(a==b);
System.out.println(a!=b);
逻辑运算符
//逻辑运算符 与(&&) 或(||) 非(取反)
boolean a = true;
//boolean b = false;
boolean b = true;
System.out.println("a && b:"+(a&&b)); //与,两个为真,结果为True
System.out.println("a || b:"+(a||b)); //或,有一个为真,则为True
System.out.println("! (a && b):"+!(a&&b)); //如果为真,则变为假,如果是假则变为真
//短路运算, 与 两个都为真,返回true,但是第一个就是假,就不执行后面的代码了
int c = 5 ;
boolean d = (c<4)&&(c++<4);
System.out.println(d);
System.out.println(c);
位运算
/*
A = 0011 1100
B = 0000 1101
------------------
A&B 0000 1100 & 与 对应位都是1就是1,否则为0
A|B 0011 1101 | 或 对应位都是0就是0,否则为1
A^B 0011 0001 ^ 异或运算 对应位相同就是0,否则为1
~B 1111 0010 ~ 非 取反 与B对应位完全相反
2*8 = 16怎么运算最快?
2*2*2*2 位运算 效率极高!
<<左移 *2
>>右移 /2
0000 0000 0
0000 0001 1
0000 0010 2
0000 0011 3
0000 0100 4
0000 1000 8
0001 0000 16
0010 0000
*/
System.out.println(2<<3);
System.out.println(32>>3);
条件运算符
//三元运算符
//条件运算符 ? :
// x ? y : z
// 如果x==true,则结果为y,否则结果为z
//int score = 80;
int score = 50;
String type = score <60 ?"不及格":"及格";
System.out.println(type);
扩展运算符
int a = 10;
int b = 20;
a+=b; //a = a+b
System.out.println(a);
a-=b; //a = a-b
System.out.println(a);
a*=b; //a = a*b
System.out.println(a);
a/=b; //a = a/b
System.out.println(a);
//字符串连接符 + , String
System.out.println(a+b);
System.out.println(""+a+b); //字符串在前面,会拼接
System.out.println(a+b+""); // 字符串在后面,会运算
浙公网安备 33010602011771号