j2se回顾总结(二)

1.操作符

(1)位

&、|、^、~

操作对象:整数

操作过程:将整数转为二进制,再运算

&:一假皆假

|:一真皆真

^:相同为0,不同为1

~:取反

应用:&:判断整数是否是二次幂数。eg:int a=4;if(a&(a-1)==0){syso("a是二次幂数");}

&:判断奇偶数。eg:int a=5;if(a&1==0){syso("是偶数");}

^:加密。给一个数异或一次是加密,异或两次是解密。

^:判断同异号。a&b>0则为同号,小于0为异号。

(2)位移运算

左位移:<<(乘以2的几次幂)

右位移:>>(除以2的几次幂)

无符号右移:>>>

原理:

正整数

左位移:5<<3:5*2^3(1<<3)

求出5的原码,再去掉前3位数字,再到后面添加3个000

右位移:5>>3:5/2^3

求出5的原码,再去掉后3位数字,再到前面添加3个000

负整数

左位移:-5<<3

求出-5的补码,再去掉前3位数字,再到后面添加3个000

右位移:-5>>3

求出-5的补码,再去掉后3位数字,再到前面添加3个111

无符号位移>>>:+5>>>3

求出5的原码(或-5的补码),再去掉后3位数字,再到前面添加3个000

注意点:在位移运算里,如果移动的位数大于所操作类型的位数,需要对移动的位数%该类型的位数

(3)自增++、自减--

操作对象:变量(不能是具体的值)

原理:a++和++a的区别

相同点:都是对a进行加1

不同点:a++操作的是加1前的值,++a操作的是加1后的值

(4)逻辑运算

&、|、^、~

操作对象:boolean值(true、false)

(5)关系运算

>、<、=、>=、<=、!=

2.类型转换

转换规则:

a、boolean不参与类型转换

b、括号里的类型不会相互转换,只会自动转换成括号外面的类型

(byte  short  char)   int  long   float   double

从左向右为自动转换

从右向左为强制转换。

强制转换的类型会出现内存溢出:eg

int a03=2100000000;

int a04=2100000000;

int result=a03+a04;

System.out.printIn(result);//内存溢出

你可能感兴趣的:(j2se回顾总结(二))