/java中的运算符:
算术运算符: +,-,
,/,%,++,--
赋值运算符 =
一个等号=是赋值,两个等号是关系运算符 扩展赋值运算符:+=,-=,*=,/=
关系运算符: >,<,>=,<=,
,!=
逻辑运算符: &&,||,!
位运算符: &,|,^,~ , >>,<<,>>> (了解!!!)
条件运算符 ?:

/
 public class OperatorDemo{ 
 public static void main(String[] args){ //算数运算符 
 int a = 1; 
 int b = 2; 
 System.out.println(a + b); System.out.println(a - b); System.out.println(a * b); 
 //取整除,或者取商 System.out.println(a / b); 
 //取余数,或者取模 System.out.println(a % b); System.out.println(""); 
 //获取一个4位数的个位数、十位数、百位数、千位数各是多少? 
 int num = 4567; 
 System.out.println(“千位数是:” + (num / 1000)); 
 System.out.println(“百位数是:” + ((num / 100) % 10)); 
 System.out.println(“十位数是:” + ((num % 100) / 10)); 
 System.out.println(“个位数是:” + (num % 10)); System.out.println(""); 
 /


++:单目运算符,自加1的操作,如果放在前面,先自加,再参加运算
如果放在后面,先参加运算,再自加
–:单目运算符,自减1的操作,如果放在前面,先自减,再参加运算
如果放在后面,先参加运算,再自减

/ 
 System.out.println(a++); System.out.println(++a); //System.out.println(a–); //System.out.println(–a); System.out.println(++b+b++);//? 6 //扩展运算符 
 int c = 10; 
 //c加2的操作 
 //两种写法得到的结果是一样的,所以建议大家都使用扩展运算符 
 //c = c + 2; 
 c += 2; 
 /


基本数据类型的转换:
bb是byte类型,bb+2中的2是int类型,byte和int都属于整型,也就是说是同一种数据类型,
那么byte会自动向int类型转换,所以=右边最终返回的是int类型,而等号左边是byte类型,
我们知道赋值运算符是从右向左赋值,换句话说,这里面就是int类型向byte类型转换,就是高位
向低位进行转换,必须是用强制转换。

语法:(datatype) 
/ 
 byte bb = 10; 
 //bb = (byte)(bb + 2); 
 bb += 2; 
 System.out.println(bb);


//关系运算符

System.out.println(4 > 5); System.out.println(4 < 5); System.out.println(4 >= 5); System.out.println(4 <= 5); System.out.println(4 == 5); System.out.println(4 != 5);


/
逻辑运算符:
&&:短路与,自左向右执行,如果第一个表达式返回false,那么后面的表达式就不再执行
&:逻辑与,自左向右执行,不管第一个表达式返回true还是false,后面表达式都会执行 ||:短路或,自左向右执行,如果第一个表达式返回true,那么后面

的表达式就不再执行 |:逻辑或,自左向右执行,不管第一个表达式返回true还是false,后面表达式都会执行 / 
 System.out.println( 2 > 3 && 5 > 4); 
 int i = 1; 
 //System.out.println( 2 > 3 && i++ > 1); //System.out.println(i);//1 System.out.println( 2 > 3 & i++ > 1); System.out.println(i);//2 System.out.println( 2 > 3 || 5 > 4); System.out.println(!false); System.out.println(!true); System.out.println(!(2 > 3));


//位运算符

System.out.println(4 & 5); System.out.println(4 | 5); System.out.println(4 ^ 5); 
 //移码 原码 反码 补码? System.out.println(~4);//-5? 
 /
:有符号右移,对正数而言,右移几位就是除几个2 
 <<:有符号左移,对正数而言,左移几位就是乘几个2:无符号右移 
/ 
 //把2变成16的最高效的方法是什么? System.out.println(2 << 3); System.out.println(16 >> 3); 
 / 
 条件运算符:又叫三目运算符 当第一个表达返回为true,则取?后面的值,第一个表达式返回为false,则取:后面的值 / 
 System.out.println(2 < 3 ? 2 : 3); System.out.println(false ? false : true ? false : true); 
 / 
 基本数据类型之间的转换: 
 1、自动转换(隐式转换) 
 赋值运算符=左边数据范围大,右边数据范围小,并且一般是同一种数据类型的情况下,则会发生自动转换 
 2、强制转换 
 赋值运算符=左边数据范围小,右边数据范围大,并且一般是同一种数据类型的情况下,则必须使用强制转换 
 语法:(datatype) 
 强制转换可能会有数据精度的丢失 
 */ 
 byte a1 = 2; 
 a1 = (byte)(a1 + 10); System.out.println(a1); System.out.println((byte)270);//14 
 }
 }