标识符 在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
运算符“&&”为简洁与运算符,运算符“&”为非简洁与运算符,区别如下:运算符“||”和“|”:用于逻辑或运算。当运算符的两侧同时为false时,结果为false,否则运算结果均为true,例如:
- 运算符“&&”只有在其左侧位true是,才运算其右侧的逻辑表达式,否则直接返回运算结果false;
- 运算符“&”无论其在左侧为true或false,都要运算其右侧的逻辑表达式,最后才返回运算结果。
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
运算符“||”为简洁或运算符,运算符“|”为非简洁或运算符,区别如下:位运算符
- 运算符“||”只有在其左侧为false时,才运算其右侧的逻辑表达式,否则直接返回运算结果true;
- 运算符“|”无论其左侧为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 |
在进行按位与运算时,只有当两个二进制位都为1时,结果才为1;
在进行按位或运算时,只要有一个二进制位为1,结果就为1;
在进行按位异或运算时,当两个二进制位同时为0或1时,结果为0,否则结果为1。
下面是用来理解逻辑位运算符的例子,如下:移位运算符有“<<(左移,低位添0补齐)”、“>>(右移,高位添符号为)”、“>>>(右移,高位添0补齐)”,用来对操作数进行移位运算。
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 } }
注:数字需要转化为二进制
用来理解移位运算符的例子,如下:对象运算符
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流程控制语句 | 与返回值的类型相同 |
[ ] | 若用于声明、建立或访问数组的元素 | 用于创建数组对象,则类型为数组;若用于访问数组元素,则类型为该数组的类型 |
. | 用来访问类的成员或对象的事例成员 | 若访问的是成员变量,则类型与改变量相同;若访问的是方法,则类型与该方法的返回值相同 |
【java基础三(运算符)】运算符优先级:由高到低
- 自动递增、递减运算符
++和–运算符既可以放在操作元素前面也可以放在操作元素后面,位置不同,得到的结果也是不同的。放在操作元素前面,会先将变量加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
文章图片
推荐阅读
- Integer常量池结合源码解析
- Java基础|Java 打印空心等腰三角形(方法2)
- gradle 每次运行都会下载依赖的解决办法
- 使用vector代替数组
- 如何获取ResultSet的行数和列数
- Java 时间戳格式化
- Java基础|Android开发——JVM、Dalvik以及ART的区别
- XML|XML报文转Map
- Java 8 时间,字符串和Long时间戳互转
- JAVA基础|JAVA基础(TreeMap键是Student值是String案例)