java中的位运算
与&
或|
异或^
与和或理解相对简单一点,异或查了一下网络,给出的意思就是如果异或就相当于位相加,但是不进位,这样理解就特别简单。例如:0+0=0,1+0=1,0+1=1,1+1=0
这就是结果了。
计算机的数据表示:
计算机只定义了正数表示,并没有定义负数的表示形式。所以负数一般用
补码的形式表示。
正数:原码,补码,反码相同。
负数:反码的符号为1,其他位置取反。补码=反码+1.
左移:二进制向左移动相应位数,右边剩下的空位用0填充。‘
右移:二进制向右移动相应位数,左边空位如果为正数则用0填充,如果为负数用1填充。
数组:
数组的生命及初始化
动态形式(就是先不初始化,先生命而已)
int a[] = new int [10];
a[1] = 2;
另外一种是静态(及声明时就初始化)
int a[] = {0,1,2}
java适配器模式:设计的原因:一个类想要实现一个接口必须要实现全部的抽象方法,但是有时候实现类不需要全部抽象方法,所以有了适配器模式作为过渡类,适配器类需要将接口中的方法全部实现,并且方法为空,这样子类在需要实现方法时就继承适配器类并重写相应的方法就可以。
java工厂模式:设计的原因:也是一个过渡的类,解决更改主类中方法的问题。在使用具体子类时直接调用工厂类中方法即可。
对于一个设计比较好的类来说,最好覆写Objec类中的equals()hashCode()toString()三个方法。