数据类型强转与逻辑运算,位运算符之间的运算

数据类型转化

  1. 不能对布尔值进行转换

  2. 不能把对象类型转换为不相干的类型

  3. 在高容量转换到低容量的时候强制转换

  4. 转换的时候可能存在内存溢出,或者是精度丢失的问题

  5. JDK7的新特性,数字之间可以用下划线进行分割; 10_000_000;

 

逻辑运算符与位运算符

  1. 短路运算

    int a=5;

boolean b = (a<4)&&(a++<4);

这种情况在b=false,a还是等于4,因为a<4等于false,就不继续执行a++代码,这种错误是在基础代码中经常出现的,需要注意

 

  1. 位运算

    A = 0011 1100

    B = 0000 1101

A&B = 0000 1100 如果都为1,则取1,否则取0

A|B = 0011 1101 如果有一个为1在,则取1,否则取0

(上面两种运算可以理解为 1为true,0为false。&为且,|为或的意思)

A^B = 0011 0001 如果两值相等则取0,否则取1

~B = 1111 0010 取相反的值

 

  1. 左移,右移运算

2 * 8=16 2 * 2 * 2 * 2=16 2 * 2^3(2的3次方)

<< >> (这种运算效率特高)

2<<3= 2 * 2^3(2的3次方) =16

2>>3=2 / 2^3(2的3次方=2/16

 

posted @ 2021-03-17 14:13  HOTCOLD  阅读(95)  评论(0)    收藏  举报