Java進階面試問題列表

来源:http://www.cnblogs.com/java1024/archive/2017/11/03/7776731.html
-Advertisement-
Play Games

面向對象編程的基本理念與核心設計思想 解釋下多態性(polymorphism),封裝性(encapsulation),內聚(cohesion)以及耦合(coupling)。 繼承(Inheritance)與聚合(Aggregation)的區別在哪裡。 你是如何理解乾凈的代碼(Clean Code)與 ...


面向對象編程的基本理念與核心設計思想

  • 解釋下多態性(polymorphism),封裝性(encapsulation),內聚(cohesion)以及耦合(coupling)。

  • 繼承(Inheritance)與聚合(Aggregation)的區別在哪裡。

  • 你是如何理解乾凈的代碼(Clean Code)與技術負債(Technical Debt)的。

  • 描述下常用的重構技巧。

  • 闡述下 SOLID原則。

  • 其他的譬如 KISS,DRY,YAGNI 等原則又是什麼含義。

  • 什麼是設計模式(Design Patterns)?你知道哪些設計模式?

  • 你有瞭解過存在哪些反模式(Anti-Patterns)嗎?

  • 你會如何設計登陸艦/數學表達式計算程式/一條龍?

  • 你知道哪些基本的排序演算法,它們的計算複雜度如何?在給定數據的情況下你會傾向於使用哪種演算法呢?

  • 嘗試編寫如下代碼: 
    -計算指定數字的階乘 
    -開發 Fizz Buzz 小游戲 
    -倒轉句子中的單詞 
    -迴文字元串檢測 
    -枚舉給定字元串的所有排列組合

Java 核心概念

  • equals 與 hashCode 的異同點在哪裡?Java 的集合中又是如何使用它們的。

  • 描述下 Java 中集合(Collections),介面(Interfaces),實現(Implementations)的概念。LinkedList 與 ArrayList 的區別是什麼?

  • 基礎類型(Primitives)與封裝類型(Wrappers)的區別在哪裡?

  • final 與 static 關鍵字可以用於哪裡?它們的作用是什麼?

  • 闡述下 Java 中的訪問描述符(Access Modifiers)。

  • 描述下 String,StringBuilder 以及 StringBuffer 區別。

  • 介面(Interface)與抽象類(Abstract Class)的區別在哪裡。

  • 覆蓋(Overriding)與重載(OverLoading)的區別在哪裡。

  • 異常分為哪幾種類型?以及所謂的handle or declare原則應該如何理解?

  • 簡述垃圾回收器的工作原理。

  • 你是如何處理記憶體泄露或者棧溢出問題的?

  • 如何構建不可變的類結構?關鍵點在哪裡?

  • 什麼是 JIT 編譯?

  • Java學習交流QQ群:589809992 我們一起學Java!

  • Java 8 / Java 7 為我們提供了什麼新功能?即將到來的 Java 9 又帶來了怎樣的新功- - 能?

Hibernate / 資料庫

  • 請解釋下 ORM。

  • 簡述下 Hibernate 的優劣特性。

  • Hibernate 與 JPA 區別在哪?

  • Hibernate 最新版提供了哪些特性?

  • 什麼是懶載入(Lazy Loading)?

  • 什麼是 N+1 難題?

  • 介紹一些熟悉的 Hibernate 註釋。

  • 簡介下 Hibernate Session 與 SessionFactory。

  • Entity Beans 的狀態有哪些。

  • Hibernate 中的緩存分為幾層。

  • Hibernate 中事務的支持分為幾級?

  • 什麼是樂觀鎖(Optimistic Locking)?

  • 簡述下 ACID 原則。

  • 簡述下資料庫正則化(Normalizations)。

  • 請介紹下你日常工作中優化慢查詢(Slow Query)的策略。

