關於如何將n(n

突然想到了這個問題,問了一下週圍的人,竟然沒有人回答出來,我這裏就給一個官方的實現吧

    private static int powerOfTwo(int res) {
            if (res <= 2) {
                return 2;
            }
            res--;
            res |= res >> 1;
            res |= res >> 2;
            res |= res >> 4;
            res |= res >> 8;
            res |= res >> 16;
            res++;
            return res;
        }

其實,這段代碼並不是我自己拍腦袋想到的,具體的實現可以參照netty的PoolThreadCache的抽象的靜態內部類private abstract static class MemoryRegionCache的實現函數powerOfTwo,對內存感興趣的同學可以深入理解一下netty的內存管理,建議配合《深入理解linux操作系統》,或者本身有不錯的內存知識和經驗

每天積累一點,每天進步一點

PS:好久沒寫博客了,快到月末了,得多寫寫了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章