java基础三(运算符)

标识符 在Java语言中,与类无关的运算符只有赋值运算符、算术运算符、关系运算符、逻辑运算符和位运算符。
赋值运算符
符号为“=”,作用是将数据、变量或对象赋值给相应类型的变量或对象,例如:

int a=5; //将数据复制给变量 long b=a; //将变量赋值给变量 Object object=new Object(); //创建对象

赋值运算符的结合性是从右到左的,例如:
int a=5+6; //应该先计算5+6

算术运算符
算术运算符支持整数型数据和浮点型数据的运算,两者之间进行算术运算时,java会自动完成数据类型的转换,计算结果为浮点数据。
“+”:加法运算,例如10+2.5,结果为12.5,为double类型
“-”:减法运算,例如10-7.5F,结果为2.5F,为fioat类型
“* ”:乘法运算,例如6*8,结果为48, 为int类型
“/”:除法运算,例如21/3L,结果为7L,为long类型
“%”:求余运算,例如15%4,结果为3,为int类型
关系运算符
关系运算符用于比较大小,运算结果为boolean类型。表达式成立运算结果为true,表达式不成立运算结果为false。
“>”:大于,可运算数据类型为整数型、浮点数型、字符型
“<”:小于,可运算数据类型为整数型、浮点数型、字符型
“==”:等于,可运算数据类型为所有数据类型
“!=”:不等于,可运算数据类型为所有数据类型
“>=”:大于或等于,可运算数据类型为整数型、浮点数型、字符型
“<=”:小于或等于,可运算数据类型为整数型、浮点数型、字符型
注:Java中“=”是赋值运算,而“= =” 判断值是否相等,“= = =”是判断的是值及类型是否完全相等,而“= = =”只在JavaScript中有
比如 a=b 就是把b的值赋予给a; a==b 就是判断a等于b
逻辑运算符
逻辑运算符用于对boolean型数据进行运算,运算结果仍为boolean型。
java中的逻辑运算符有“!(取反)” “^(异或)” “&(非简洁与)” “|(非简洁或)” “&&(简洁与)” “||(简洁或)”
运算符“!”:用于对逻辑值进行取反运算,例如:
System.out.println(!true); //输出运算结果为false System.out.println(!false); //输出运算结果为true

运算符“^”:用于对逻辑值进行异或运算 ,当运算符两侧同时为true或false时,运算结果为false,否则运算结构为true,例如;
System.out.println(true^true); //输出运算结果为false System.out.println(true^false); //输出运算结果为true System.out.println(false^true); //输出运算结果为true System.out.println(false^false); //输出运算结果为false

运算符“&”和“&&”:均为逻辑与运算,当运算符两侧同时为true时,运算结果为true,否则运算结果为false,例如:
System.out.println(true&true); //输出运算结果为true System.out.println(true&false); //输出运算结果为false System.out.println(false&true); //输出运算结果为false System.out.println(false&false); //输出运算结果为falseSystem.out.println(true&&true); //输出运算结果为true System.out.println(true&&false); //输出运算结果为false System.out.println(false&&true); //输出运算结果为false System.out.println(false&&false); //输出运算结果为false

运算符“&&”为简洁与运算符,运算符“&”为非简洁与运算符,区别如下:
  1. 运算符“&&”只有在其左侧位true是,才运算其右侧的逻辑表达式,否则直接返回运算结果false;
  2. 运算符“&”无论其在左侧为true或false,都要运算其右侧的逻辑表达式,最后才返回运算结果。
运算符“||”和“|”:用于逻辑或运算。当运算符的两侧同时为false时,结果为false,否则运算结果均为true,例如:
System.out.println(true|true); //输出运算结果为true System.out.println(true|false); //输出运算结果为true System.out.println(false|true); //输出运算结果为true System.out.println(false|false); //输出运算结果为falseSystem.out.println(true||true); //输出运算结果为true System.out.println(true||false); //输出运算结果为true System.out.println(false||true); //输出运算结果为true System.out.println(false||false); //输出运算结果为false