Spring

  • 新版的 Spring 中有哪些新特性?

  • 介紹下 Spring 的優勢與缺陷。

  • 什麼是控制反轉(Inversion of Control)與依賴註入(Dependency Injection)?

  • 你用過哪些 Spring 的模塊?

  • Spring 中是如何使用依賴註入的?

  • Spring 中提供了幾種自動註入的機制?

  • 介紹下 Spring MVC。

  • Spring 中 Scopes 有哪些?

  • Spring 中 Bean 的生命周期包含哪些步驟?

  • Java學習交流QQ群:589809992 我們一起學Java!

  • Spring Bean 與 EJB Bean 的區別在哪裡?

其他主題

  • 介紹下切麵編程(Aspect Oriented Programming)。

  • 概述下 GET 與 POST 的區別。

  • Web Server、Web Container 與 Application Server 的區別是什麼?

  • 簡要介紹下從瀏覽器輸入 URL 開始到獲取到請求界面之後 Java Web 應用中發生了什麼。

  • 什麼是 N 層架構?

  • 微服務(MicroServices)與巨石型應用(Monolithic Applications)之間的區別在哪裡?

  • 你知道哪些商業級設計模式?

  • 你是如何測試一個應用的?知道哪些測試框架?

  • 你是如何測試單個方法的?

  • 在你的職業生涯中,算得上最困難的技術挑戰是什麼?

  • 什麼是領域驅動開發(Domain Driven Development)?

  • 介紹下一些你最愛的 IDE 的常用插件。

  • 除了 IDE 之外,你的日常工作中還會用到哪些工具?

  • 你使用什麼版本管理工具?

  • 分支(Branch)與標簽(Tag)之間的區別在哪裡?

  • 你常用的持續集成(Continuous Integration)、靜態代碼分析(Static Code Analysis)工具有哪些?

我有一個微信公眾號,經常會分享一些Java技術相關的乾貨。如果你喜歡我的分享,可以用微信搜索“Java團長”或者“javatuanzhang”關註。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • decode的作用是將其他編碼的字元串轉換成unicode編碼,如str1.decode('gb2312'),表示將gb2312編碼的字元串str1轉換成unicode編碼。encode的作用是將unicode編碼轉換成其他編碼的字元串,如str2.encode('gb2312'),表示將unico ...
  • 一、幾種枚舉類代碼示例 1、最簡單枚舉類 2、一般枚舉類用法 二、枚舉類方法 1、values()方法,返回一個enum實例的數組,數組中元素嚴格保持其在enum中聲明時的順序 2、ordinal(),返回該enum實例在enum中聲明的次序(從0開始) 3、compareTo()方法,比較enum ...
  • 什麼是框架 ...
  • 1、整數轉二進位 2、搖骰子游戲 3、猜密碼 4、查詢天氣 首先創建city.py ...
  • 人生得意須盡歡,莫使金樽空對月。 先天下之憂而憂,後天下之樂而樂。 大東北的天氣已經漸入佳境了,在夜深人靜的時候,隨著滑鼠的移動,鍵盤清脆的聲音,開啟了今天的睡前代碼工程!今天聊聊JDBC版本的分頁,分頁功能在很多的web項目中都是必須的功能,然而分頁有真假分頁,假分頁,例如某某某網站,你懂得。什麼 ...
  • Spring簡介 網站: 複雜的Java EE項目用Spring才會得到優化,如果太簡單的項目用框架反而會變的麻煩。 ...
  • 背景 最近興趣使然寫了幾個Python庫,也發佈到了Pypi上,雖然沒什麼人下載,但自己在其他機器上用著也會很方便。這裡我向大家介紹一下如何在Pypi上發表自己的Python庫。 準備 註冊賬號 很顯然地要在Pypi上註冊一個賬號。 安裝必要的庫 setuptools 原則上安裝了pip的環境都有s ...
  • 初學者,寫的不好請指出。 #第一步以insertTime為條件查詢時間段內的數據 #第二部步可以選擇是否再以通話Id為條件篩選第一步所查詢出來的數據 #因為使用的是配置文件,所以首先在代碼當前目錄下創建一個配置文件,db.conf 代碼: ...
