整數反轉java
給出一個 32 位的有符號整數,你須要將這個整數中每位上的數字進行反轉。 示例 1:bash
輸入: 123 輸出: 321 示例 2:併發
輸入: -123 輸出: -321 示例 3:app
輸入: 120 輸出: 21post
public int reverse(int x) {
if (x > Integer.MAX_VALUE || x < Integer.MIN_VALUE){
return 0;
}
if (x == 0 ){
return 0;
}
boolean flag = x >= 0;
Long xL = new Long(x);
String xDataStr = new String(Math.abs(xL.longValue())+"");
char[] xData = xDataStr.toCharArray();
StringBuilder dataBuilder = new StringBuilder();
if (!flag){
dataBuilder.append("-");
}
for (int i=0 , total = xDataStr.length() ; i < total ; i++){
if (dataBuilder.toString().length() == 0 && xData[total - i - 1] == '0'){
continue;
}
dataBuilder.append(xData[total - i - 1]);
}
Long result = Long.parseLong(dataBuilder.toString());
if (result.longValue() > Integer.MAX_VALUE || result.longValue() < Integer.MIN_VALUE){
return 0;
}
return result.intValue();
}
複製代碼
沒有閱讀ui
ThreadPoolExector的參數this
參數名稱 | 說明 | 其餘 |
---|---|---|
核心線程數 | 線程池核心線程數量,核心線程不會被回收,即便沒有任務執行,也會保持空閒狀態 | |
最大線程數 | 池容許最大的線程數,當線程數量達到corePoolSize,且workQueue隊列塞滿任務了以後,繼續建立線程。 |
"Isn't this fun?" |
keepAliveTime 保持時間 | 超過corePoolSize以後的「臨時線程」的存活時間 |
|
unit 保持時間 | keepAliveTime的單位 |
|
workQueue 阻塞隊列大小 | 當前線程數超過corePoolSize時,新的任務會處在等待狀態,並存在workQueue中,BlockingQueue是一個先進先出的阻塞式隊列實現,底層實現會涉及Java併發的AQS機制 |
|
threadFactory | 建立線程的工廠類,一般咱們會自頂一個threadFactory設置線程的名稱,這樣咱們就能夠知道線程是由哪一個工廠類建立的,能夠快速定位 |
|
handler 拒絕策略 | 一、AbortPolicy:爲線程池默認的拒絕策略,該策略直接拋異常處理二、DiscardOldestPolicy:丟棄隊列中最老的任務三、CallerRunsPolicy:將任務分配給當前執行execute方法線程來處理四、DiscardOldestPolicy:丟棄隊列中最老的任務 |
自定義拒絕策略,只須要實現RejectedExecutionHandler接口便可 |
java鎖淺析: link.spa