2018年6月24日 星期日
2018年4月9日 星期一
Re:还在用JSON? Google Protocol Buffers 更快更小 (原理篇)
看了這篇
https://mp.weixin.qq.com/s?__biz=MzUyNzMwMTAwNw==&mid=2247483736&idx=1&sn=247c204880bde06eda8b77fd14e4d93a&chksm=fa00e1b8cd7768aee094020746eda244b26f2bb78332e8c68257f80d7966ed1ba82ed23dfe23&scene=21#wechat_redirect
順便學習了一些程式編碼問題與複習(雖然這篇後段完全看不懂...)
首先先看這篇,先了解原碼、反碼、補碼
http://www.cnblogs.com/en-heng/p/5570609.html
然後 裡面有計算ZigZag
根據int 編碼
https://mp.weixin.qq.com/s?__biz=MzUyNzMwMTAwNw==&mid=2247483736&idx=1&sn=247c204880bde06eda8b77fd14e4d93a&chksm=fa00e1b8cd7768aee094020746eda244b26f2bb78332e8c68257f80d7966ed1ba82ed23dfe23&scene=21#wechat_redirect
順便學習了一些程式編碼問題與複習(雖然這篇後段完全看不懂...)
首先先看這篇,先了解原碼、反碼、補碼
http://www.cnblogs.com/en-heng/p/5570609.html
然後 裡面有計算ZigZag
根據int 編碼
h(n) = (n << 1) ^ (n >> 31)依照範例 數值 1,-1來練習if n=1;original code=0,0000000000,0000000000,0000000000,1n<<1= 0,0000000000,0000000000,0000000001,0n>>31= 0,0000000000,0000000000,0000000000,0(n << 1) ^ (n >> 31)^ => 0,0=0 1,0=1 0,1=1 1,1=0so = 0,0000000000,0000000000,0000000001,0Decimal=2--------------------------------------------------------------- if n=-1;original code=1,0000000000,0000000000,0000000000,1反碼=1,1111111111,1111111111,1111111111,0補碼=1,1111111111,1111111111,1111111111,1 n<<1= 1,1111111111,1111111111,1111111111,0n>>31= 1,1111111111,1111111111,1111111111,1(n << 1) ^ (n >> 31)^ => 0,0=0 1,0=1 0,1=1 1,1=0so = 0,0000000000,0000000000,0000000000,1Decimal=1
2018年3月8日 星期四
轉傳:用 ConstraintLayout 解決鍵盤擋住輸入框及按鈕
https://medium.com/joe-tsai/%E7%94%A8-constraintlayout-%E8%A7%A3%E6%B1%BA%E9%8D%B5%E7%9B%A4%E6%93%8B%E4%BD%8F%E8%BC%B8%E5%85%A5%E6%A1%86%E5%8F%8A%E6%8C%89%E9%88%95-642fe2a9b855
這個方法太棒了,想在這做個紀錄
這個方法太棒了,想在這做個紀錄
2018年2月25日 星期日
關於eclipse主題顏色
我依照這篇更改我的eclipse主題,讓白色主題換成黑色
https://samkuo.me/post/2013/10/eclipse-dark-theme/
但有可能系統不一樣或者是版本差異,我選了Dark Juno,Color Theme則選擇RecognEyes
然後有時候變更主題他不會儲存
我會先依照這個更改
https://github.com/eclipse-color-theme/eclipse-color-theme/issues/223
在依照這個
https://stackoverflow.com/questions/30145776/eclipse-color-theme-reverts-to-default-every-time-i-exit
就成功了
https://samkuo.me/post/2013/10/eclipse-dark-theme/
但有可能系統不一樣或者是版本差異,我選了Dark Juno,Color Theme則選擇RecognEyes
然後有時候變更主題他不會儲存
我會先依照這個更改
https://github.com/eclipse-color-theme/eclipse-color-theme/issues/223
在依照這個
https://stackoverflow.com/questions/30145776/eclipse-color-theme-reverts-to-default-every-time-i-exit
就成功了
2018年2月1日 星期四
重灌電腦加系統複製
因為我灌了一整天,想說紀錄一整天的經驗
1.別用Acronis True Image WD,我弄了一個下午重開機,都沒跑進去系統複製,結果換了一個軟體力馬就行,我用的是MiniTool Partition Wizard Free
複製教學:http://blog.xuite.net/yh96301/blog/394356641-MiniTool+Partition+Wizard+Free+9.1%E8%A4%87%E8%A3%BDWindows+10
然後如果有不要的硬碟要格式化,如果在[我的電腦] 按右鍵 [管理] -> [磁碟管理] 可以格式化,但如果有系統硬碟的話,要用cmd指令
教學:https://www.techbang.com/posts/6982-a-to-delete-a-stubborn-stick-ji-efi-partition-yang-liwei
1.別用Acronis True Image WD,我弄了一個下午重開機,都沒跑進去系統複製,結果換了一個軟體力馬就行,我用的是MiniTool Partition Wizard Free
複製教學:http://blog.xuite.net/yh96301/blog/394356641-MiniTool+Partition+Wizard+Free+9.1%E8%A4%87%E8%A3%BDWindows+10
然後如果有不要的硬碟要格式化,如果在[我的電腦] 按右鍵 [管理] -> [磁碟管理] 可以格式化,但如果有系統硬碟的話,要用cmd指令
教學:https://www.techbang.com/posts/6982-a-to-delete-a-stubborn-stick-ji-efi-partition-yang-liwei
2017年12月3日 星期日
關於Java queue類說明
Java5中的queue類是隊伍數據結構管理類, 在它裡面的元素可以按照添加他們的相同順序被移除。
使用方法
| offer | 添加一個元素並返回 | 如果隊伍已滿,則返回false |
| poll | 移除並返回隊伍頭部的元素 | 如果隊伍為空,則返回null |
| peek | 返回隊伍頭部元素 | 如果隊伍為空,則返回null |
| put | 添加一個元素 | 如果隊伍滿,則阻塞 |
| take | 移除並返回隊伍頭部的元素 | 如果隊伍為空,則阻塞 |
| element | 返回隊伍頭部的元素 | 如果隊伍為空,則拋出一個NoSuchElementException |
| add | 增加一個元素 | 如果隊伍已滿,則拋出一個IegaISalbEePeplian |
| remove | 移除並返回隊伍頭部的元素 | 如果隊伍為空,則拋出一個NoSuchElementException |
| 方法\處理方法 | 拋出異常 | 返回特殊值 | 一直阻塞 | 超時退出 |
| 插入方法 | add(e) | offer(e) | put(e) | offer(e,time,unit) |
| 移除方法 | remove() | poll() | take() | poll(time,unit) |
| 檢查方法 | element() | peek() | 不可用 | 不可用 |
但poll和peek方法出錯會返回null,因此向隊伍插入null是不合法的行為。
還有帶超時的 offer和poll方法重載,例如下面的呼叫
boolean result=q.offer(value,100,TimeUnit.MILLISECONDS)
嘗試在100毫秒內向隊伍尾部插入一個元素,如果成功返回true,但當超時進入時會返回false,同樣地,呼叫
Object head=q.pll(100,TimeUnit.MILLSECONDS)
如果在100毫秒內成功地移除了隊伍頭元素,則立即返回頭部元素,否則到達超時,返回null。
阻塞的操作有put和take,put方法是隊伍滿時阻塞,take方法是隊伍空時阻塞。
(阻塞的意思就是此條線程會處於等待卡死狀態,解鎖的條件是隊列中有另一條線程存入或取出數據了,就會解鎖,說白了就是滿了不能再存,空了不能取,都得等著,就相當於隊列是倉庫,倉庫沒有貨了就生產,倉庫有貨就能消費,鎖條件是notFull和notEmpty)
Queue接口和List、Set同一級別,都是繼承Collection 接口,LinkedList實現Queue介面,Queue介面窄化了對LinkedList的方法訪問權限(即是方法中的參數類型是Queue時,就完全只能訪問Queue接口所定義的方法了,而不能直接訪問LinkedList的非Queue方法
JDK7提供了7个阻塞队列。分别是
- ArrayBlockingQueue :一个由数组结构组成的有界阻塞队列。
- LinkedBlockingQueue :一个由链表结构组成的有界阻塞队列。
- PriorityBlockingQueue :一个支持优先级排序的无界阻塞队列。
- DelayQueue:一个使用优先级队列实现的无界阻塞队列。
- SynchronousQueue:一个不存储元素的阻塞队列。
- LinkedTransferQueue:一个由链表结构组成的无界阻塞队列。
- LinkedBlockingDeque:一个由链表结构组成的双向阻塞队列。
http://www.infoq.com/cn/articles/java-blocking-queue
https://zhidao.baidu.com/question/541161936.html
http://www.itread01.com/content/1501578122.html
2017年10月23日 星期一
Word 數字 數值加上千分位和金錢符號$
在某ㄧ次的機遇,我需要把整份Word數值改成有千分位並開頭加上$符號
上網查了一下,幾乎都說要插入Excel,但其實使用Word替代和正規表示法就可以解決了
例如Word有下列ㄧ串數字,則就使用右方格式做轉換
76543210 =>尋找目標([0-9]{2})([0-9]{3})([0-9]{3}) 取代為$\1,\2,\3
6543210 =>尋找目標([0-9]{1})([0-9]{3})([0-9]{3}) 取代為$\1,\2,\3
543210 =>尋找目標([0-9]{3})([0-9]{3}) 取代為$\1,\2
43210 =>尋找目標([0-9]{2})([0-9]{3}) 取代為$\1,\2
3210 =>尋找目標([0-9]{1})([0-9]{3}) 取代為$\1,\2
210 =>尋找目標([!,$])([0-9]{3}) 取代為\1$\2
10
0
如果要使用的話,請從上至下開始取代,然後數值為百位數時最好自己手動輸入,因為容易因為其他項目符號,或者是不需要當作金錢的數值,ㄧ起取代掉
訂閱:
文章 (Atom)