算数运算符
加(+),减(-),乘(*),除(/),取模(我们常说的取余)(%),自增(++),自减(–)
public class demo01 { public static void main(String[] args) { int a=4; int b=2; System.out.println(a/b); //此处输出为2,我们算得也为2 int a1=3; int b1=2; System.out.println(a1/b1); //此处输出为1,但我们算结果应该为1.5.原因在于出c1为整数型至于走整数部分 int a2=3; int b2=2; System.out.println(a2/(double)b2); //此处输出为1.5,证明我们算得也为1.5.我们b2强制转换为了double类型,所得结果也为double类型了 } }
public class demo01 { public static void main(String[] args) { int a=3; int b=a++;//此处a++相当于一句a=a+1的代码,因为++是在a的后面,所以a是先赋值给b,再执行a++ int c=++a;//此处++a也相当于一句a=a+1的代码,因为++是在a的前面,所以a是先执行a++,再赋值给c System.out.println(a); //输出值为5 System.out.println(b); //输出值为3 System.out.println(c); //输出值为5 } }
赋值运算符:=(eg:int a=3;//就是把3的值赋给a)
扩展赋值运算符:+=,-=,*=,/=
a+=b;<==>a=a+b;
a-=b;<==>a=a-b;
a*= b;<==>a=a *b;
a/=b;<==>a=a/b;
关系运算符
大于(>),小于(,),等于(==),大于等于(>=),小于等于(<=),不等于(!=), instanceof
instanceof:测试它左边的对象是否是它右边的类的实例.
关系运算类型返回 boolean 的数据类型。
逻辑运算符
&&(与),||(或),!(非)
public class demo01 { public static void main(String[] args) { boolean a=false; boolean b=false; boolean c=true; boolean d=true; System.out.println(a&&b);//输出为false System.out.println(a&&c);//输出为false System.out.println(c&&d);//输出为true System.out.println(a||b);//输出为false System.out.println(a||c);//输出为true System.out.println(c||d);//输出为true System.out.println(!a);//输出为true System.out.println(!c);//输出为false //短路运算 int m=5; boolean j=(m>5)&&(m++>5); System.out.println(j); System.out.println(m);//输出为5,在上面代码中,&&检测到前一个为假,则直接输出假,不进行&&后面计算 boolean k=(m>4)||(m-->4); System.out.println(k); System.out.println(m);//输出值为5,在上面代码中,||检测到前一个为真,则直接输出真,不进行||后面计算 } }
位运算符
与(&),或(|),非(~),异或(^),左移(<<),有符号右移(>>),无符号右移(>>>)
在计算机里1为真0为假
A=0011 0011
B=1010 1010
所以,
A&B是按每一位都1为1,有0出0,输出为:0010 0010
A|B是按每一位都0为0,有1出1,输出为:1011 1011
~A是按每一位进1出0,进0出1,输出为:1100 1100
A^B是按每一位相同输出0,不同输出1, 输出为1001 1001
当计算机直接用位运算是最快的
一个字节有8bit 左移即把每一位往左移;右移反之
A<<1 输出为:0110 0110 相当于(整数型)*2,(低位补0)
A>>1 输出为:0001 1001 相当于(整数型)/2,(正数高位补0,负数高位补1)
A>>>1输出为:0001 1001 相当于(整数型)/2,(高位补0)
条件运算符:?
public class demo01 { public static void main(String[] args) { int score=80; String type=score<60?"不及格":"及格"; System.out.println(type); } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)