您的位置:首页 > 编程语言 > Java开发

Java 每天学习一点点之运算符

2017-02-07 06:38 260 查看
特别声明:如下内容均来自于不同网络课程视频或书籍,整理合并完成。 如果有整理错误,忘及时指出,共同进步,不胜感激。

Java 入门之运算符

Java 运算符 (Operator)

1. 赋值运算符 (Assignment Operators)

  整数类型:顾名思义,将值赋予给一个变量,例如将 5 赋值给 int 型变量x。 即 x = 5; 等号右边   的值给等号左边的变量。

2. 一元运算符 (Monadic Operators)

   一般来讲,运算符左右都有操作数,例如 a + b,我们称 a,b 为操作数。但java中还存在一种情

   况,运算符只有一个操作数。例如 -1; 表示负3。

3. 算数运算符 (Arithmetic Operators)

   加减乘除。 例如: a + b

4. 关系运算符 (Relational Operators)

   等于,不等于,大于,小于,大于等于,小于等于。 例如: a >= 7;

5. 逻辑运算符 (Logical Operators)

   或(&& / &),与(|| / |),非(!)。 例如: a && b。 通常我们使用 &&,|| 这两种形式。 区别:

public static void main(String[] args) {

int a = 10;
int b = 0;
if(a > 0 || (a/0) > 2)
{
System.out.print("Hello World");
}

}
output: Hello World

public static void main(String[] args) {

int a = 10;
int b = 0;
if(a > 0 | (a/0) > 2)
{
System.out.print("Hello World");
}
}
output:
Exception in thread "main" java.lang.ArithmeticException: / by zero


   众所周知 0 不能做分母,所以 a/0 是不成立的,但使用 || 时并没有报错,因为计算机执行该语

   句时,发现第一个条件a>0 已经正确,或运算要求至少一 个满足条件即可。 但使用 | 时,程序

   异常报错,因为 | 判断完第一个条件后,继续判断第二条。因此从这种角度来说 || 提高了程序的

   效率。

6. 三元运算符 (ternary Operators)

   可以理解为 if…else的快捷方式。

   例如:

public static void main(String[] args) {
int a = 3;
int b = 4;
if(a > b)
{
System.out.print(" a > b");
}
else
{
System.out.print(" a < b");
}
}
output: a < b

public static void main(String[] args) {
int a = 3;
int b = 4;
String result;
result = (a > b) ? "a > b":"a < b";

System.out.print(result);
}
output: a < b


   这两段代运算的内容一样,但是第二段代码更简练一些。 以第二段代码为例, 我们比较 a,b 如

   何为真则 result的字符串内容为问号后第一个,如果为假,则将冒号后内容赋值给result。 三元

   运算符局限性在于 只能 比较两个操作数。

6. 位运算符 (Bitwise Operators)

   因为计算机只能识别 0 与 1. 因此在java中,数据都是以二进制(0 或 1)的形式存在。 例如:

public static void main(String[] args) {
int b = 6;
System.out.println(Integer.toBinaryString(b));
}
output: 110


   这里我们将 int 型的变量 b 转化为二进制数。 因为int型数据长度为 32 位,所有得到如下内

   容:

   00000000 00000000 00000000 00000110 从左到右计算 0 * 2^0+1 * 2^1+1 * 2 ^2 = 2 +

   4 = 6

   位运算结果表

| Number A | Number B |    (&)    |   (|)   |   (^)   |
|----------|----------|-----------|---------|---------|
|    0     |    0     |     0     |    0    |    0    |
|    0     |    1     |     0     |    1    |    1    |
|    1     |    0     |     0     |    1    |    1    |
|    1     |    1     |     1     |    1    |    0    |


   (&): 操作数全部为 1 则结果为 1, 否则值为 0

   (|): 操作数至少有一个值为 1 则结果为 1, 否则值为 0

   (^): 操作数值全部相同 则结果为 0, 否则值为 1

7. 运算符优先级 (Precedence of Java Operators)

  换句话说,运算顺序高低,比如在数学书中,乘法,除法 并列 且 高于加减法。但我们加入()时

  就可以改变运算顺序。 例如:

public static void main(String[] args) {
int a = 1;
int b = 2;
int c = 3;
int d1 = a+b*c;
int d2 = (a+b)*c;

System.out.print("d1 = "+d1+","+"d2= "+d2);
}
output:d1 = 7,d2= 9


   因此不难看出,括号运算符的优先级大于乘除法运算符。下面连接为具体的优先级顺序表

![优先级顺序表](https://img-blog.csdn.net/20170207063746597?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvUHJvZ3JhbVN0dWRlbnQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)


未完待续。。。

更新时间 每周一,三,五,日。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java