java所支持的运算符如下
算术运算符中的二元运算符:+,-,*,/,%(取余)
所写代码与运行结果如下
可以看到只有“(d/a)”的结果不准确
改写代码及其运行结果如下
例:所编写代码及其运行结果如下
由结果可知,以“int”为分界线,涉及“short,byte,char,int”类型的运行结果会转换为“int”类型,涉及“long,flaot,double”类型的运行结果会向最高的转换
例:运用“%(取余)”的所编写的代码及其运行结果
算术运算符中的一元运算符:++(自增),--(自减)
所编写代码及运行结果如下
逻辑 :开始将“ca”赋值“4”,“cb”为“ca++”,“cc”为“++ca”
由于“ca”的值为“4”,“cb”的含义为先对“cb”进行赋值,再对“ca”进行自增(ca+1);“cc”的含义为先对“ca”进行自增(ca+1),再对“cc”进行赋值
综上可知,“ca”的值为“4”,在“int cb”中先将“cb”赋值为“ca(4)”,然后“ca”的值进行了一次自增(“ca+1”)
之后在“int cc”中,先将已经自增过的“ca”(“ca+1”)再进行一次自增(“ca+2”),再将“cc”赋值为已经自增两次的“ca”(“ca+2”)
最后输出结果“ca”自增两次,值由“4”增加为“6”,“cb”的值为未进行自增的“ca”(“4”),“cc”的值为进行两次自增的“ca”("6")
关系运算符:>,<,>=,<=,==,!=instanceof(不等于)
关系运算符所返回的结果为“true”或“false”
所编写代码及其运行结果如下
逻辑运算符:&&,||,!(与,或,非)
所编写代码及运行结果如下
概念:代码运行过程中,若可在某一位置直接得出结果为“false”,则不会运行该位置后的代码
例1
逻辑:“a”为“true”,“b”为“false”,由于该输出代码为和逻辑运算,两者都为“true”,结果才为“true”,所以代码运行到“System.out.println("a&&b:"+(b&&a));”中的加粗字母“b”就会得出结果,不会运行之后的代码
例2
逻辑:由于“c”为“3”,所以“c>2”,"c<2"的结果为“false”
“d”的代码在运行到“boolean b =(c<2)&&(c++>2);”中的加粗的“c<2”后判定结果为“false”,直接得出结果,没有运行后面的“c++”,从而“c”的值没有自增,其值还是“3”
位运算符:&,|,^,~,>>,<<,>>>
&:当两者所对应的位都为“1”时,该位的结果才为“1”,否则为“0”
|:当两者所对应的位有一个或两个为“1”时,该位的结果就为“1”,否则为“0”
^:当两者所对应的位数字相同时,该位的结果为“1”,否则为“0”
~:将对应的二进制数字取反,由“0”变为“1”,由“1”变为“0”
<<:将对应位的数字左移
">>":将对应位的数字右移
所编写代码及结果如下(部分二进制在IDEA里运行不出来,只能用注释了)
由位运算符的作用即可得出
由于该运算符牵扯到二进制,所以这里列下二进制基本内容(其后面数字为大小)
0000 0000 二进制八位
0000 0001 1 0000 0010 2 0000 0100 4 0000 0011 3
可以看到,二进制的大小是每往左一位就扩大两倍,且表示数字都为“0”和“1”
所编写代码及其运算结果如下
根据二进制的基本内容和位运算符的作用即可明白
且若数字被右移出最低位,其结果为“0”
例:x ? y : z
逻辑:如果“x”为“true”,则结果为“y”,如果“x”为“false”,则结果为“z”
所编写代码及其运行结果如下
运用数学工具来编写相关代码
编写代码来完成一个幂运算,运行结果如下
例
由上图可知,字符串写在量前面可以使两者连接,写在其后面则不起作用