写在前面:本人是借助两本参考书自学的,其中部分例子和语句均是来自参考书。第一本:《Java 编程指南》,[美] Budi Kurniawan 著,闫斌 贺莲 译。第二本:《第一行代码 Java 视频讲解版》,李兴华 马云涛 著
x = z + 10;
据我有限的计算机知识(其实完全来自于大三学的微机原理,大一学的VB嘛。。。忘完了),x 和 z 为操作数,“+”为运算符,“=”是赋值语言?有的运算符只需要一个操作数(即一元运算符),有的运算符需要两个操作数等等。
先列出运算符:
=、>、<、!、~、?、:、
==、<=、>=、!=、&&、||、++、- -、
+、-、乘*、/、&、|、^、%、<<、>>、>>>
+=、- =、*=、/=、&=、|=、^=、%=、<<=、>>=、>>>=
java 中一共六类运算符
- 一元运算符
- 算术运算符
- 关系和条件运算符
- 位移和逻辑运算符
- 赋值运算符
- 其他运算符
下面以程序解释各类运算符
来自个人文件 firstestsix.java
public class firstetsix {
public static void main (String[] args) {
//一元运算符
// 一元减法运算符 “ - ”
double x = 7.7;
double y = -x; // 一元减法运算符“-”用来取负值
System.out.println(y); //输出结果为-7.7
//递增运算符 “ ++ ”(三种情况)
//第一种:递增
int z = 4;
++z; // “++”运算符将操作数增1
System.out.println(z); //输出结果为5
z++;
System.out.println(z); //输出结果为6
//第二种:后缀递增
int c1 = 7;
int d1 = c1++; // “+”在操作数c1后,先赋值给d1,后递增c1
System.out.print("c1="+c1);
System.out.println(",d1="+d1); // 输出为 c1=8,d1=7
//第三种:前缀递增
int c2 = 7;
int d2 = ++c2; // “+”在操作数c2前,先递增c2,后赋值给d2
System.out.print("c2="+c2);
System.out.println(",d2="+d2); //输出为 c2=8,d2=8
// 递减运算符 “ -- ”(三种情况,第一种类比递增第一种)
//第二种:前缀递减
int e1 = 5;
int f1 = --e1; // “-”在操作数e1前,先递减e1,后赋值给f1
System.out.print("e1="+e1);
System.out.println(",f1="+f1); //输出结果为 e1=4,f1=4
//第三种:后缀递减
int e2 = 5;
int f2 = e2--; // “-”在操作数e2后,先赋值给f2,后递减e2
System.out.print("e2="+e2);
System.out.println(",f2="+f2); // 输出结果为 f2=5,e2=4
//求补运算符 “ ! ”
//该运算符只适用于boolean 数据类型,若操作数为true,则返回值为false;若操作数为false,则返回值为true
boolean a = false;
boolean b = !a;
System.out.print("a="+a);
System.out.println(",b="+b); // 输出结果为a=false,b=true
//按位求补运算符 “ ~ ”
//该运算符的操作数必须是整数类型,结果是操作数的按位补数
int m1 = 2; // 2 的二进制形式是:0000 0000 0000 0000 0000 0000 0000 0010
int m2 = ~m1; //按位求补后为 : 1111 1111 1111 1111 1111 1111 1111 1101,这是-3的整数表示法
System.out.print("m1="+m1);
System.out.println(",m2="+m2); // 输出结果为 m1=2,m2=-3
//算术运算符
//加 “ + ”、减 ” - "、乘 “ * ”、除 “ / ”、取模 “ % ”
byte s1 = 2;
int s2 = s1 + 7;
int j1 = 7;
int j2 = j1 - 3;
int s3 = 3;
int s4 = s3 * 4;
System.out.print("s2="+s2); //结果为 s2 = 9,要注意不能超出数据类型表示的范围
System.out.print(",j2="+j2); //结果为 j2 = 4,要注意不能超出数据类型表示的范围
System.out.println(",s4="+s4); //结果为 s4 = 12,要注意不能超出数据类型表示的范围
int j3 = 13;
int j4 = j3 / 3;
int j5 = j3 % 3;
System.out.print("j4="+j4); //结果为 j4 = 4,用 / 运算符得出的结果始终是整数,如果被除数不能被整出,则忽略余数
System.out.println(",j5="+j5); //结果为 j5 = 1,%运算符是将两个操作数相除然后返回余数,左边操作数是除数,右边操作数是被除数
//相等运算符 “ == ”、不等运算符 “ != ”,这两种运算符的操作数可以是整数、浮点数、字符或者boolean,返回值为boolean型
int h1 = 5;
int h2 = 5;
boolean h3 = h1==h2;
boolean h4 = true;
boolean h5 = true;
boolean h6 = h4 != h5;
System.out.print("h3="+h3);
System.out.println(",h6="+h6); // 输出结果为:h3=true,h6=false
//关系运算符 “ < ”、“ > ”、“ <= ”、“ >= ”,这四种运算符的操作数必须是可以转成数字类型的,返回值为boolean
boolean i1 = 9 < 6;
boolean i2 = 9 >= 9;
System.out.print("i1="+i1);
System.out.println(",i2="+i2); // 输出结果为 i1=false,i2=true
//条件运算符:AND运算符“ && ”、OR运算符“ || ”、三目运算符“ ?:”
// &&、||这两种运算符的两个操作数为表达式,且必须是返回值为boolean类型的表达式
boolean k1 = (5 > 3) && (7 > 9); // 和,一假即假
boolean k2 = (5 > 3) && (7 < 9); //和,全真即真
boolean k3 = (5 < 3) || ( 7 < 9 ); //或,一真即真
boolean k4 = (5 < 3) || (7 > 9); //或,全假即假
System.out.print("k1="+k1);System.out.print(",k2="+k2);System.out.print(",k3="+k3);System.out.println(",k4="+k4);
//输出结果为:k1=false,k2=true,k3=true,k4=false
// ?:该运算符需要三个操作数表达为,“ 第一个操作数?第二个操作数:第三个操作数 ”
boolean n1 = ( 8 < 4 ) ? true : false;
//第一个操作数必须是返回值为boolean类型的操作数,若为true,则返回第二个操作数,若为false,返回第三个操作数
int n2 = (8 < 4 ) ? 3 : 7;
System.out.print("n1="+n1);System.out.println(",n2="+n2); //输出结果为:n1=false,n2=7
//移位运算符 ,左移“ << ”、右移“ >> ”、无符号右移“ >>> ”,这部分我还没看懂。。。不想看了
//&、|、^
//&需要两个操作数,当操作数类型为数字时,进行按位与计算,当操作数类型为boolean时,进行逻辑与计算;|和^类似,进行或运算和异或运算
int r1 = 5 | 2; // 0101 (5) | 0010 (2) = 0111 (7)
int r2 = 5 & 6; // 0101 (5) & 0110 (6) = 0100 (4)
boolean r3 = true ^ false;
System.out.print("r1="+r1); //输出结果为 :r1=7
System.out.print(",r2="+r2); // 输出结果为:r2=4
System.out.println(",r3="+r3); // 输出结果为:r3=true
//赋值运算符 “ = ”、“ += ”、“ -= ”、“ *= ”、“ /= ”、“ %= ”、“ <<= ”、“ >>= ”、“ &= ”、“ ^= ”、“ |= ”
int p1 = 5;
p1 += 7; //等同于p = p + 7;
p1 <<= 5;
System.out.print("p1="+p1); // 结果为p1=384
int p2 = 5;
p2 &= 6;
System.out.println(",p2="+p2); // p2=4
}
}
以下是该代码的运算结果
-7.7
5
6
c1=8,d1=7
c2=8,d2=8
e1=4,f1=4
e2=4,f2=5
a=false,b=true
m1=2,m2=-3
s2=9,j2=4,s4=12
j4=4,j5=1
h3=true,h6=false
i1=false,i2=true
k1=false,k2=true,k3=true,k4=false
n1=false,n2=7
r1=7,r2=4,r3=true
p1=384,p2=4