ARTS-第一週,習慣養成

Algorithm

整數反轉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();
    }
複製代碼

Review

沒有閱讀ui

Tip

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接口便可

Share

java鎖淺析: link.spa

相關文章
相關標籤/搜索