11月28日
27日
++ 在程序中不是线程安全的操作
随着开发能力的提升,对我来说,在开发中线程安全变的越来越重要了,每次使用多线程进行开发都感觉颇为麻烦
该好好学一下spring cloud了。。。
看了几个爬虫功能的帖子,有一种特别想学一下爬虫的冲动
-----------
接手的协议有点问题,顺便学习一下UML和定时器线程池
字节数 & 0xFF 是为了取正数,byte类型在表示255以内的数字时,会把一半的数字表示为负数
& 0xFF 则是为了让这个值变成整数,因为了解位运算的朋友就清楚,,
0xFF 用字节表示是 1111 1111
129 用字节表示是 1000 0001
与运算的规则是两位同时为“1”,结果才为“1”,所以这个计算结果为1000 0001,他不会影响数据的内容,但是129在Java的byte类型是-127,虽然在 & 0xFF 后表现的数值跟理想状态不同,那是为了在转回byte字节时,保证数据的完整性
顺便介绍一下按位与 |
参加运算的两个对象只要有一个为1,其值为1,比如 145|11
145 --- 1001 0001
11 --- 0000 1011
结果为1001 1011 = 155
^ 异或运算符
比如 168 ^ 19 = ?
168 --- 1010 1000
19 ---- 0001 0011
结果为 --- 1011 1011 = 187
运算的规律就是 对应位不同为1,相同为 0
取反运算符 ~
比如 ~243 = ?
243 --- 1111 0011
结果为 0000 1100 = 12
取反就是对字节中的每个数字,1取反为0,0取反为1
左移 <<
12 < 2 = 48
12 --- 0000 1100
48 --- 0011 0000
左移就是字节全部左移右边补0,每左移一位就是 * 2
右移 >>
102 >> 2 = ?
102 --- 0110 0110
结果为---0001 1001 = 25
右移就是字节全部右移左边补0,末位抛弃,每左移一位就是 / 2
这个算法还蛮简单,不过每天玩的太快乐,经常要用的时候现查,好记性不如烂笔头,今天顺便记录一下
记一下UML的贴子 https://www.cnblogs.com/noteless/p/9907703.html 写的蛮好,正在看贴主的其他帖子,记录一下作用,印象深刻一点