Java作为一种开发语言被广大的开发人员所喜爱,经常的看到网上一直有人问怎么能学好java。其实这是一个仁者见仁智者见智的问题。网上也有很多的回答,而我的方法比较简单但同时也是比较有效。就是去尝试看jdk的各种短信接口。如果能把jdk的短信接口吃的很透。我想离技术大牛的位置就不远了
言归正传,写的很多年的代码了经常使用到hashMap这个类,闲来无事就像看看他里边的源码(前提你要装一下反编译工具,否则。。。)打开源文件之后看到了一堆<<,>> 等等
完全不知所云。
其实这是就凸显出了一个概念“位运算”。Java位运算中 主要包含与、位或、位非、有符号左移、有符号右移、无符号右移、异域等等一下有几个例子说明:
位与&(真真为真 真假为假 假假为假)
4&6
0000 0000 0000 0000 0000 0000 0000 0100
0000 0000 0000 0000 0000 0000 0000 0110
0000 0000 0000 0000 0000 0000 0000 0100
结果:4
位或|(真真为真 真假为真 假假为假)
4|6
0000 0000 0000 0000 0000 0000 0000 0100
0000 0000 0000 0000 0000 0000 0000 0110
0000 0000 0000 0000 0000 0000 0000 0110
结果:6
位非~(取反码)【注:Java中正数的最高位为0,负数最高位为1,即最高位决定正负符号】
~4
0000 0000 0000 0000 0000 0000 0000 0100
1111 1111 1111 1111 1111 1111 1111 1011
解码:先取反码,再补码
0000 0000 0000 0000 0000 0000 0000 0100
0000 0000 0000 0000 0000 0000 0000 0101
结果:-5
位异或^(真真为假 真假为真 假假为假)
4^6
0000 0000 0000 0000 0000 0000 0000 0100
0000 0000 0000 0000 0000 0000 0000 0110
0000 0000 0000 0000 0000 0000 0000 0010
结果:2
......
其实位运算在很大程度上用于性能的优化。而在数据运算也有着举足轻重的地位。同时在加密算法中也是佼佼者。
最后,阅信小编要补充一句:这是一篇来自阅信短信验证码平台技术的一些技术感悟,就是这些人在不断探索,不断完善着我们的短信平台.