您好,登錄后才能下訂單哦!
這篇文章主要介紹了java中級面試題的考點有哪些,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
1.SpringMVC,Spring Web MVC是一種基于Java的實現了Web MVC設計模式的請求驅動類型的輕量級Web框架。2.Shiro,Apache Shiro是Java的一個安全框架。3.Mybatis,MyBatis 是支持普通 SQL查詢,存儲過程和高級映射的優秀持久層框架。4.Dubbo,Dubbo是一個分布式服務框架。5.Maven,Maven是個項目管理和構建自動化工具。6.RabbitMQ,RabbitMQ是用Erlang實現的一個高并發高可靠AMQP消息隊列服務器。7.Ehcache,EhCache 是一個純Java的進程內緩存框架。
在我們對java有一定的基礎學習后,能力再往上升一些就是中級。對于初級和中級來說,后者除了對于基礎java內容把握能力強外,在一些知識點的比較分析和原理解剖上有所理解能力。
1.比較接口和抽象類的語法區別
(1)抽象類可以有構造方法,接口中不能有構造方法。
(2)抽象類中可以有普通成員變量,接口中沒有普通成員變量!!!(注意重點在普通,即非靜態和變量)
(3)抽象類中可以包含非抽象的普通方法,接口中的所有方法必須都是抽象的,不能有非抽象的普通方法。
(4)抽象類中的抽象方法的訪問類型可以是public,protected和(默認類型,雖然eclipse下不報錯,但應該也不行),但接口中的抽象方法只能是public類型的,并且默認即為public abstract類型。
2.HashMap,LinkedHashMap,TreeMap的區別
(1)HashMap,LinkedHashMap,TreeMap都屬于Map。
(2)Map的主要作用是用于存儲鍵(key)值(value)對,根據鍵得到值,因此不允許鍵重復,但允許值重復。
(3)HashMap是一個最常用的Map,它根據鍵的HashCode值存儲數據,根據鍵可以直接獲取它的值,具有最快的訪問速度。HashMap最多只允許一條記錄的鍵為Null;允許多條記錄的值為Null;HashMap不支持線程的同步,即任一時刻可以有多個線程同時寫HashMap;可能會導致數據的不一致。如果需要同步,可以用Collections的synchronizedMap方法使HashMap具有同步的能力。
(4)LinkedHashMap也是一個HashMap,但是內部維持了一個雙向鏈表,可以保持順序;
(5)TreeMap不僅可以保持順序,而且可以用于排序;
3.Java中堆和棧有什么不同
堆:(對象)
引用類型的變量,其內存分配在堆上或者常量池(字符串常量、基本數據類型常量),需要通過new等方式來創建。
堆內存主要作用是存放運行時創建(new)的對象。
(主要用于存放對象,存取速度慢,可以運行時動態分配內存,生存期不需要提前確定)
棧:(基本數據類型變量、對象的引用變量)
基本數據類型的變量(int、short、long、byte、float、double、boolean、char等)以及對象的引用變量,其內存分配在棧上,變量出了作用域就會自動釋放。
4. 內存溢出是怎么回事?
對象有被指向的引用,但是再也用不到它就是內存溢出了。
GC機制:復制回收,標記清除,引用計數(如果有循環引用后,會影響垃圾回收,所以JVM虛擬機沒有采用此方法進行垃圾回收)。
5.有哪些垃圾回收算法?
垃圾回收從理論上非常容易理解,具體的方法有以下四種:(1)標記-清除;(2)標記-復制;(3)標記-整理;(4)分代回收
6.說一下對存儲過程的理解
存儲過程:存儲過程就是編譯好了的一些sql語句。
存儲過程因為SQL語句已經預編繹過了,因此運行的速度比較快。
可保證數據的安全性和完整性。通過存儲過程可以使沒有權限的用戶在控制之下間接地存取數據庫,從而保證數據的安全。通過存儲過程可以使相關的動作在一起發生,從而可以維護數據庫的完整性。
可以降低網絡的通信量。存儲過程主要是在服務器上運行,減少對客戶機的壓力。
存儲過程可以接受參數、輸出參數、返回單個或多個結果集以及返回值。可以向程序返回錯誤原因。
存儲過程可以包含程序流、邏輯以及對數據庫的查詢。同時可以實體封裝和隱藏了數據邏輯。
7.數據庫連接池是什么意思
像打開關閉數據庫連接這種和數據庫的交互可能是很費時的,尤其是當客戶端數量增加的時候,會消耗大量的資源,成本是非常高的。可以在應用服務器啟動的時候建立很多個數據庫連接并維護在一個池中。連接請求由池中的連接提供。在連接使用完畢以后,把連接歸還到池中,以用于滿足將來更多的請求。
8.HashMap的底層實現
首先有一個每個元素都是鏈表(可能表述不準確)的數組,當添加一個元素(key-value)時,就首先計算元素key的hash值,以此確定插入數組中的位置,但是可能存在同一hash值的元素已經被放在數組同一位置了,這時就添加到同一hash值的元素的后面,他們在數組的同一位置,但是形成了鏈表,同一各鏈表上的Hash值是相同的,所以說數組存放的是鏈表。而當鏈表長度太長時,鏈表就轉換為紅黑樹,這樣大大提高了查找的效率。
感謝你能夠認真閱讀完這篇文章,希望小編分享的“java中級面試題的考點有哪些”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。