美文网首页
j2se回顾总结(二)

j2se回顾总结(二)

作者: 璎珞花树下 | 来源:发表于2017-10-03 17:43 被阅读0次

    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回顾总结(二)

          本文链接:https://www.haomeiwen.com/subject/cslfyxtx.html