自学JAVA知识点总结 - 初级-第6页 - Aaron's Home -黄泽雨个人博客

记录与分享

自学JAVA知识点总结 - 初级

编程语言 JAVA

数据类型与运算符 - 运算符

← 返回目录

运算符

        运算符作用:计算机的最基本用途之一就是执行数学运算,作为一门计算机语言,Java也提供了一套丰富的运算符来操作变量。

        一元运算符 - 运算规则:

               ++(自增)--(自减)

int a = 1;
int b = a++; //a先赋值给b,再自增
System.out.prinln("a=" + a + "\nb=" + b); //此时输出 a=2,b=1

int a = 1;
int b = ++a; //a先自增,再赋值给b
System.out.prinln("a=" + a + "\nb=" + b); //此时输出 a=2,b=2

        二元运算符 - 运算规则:

               整数运算

                   • 如果两个操作数有一个为long,则结果也为long。

                   • 没有long时,结果为int,即使操作数全为short,byte,结果也是int。

               浮点运算

                   • 如果两个操作数有一个为double,则结果为double。

                   • 只有两个操作数都是float,则结果才为float。

               取模运算

                   • 其操作数一般是整数,也可以为浮点数,结果是“余数”,“余数”正负和取模运算符左边操作数相同,例如:7%3=1;-7%3=-1;7%-3=1。

              instanceof运算符

                   • 其操作数左边是对象,右边是类;当对象是右边类或子类所创建的对象时,返回true;否则返回false。

public class Test {
  public static void main(String[] args) {
    Person p = new Person();
    System.out.println(p instanceof Person); //p是Person的对象,返回true
  }
}
class Person{}

 

        赋值运算符 - 运算规则:

               • 将赋值运算符右边的值赋给左边。

int a = 3; //将3赋给变量a
int b = a; //将a赋给变量b
System.out.println("a=" + a + "\nb=" + b) //输出后 a=3,b=3

 

        扩展运算符 - 运算规则:

               • 将扩展运算符左边与右边进行 + - * / % 后赋值给左边。

int a = 1;
int b = 2;
b+=a; //这里相当于 b=b+a,赋值后b=3
b-=a; //这里相当于 b=b-a
b*=a+3; //这里相当于 b=b*(a+3),先算a+3再算b*a,赋值后b=8

 

        关系运算符 - 运算规则:

               • 关系运算符用来进行比较运算,运算结果只有truefalse

int a = 3;
System.out.println(a==3); //这里会判断a是否等于3,如果是输出true
System.out.println(a!=5); //这里会判断a是否不等于5,如果是输出true
char b = 'a';
char b2 = 'c';
System.out.println(b<b2); //在这里char会被转为int类型来进行运算
System.out.println((int)b); //可以利用强制转型查看对应的int数值

==!= 是所有(基本和引用)数据类型都可以使用

>>=<<= 仅针对数值类型 byte/short/int/longfloat/doublechar

 

        逻辑运算符 - 运算规则:

               • 逻辑运算符用来对比布尔值(boolean),计算结果也是布尔值(ture/false)。

boolean a = true;
boolean b = false;
System.out.println(a&b); //a和b有一个为false,则输出false
System.out.println(a|b); //a和b有一个为true,则输出true
System.out.println(!b); //单个值运算,取反,b为true输出false,b为false输出true
System.out.println(a^b); //按断a和b是否相同,相同输出false,不同输出true
System.out.println(1<3&&1>3); //为false,则输出false,从左到右计算,左边符合直接输出不计算右边,不符合则继续往后计算
System.out.println(1<3||1>3); //为true,则输出true,从左到右计算,左边符合直接输出不计算右边,不符合则继续往后计算

 

        位运算符 - 运算规则:

               • 位运算指的是将值转为二进制进行二进制运算。

               • 运算符 &(与)|(或) 既是逻辑运算符,也是位运算符,如果两侧操作数都是布尔类型,就作为逻辑运算符;如果两侧的操作数是整数类型,就是位运算符。

int a = 3; //数值3转为二进制是0011
int b = 4; //数值4转为二进制是0100
System.out.println(a&b); //将整数类型3和4转为二进制进行运算

「按位与」两个操作数必须都为true,才能为true,否则为false

「按位或」两个操作数只要有一个是true,结果就是true

「按位异或」两个操作数相同为false,不同为true

               左移运算符右移运算符分别代表乘2除2

int a = 100;
System.out.println(a<<2); //位移2位,乘两次2,结果等于400 = (100*2)*2
System.out.println(a>>2); //位移2位,乘两次2,结果等于25 = (100/2)/2

 

        字符串连接符 - 运算规则:

               • 运算符“+”两侧的操作数中只要有一个是字符串(String)类型,系统会自动将另一个操作数转换为字符串然后再进行连接,此处“+”不作为算数运算符,而作为字符串连接符进行运算。

int a = 12;
System.out.prinln("a=" + a); //输出结果:a=12

 

        条件运算符 - 运算规则:

               • 条件运算符格式“x ? y : z”,其中 x 为 boolean 类型表达式,先计算 x 的值,若为true,则运算结果为y,否则结果为 z 。

int score = 80; //定义一个值
String type  = score<60?"不及格":"及格"; //值score的值是否小于60,为true输出“不及格”,为false输出及格。
System.out.prinln("最终成绩:" + type);

 

        运算符的优先级:

1 () 括号运算符 由左至右
2 !、+(正号)、-(负号) 一元运算符 由左至右
2 ~ 位逻辑运算符 由右至左
2 ++、-- 递增与递减运算符 由右至左
3 *、/、% 算术运算符 由左至右
4 +、- 算术运算符 由左至右
5 <<、>> 位左移、右移运算符 由左至右
6 >、>=、<、<= 关系运算符 由左至右
7 ==、!= 关系运算符 由左至右
8 & 位运算符、逻辑运算符 由左至右
9 ^ 位运算符、逻辑运算符 由左至右
10 | 位运算符、逻辑运算符 由左至右
11 && 逻辑运算符 由左至右
12 || 逻辑运算符 由左至右
13 ? : 条件运算符 由右至左
14 =、+=、-=、*=、/=、%= 赋值运算符、扩展运算符 由右至左

               • 建议使用括号运算符来组织表达式。

               • 切记,逻辑与/或/非的优先级是逻辑非>逻辑与>逻辑或,如:a||b&&c的运算结果是:a||(b&&c),而不是(a||b)&&c

 

 


↓ 点击翻页 ↓

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

分享