解釋下多態(tài)性(polymorphism)蚣旱,封裝性(encapsulation)碑幅,內(nèi)聚(cohesion)以及耦合(coupling)。
繼承(Inheritance)與聚合(Aggregation)的區(qū)別在哪里姻锁。
你是如何理解干凈的代碼(Clean Code)與技術(shù)負(fù)載(Technical Debt)的枕赵。
描述下常用的重構(gòu)技巧。
闡述下?SOLID?原則位隶。
其他的譬如 KISS,DRY,YAGNI 等原則又是什么含義。
什么是設(shè)計(jì)模式(Design Patterns)开皿?你知道哪些設(shè)計(jì)模式涧黄?
你有了解過存在哪些反模式(Anti-Patterns)嗎?
你會(huì)如何設(shè)計(jì)登陸艦/數(shù)學(xué)表達(dá)式計(jì)算程序/一條龍赋荆?
你知道哪些基本的排序算法笋妥,它們的計(jì)算復(fù)雜度如何?在給定數(shù)據(jù)的情況下你會(huì)傾向于使用哪種算法呢窄潭?
嘗試編寫如下代碼:
計(jì)算指定數(shù)字的階乘
開發(fā) Fizz Buzz 小游戲
倒轉(zhuǎn)句子中的單詞
回文字符串檢測
枚舉給定字符串的所有排列組合
equals 與 hashCode 的異同點(diǎn)在哪里春宣?Java 的集合中又是如何使用它們的。
描述下 Java 中集合(Collections)嫉你,接口(Interfaces)月帝,實(shí)現(xiàn)(Implementations)的概念。LinkedList 與 ArrayList 的區(qū)別是什么幽污?
基礎(chǔ)類型(Primitives)與封裝類型(Wrappers)的區(qū)別在哪里?
final 與 static 關(guān)鍵字可以用于哪里?它們的作用是什么馍刮?
闡述下 Java 中的訪問描述符(Access Modifiers)茉贡。
描述下 String,StringBuilder 以及 StringBuffer 區(qū)別。
接口(Interface)與抽象類(Abstract Class)的區(qū)別在哪里准潭。
覆蓋(Overriding)與重載(OverLoading)的區(qū)別在哪里趁俊。
異常分為哪幾種類型?以及所謂的handle or declare原則應(yīng)該如何理解刑然?
簡述垃圾回收器的工作原理寺擂。
你是如何處理內(nèi)存泄露或者棧溢出問題的?
如何構(gòu)建不可變的類結(jié)構(gòu)闰集?關(guān)鍵點(diǎn)在哪里沽讹?
什么是 JIT 編譯?
Java 8 / Java 7 為我們提供了什么新功能武鲁?即將到來的 Java 9 又帶來了怎樣的新功能爽雄?
請解釋下 ORM。
簡述下 Hibernate 的優(yōu)劣特性沐鼠。
Hibernate 與 JPA 區(qū)別在哪挚瘟?
Hibernate 最新版提供了哪些特性叹谁?
什么是懶加載(Lazy Loading)?
什么是 N+1 難題乘盖?
介紹一些熟悉的 Hibernate 注釋焰檩。
簡介下 Hibernate Session 與 SessionFactory。
Entity Beans 的狀態(tài)有哪些订框。
Hibernate 中的緩存分為幾層析苫。
Hibernate 中事務(wù)的支持分為幾級?
什么是樂觀鎖(Optimistic Locking)穿扳?
簡述下 ACID 原則衩侥。
簡述下數(shù)據(jù)庫正則化(Normalizations)。
請介紹下你日常工作中優(yōu)化慢查詢(Slow Query)的策略矛物。
新版的 Spring 中有哪些新特性茫死?
介紹下 Spring 的優(yōu)勢與缺陷。
什么是控制反轉(zhuǎn)(Inversion of Control)與依賴注入(Dependency Injection)履羞?
你用過哪些 Spring 的模塊峦萎?
Spring 中是如何使用依賴注入的?
Spring 中提供了幾種自動(dòng)注入的機(jī)制忆首?
介紹下 Spring MVC爱榔。
Spring 中 Scopes 有哪些?
Spring 中 Bean 的生命周期包含哪些步驟雄卷?
Spring Bean 與 EJB Bean 的區(qū)別在哪里搓蚪?
介紹下切面編程(Aspect Oriented Programming)。
概述下 GET 與 POST 的區(qū)別丁鹉。
Web Server妒潭、Web Container 與 Application Server 的區(qū)別是什么?
簡要介紹下從瀏覽器輸入 URL 開始到獲取到請求界面之后 Java Web 應(yīng)用中發(fā)生了什么揣钦。
什么是 N 層架構(gòu)雳灾?
微服務(wù)(MicroServices)與巨石型應(yīng)用(Monolithic Applications)之間的區(qū)別在哪里?
你知道哪些商業(yè)級設(shè)計(jì)模式冯凹?
你是如何測試一個(gè)應(yīng)用的谎亩?知道哪些測試框架?
你是如何測試單個(gè)方法的宇姚?
在你的職業(yè)生涯中匈庭,算得上最困難的技術(shù)挑戰(zhàn)是什么?
什么是領(lǐng)域驅(qū)動(dòng)開發(fā)(Domain Driven Development)浑劳?
介紹下一些你最愛的 IDE 的常用插件阱持。
除了 IDE 之外,你的日常工作中還會(huì)用到哪些工具魔熏?
你使用什么版本管理工具衷咽?
分支(Branch)與標(biāo)簽(Tag)之間的區(qū)別在哪里鸽扁?
你常用的持續(xù)集成(Continuous Integration)、靜態(tài)代碼分析(Static Code Analysis)工具有哪些镶骗?