3C科技 娛樂遊戲 美食旅遊 時尚美妝 親子育兒 生活休閒 金融理財 健康運動 寰宇綜合

Zi 字媒體

2017-07-25T20:27:27+00:00
加入好友
最近公司打算招幾個 Java 開發人員,正巧在 Reddit 上看到了該文,順手翻譯了一波。只是單純的問題列表,可能較水,慎進。面向對象編程的基本理念與核心設計思想解釋下多態性(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 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 的生命周期包含哪些步驟?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學習交流群,群號碼:392216227我們一起學Java!

本文由yidianzixun提供 原文連結

寫了 5860316篇文章,獲得 23313次喜歡
精彩推薦