运算符“||”为简洁或运算符,运算符“|”为非简洁或运算符,区别如下:
  1. 运算符“||”只有在其左侧为false时,才运算其右侧的逻辑表达式,否则直接返回运算结果true;
  2. 运算符“|”无论其左侧为true或false,都要运算其右侧的逻辑表达式,最后才返回运算结果。
位运算符
位运算符是对操作数以二进制为单位进行的操作和运算,运算结果均为整数型。位运算符又分为逻辑位运算符和位移运算符。
逻辑位运算符有“~(按位取反)”、“&(按位与)”、“|(按位或)”和“^(按位异或)”,操作数进行按位运算,运算规则如下表:
操作数x 操作数y ~x x&y x l y x^y
0 0 1 0 0 0
0 1 1 0 1 1
1 0 0 0 1 1
1 1 0 1 1 0
按位取反运算是将二进制中的0修改为1,1修改为0
在进行按位与运算时,只有当两个二进制位都为1时,结果才为1;
在进行按位或运算时,只要有一个二进制位为1,结果就为1;
在进行按位异或运算时,当两个二进制位同时为0或1时,结果为0,否则结果为1。
下面是用来理解逻辑位运算符的例子,如下:
public calss Example{ public static void main(String[] args){ int a=5&-4; //运算结果为4 int b=3|6; //运算结果为7 int c=10^3; //运算结果为9 int d=~(-14);//运算结果为13 } }

注:数字需要转化为二进制
移位运算符有“<<(左移,低位添0补齐)”、“>>(右移,高位添符号为)”、“>>>(右移,高位添0补齐)”,用来对操作数进行移位运算。
用来理解移位运算符的例子,如下:
public calss Example{ public static void main(String[] args){ int a=-2<<3; //运算结果为-16 int c=15>>2; //运算结果为3 int e=4>>>2; //运算结果为1 int f=-5>>>1; //运算结果为2147483645 } }

对象运算符
对象运算符(Instanceof)用来判断对象是否为某一类型,运算结果为boolean型,如果是则返回true,否则返回false。
对象运算符的关键字为“instanceof”,用法如下:
对象标识符 instanceof 类型标识符 java.util.Date date=new java.util.Date(); System.out.println(date instanceof java.util.Data); //运算结果为true System.out.println(date instanceof java.sql.Data); //运算结果为false

其他运算符
运算符 说明 运算结果类型
++ 一元运算符,自动递增 与操作元的类型相同
- - 一元运算符,自动递减 与操作元的类型相同
?: 三元运算符,根据“?”左侧的逻辑值,决定返回“:”两侧中的一个值,类似if…else流程控制语句 与返回值的类型相同
[ ] 若用于声明、建立或访问数组的元素 用于创建数组对象,则类型为数组;若用于访问数组元素,则类型为该数组的类型
. 用来访问类的成员或对象的事例成员 若访问的是成员变量,则类型与改变量相同;若访问的是方法,则类型与该方法的返回值相同
  1. 自动递增、递减运算符
    ++和–运算符既可以放在操作元素前面也可以放在操作元素后面,位置不同,得到的结果也是不同的。放在操作元素前面,会先将变量加1或减1,然后再使该变量参与运算表达式;放在操作元素后面,会使变量先参与运算表达式,然后再将变量加1或减1.例如:
int a=3; int b=3; int c=2+(++a); //先将a+1,然后再执行2+4 int d=2+(b++); //先执行“2+3”,然后再将变量b+1 System.out.println(c); //输出结果为6 System.out.println(d); //输出结果为5 System.out.println(a); //输出结果为4 System.out.println(b); //输出结果为4

【java基础三(运算符)】运算符优先级:由高到低
java基础三(运算符)
文章图片

    推荐阅读