一周排行
    -Advertisement-
    Play Games
  • GoF之工廠模式 @目錄GoF之工廠模式每博一文案1. 簡單說明“23種設計模式”1.2 介紹工廠模式的三種形態1.3 簡單工廠模式(靜態工廠模式)1.3.1 簡單工廠模式的優缺點:1.4 工廠方法模式1.4.1 工廠方法模式的優缺點:1.5 抽象工廠模式1.6 抽象工廠模式的優缺點:2. 總結:3 ...
  • 新改進提供的Taurus Rpc 功能,可以簡化微服務間的調用,同時可以不用再手動輸出模塊名稱,或調用路徑,包括負載均衡,這一切,由框架實現並提供了。新的Taurus Rpc 功能,將使得服務間的調用,更加輕鬆、簡約、高效。 ...
  • 本章將和大家分享ES的數據同步方案和ES集群相關知識。廢話不多說,下麵我們直接進入主題。 一、ES數據同步 1、數據同步問題 Elasticsearch中的酒店數據來自於mysql資料庫,因此mysql數據發生改變時,Elasticsearch也必須跟著改變,這個就是Elasticsearch與my ...
  • 引言 在我們之前的文章中介紹過使用Bogus生成模擬測試數據,今天來講解一下功能更加強大自動生成測試數據的工具的庫"AutoFixture"。 什麼是AutoFixture? AutoFixture 是一個針對 .NET 的開源庫,旨在最大程度地減少單元測試中的“安排(Arrange)”階段,以提高 ...
  • 經過前面幾個部分學習,相信學過的同學已經能夠掌握 .NET Emit 這種中間語言,並能使得它來編寫一些應用,以提高程式的性能。隨著 IL 指令篇的結束,本系列也已經接近尾聲,在這接近結束的最後,會提供幾個可供直接使用的示例,以供大伙分析或使用在項目中。 ...
  • 當從不同來源導入Excel數據時,可能存在重覆的記錄。為了確保數據的準確性,通常需要刪除這些重覆的行。手動查找並刪除可能會非常耗費時間,而通過編程腳本則可以實現在短時間內處理大量數據。本文將提供一個使用C# 快速查找並刪除Excel重覆項的免費解決方案。 以下是實現步驟: 1. 首先安裝免費.NET ...
  • C++ 異常處理 C++ 異常處理機制允許程式在運行時處理錯誤或意外情況。它提供了捕獲和處理錯誤的一種結構化方式,使程式更加健壯和可靠。 異常處理的基本概念: 異常: 程式在運行時發生的錯誤或意外情況。 拋出異常: 使用 throw 關鍵字將異常傳遞給調用堆棧。 捕獲異常: 使用 try-catch ...
  • 優秀且經驗豐富的Java開發人員的特征之一是對API的廣泛瞭解,包括JDK和第三方庫。 我花了很多時間來學習API,尤其是在閱讀了Effective Java 3rd Edition之後 ,Joshua Bloch建議在Java 3rd Edition中使用現有的API進行開發,而不是為常見的東西編 ...
  • 框架 · 使用laravel框架,原因:tp的框架路由和orm沒有laravel好用 · 使用強制路由,方便介面多時,分多版本,分文件夾等操作 介面 · 介面開發註意欄位類型,欄位是int,查詢成功失敗都要返回int(對接java等強類型語言方便) · 查詢介面用GET、其他用POST 代碼 · 所 ...
  • 正文 下午找企業的人去鎮上做貸後。 車上聽同事跟那個司機對罵,火星子都快出來了。司機跟那同事更熟一些,連我在內一共就三個人,同事那一手指桑罵槐給我都聽愣了。司機也是老社會人了,馬上聽出來了,為那個無辜的企業經辦人辯護,實際上是為自己辯護。 “這個事情你不能怪企業。”“但他們總不能讓銀行的人全權負責, ...