运算符
Java语言支持以下运算符:
-
算术运算符:+,-,*,/,%,++,–
//二元运算符 int a=10; int b=20; int c=25; int d=25; System.out.println(a+b); System.out.println(a-b); System.out.println(a*b); System.out.println((double)a/b); System.out.println("================================="); long a1=1531135411134135351L; int b1=123; short c1 =128; byte d1 =80; System.out.println(a1+b1+c1+d1);//long(多个数据操作,其中有long/double类型数据,结果也为long/double类型) System.out.println(b1+c1+d1);//int(操作数据中没有long/double,结果都为int) System.out.println(c1+d1);//int(操作数据中没有long/double,结果都为int)
//++ -- 自增 自减 一元运算 int a=5; int f =++a;//先自增a+1=6,a=6。再给f赋值 :(f=6) int b =++a;//先自增a+1=7,a=7.再给b赋值:(b=7) int c=a++;//先给c赋值:(c=a=7),再给a自增a+1=8 int d=a++;//先给d赋值:(d=a=8),再给a自增a+1=9 int e=++a;//先自增a+1=10,a=10.再给e赋值:(e=10) int g =++a;//先自增a+1=11,a=11.再给g赋值:(g=11) System.out.println(a);//11 System.out.println(f);//6 System.out.println(b);//7 System.out.println(c);//7 System.out.println(d);//8 System.out.println(e);//10 System.out.println(g);//11 //幂运算 double pow =Math.pow(3,4);//3的4次方 System.out.println(pow);
-
赋值运算符:=
-
关系运算符:> , < ,>= ,<= ,== ,!=instanceof
//关系运算符返回的结果 :正确/错误 布尔值 //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);//取余(模运算)21/10=2.。。。余1
-
逻辑运算符:&& ,|| ,!
blic static void main(String[] args) { //与(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 (b||a); //短路运算 int c =6 ; boolean d=(c<5)&&(c++<2); System.out.println(d); System.out.println(c);
-
位运算符:& ,| , ^ , ~ ,>> , << ,>>>(了解!!!)
/* 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 >> /2 0000 0000 0 0000 0001 1 0000 0010 2 0000 0011 3 0000 0100 4 0000 1000 8 0001 0000 16 0010 0000 32 */ System.out.println(2<<3);
-
条件运算符:?:
//x ? y : z //如果x==true,则结果为y,否则结果为z int score =50; String type =score< 60?"不及格":"及格"; //如果score<60则结果为不及格,否则结果为及格 System.out.println(type);
-
扩展赋值运算符;+= ,-= , *= ,/=
//赋值运算
int a =10;
int b =20;
a+=b;//a=a+b
a-=b;//a=a-b
a*=b;
a/=b;
字符串连接 + String
//字符串连接符 + ,String
System.out.println("abab"+a+b);//运算中前面有String类型,运算结果变成String类型进行拼接(abab1020)
System.out.println(a+b+"abab");//后面有String类型,则先运算后拼接(30abab)