Java泛型(4)泛型常見面試題


1. Java的泛型是如何工作的 ? 什么是類型擦除 ?

https://www.cnblogs.com/JohnTeslaaa/p/12706786.html

2.List<? extends T>和List <? super T>之間有什么區別 ?

https://www.cnblogs.com/JohnTeslaaa/p/12706615.html

3.如何編寫一個泛型方法,讓它能接受泛型參數並返回泛型類型?

https://www.cnblogs.com/JohnTeslaaa/p/12706615.html

4.Java中如何使用泛型編寫帶有參數的類?

https://www.cnblogs.com/JohnTeslaaa/p/12706615.html

5.編寫一段泛型程序來實現LRU緩存?

  • Map中帶入參數<K,V>
  • 重寫LinkedHashMap的removeEldestEntry()的方法即可
package LRU;

import java.util.LinkedHashMap;
import java.util.Map;

public class UseLinkedHashMapCache<K, V> extends LinkedHashMap<K, V> {
    private int cacheSize;

    public UseLinkedHashMapCache(int cacheSize) {
        super(16, 0.75f, true);
        // true 表示讓 linkedHashMap按照訪問順序來進行排序,最近訪問的放在頭部,最老訪問的放在尾部。
        this.cacheSize = cacheSize;
    }

    @Override
    protected boolean removeEldestEntry(Map.Entry<K, V> eldest) {
        // 當map中的數據量大於指定的緩存個數的時候,就自動刪除最老的數據。
        return size() > cacheSize;
    }
}

6.你可以把List 傳遞給一個接受List 參數的方法嗎?

不可以,參考https://www.cnblogs.com/JohnTeslaaa/p/12708928.html

附錄:試題來源參考
https://www.cnblogs.com/huajiezh/p/6411123.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM