赞
踩
1.自增自减(++ --)
a++ 、a-- :先用再自增 / 自减
++a 、--a :先自增 / 自减再用
- int a = 1;
- int b = 2;
- int c;
- int d;
- int e;
- int f;
-
- c = a++;
- d = a--;
- e = ++b;
- f = --b;
-
- 结果:c = 1, d = 2, e = 3, f = 2
2.三目运算符
(布尔表达式)?表达式1:表达式2;
- (x > 5) ? x = 1 : x = 2;
-
- 如果 (x>5) 为真,则x = 1,否则x = 2.
3.逻辑运算符(|、||、&、&&)
(1)表示逻辑或:| ||
在 if 语句中使用 “ | ” 时,表示多个条件都需要判断,即便有表达式返回true,剩余条件仍需要判断。
短路非:使用 “ || ” ,只要有条件返回true,剩余条件不再判断,整体返回true。
(2)表示逻辑与:& &&
短路与:使用 “ && ” ,只要有条件返回false,剩余条件不再判断,整体返回false
在java中,逻辑运算符就使用短路非 “ || ” 和短路与 “ && ”
4.位运算符(&、|、^、~、>>、<<)
一般用于密码学
当使用+、-、*、/、% 运算符时,有如下规则:
只要两个操作数中的一个是 double,那么另一个也是 double 类型,结果也是 double 类型;
只要两个操作数中的一个是 float,那么另一个也是 float 类型,结果也是 float 类型;
只要两个操作数中的一个是 long,那么另一个也是 long 类型,结果也是 long 类型;
否则(操作数为 byte、short、int、char),两个操作数都会转换为 int 型,结果也是 int 型。
但是 final 修饰的类型不会变。
- public class Work{
- public static void main(String[] args){
- byte b1 = 1, b2 = 2, b3, b6, b8;
- final byte b4 = 4, b5 = 6, b7 = 9;
- b3 = b1 + b2; //语句1
- b6 = b4 + b5; //语句2
- b8 = b1 + b4; //语句3
- b7 = b2 + b5; //语句4
- System.out.println(b3+b6);
- }
- }
-
- 结果:语句1,语句3,语句4 是错的,只有语句2 是对的,结果输出为0
- 分析:
- 语句1:数值常量都是int型,所以b1,b2提升为int型,结果也是int型,而b3是byte型,int转byte可能会丢失数据;
- 语句2:b4,b5有final修饰,所以仍然是byte型,结果也是byte型,b6就是byte型,不存在强转,不会丢失数据;
- 语句3:b1是int型,b4是byte型,运算时两个操作数都提升为int型,所以结果为int型,而b8是byte型,int转byte型可能会丢失数据;
- 语句4:b2是int型,b5是byte型,运算时两个操作数都提升为int型,所以结果为int型,而b7是byte型,int转byte型可能会丢失数据;
- 输出语句:因为整数型的默认值为0,所以b3+b6为0,输出结果为0

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。