Java 進(jìn)階面試問題列表 翻譯自 Java developer interview questions: The hard part ,從屬于筆者的 Java入門與工程實(shí)踐 系列。最近公司打算招幾個(gè) Java 開發(fā)人員,正巧在 Reddit 上看到了該文,順手翻譯了一波。只是單純的問題列表,可能較水,慎進(jìn)。
面向?qū)ο缶幊痰幕纠砟钆c核心設(shè)計(jì)思想
解釋下多態(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ì)傾向于使用哪種算法呢?
嘗試編寫如下代碼: