天天看點

如何成為一名Java開發者?

    Java是當今世界三大程式設計語言之一。它可被用來開發Web應用和桌面應用,而且它是跨平台的 - 一次編譯,多處運作(write once, run everywhere)。而且,Java上手十分簡單。如果你想要成為一名合格的Java開發者,你需要看看自己是否知道一下内容。

    下面的清單是由一個進階Java開發者Vivek Vermani總結的。

    對于一個核心Java開發者來說,他最好應了解以下内容。

    (1) 面向對象(OOP)的概念

    (2) 抽象類(abstract class)和接口(interface)

    (3) 構造函數(constructor)和初始化順序

    (4) 檔案輸入/輸出(IO)和序列化(serialization)

    (5) 集合(collection) - List、Map、Set

    (6) 通路修飾符(access specifier)

    (7) 異常(exception) - 檢測(checked)、未檢測(unchecked)

    (8) 泛型(generic)

    (9) Java保留字 - static、final、volatile、synchronized、transient、this、super等

    (10) JVM和記憶體管理

    (11) 多線程(multithreading)及同步(synchronized)

    (12) 設計模式(design pattern)

    (13) 反射(reflection)

    (14) Lambda表達式

    《Java面試問題及答案-快速浏覽》中包含200多個有關Java核心技術的問題。

    如果你想關注網絡(network) / 分布式(distributed)應用,你需要了解:

    (1) 通信協定,如IP、HTTP、TCP、FTP、UDP,閱讀相關RFC文檔是很有必要的

    (2) 異步(synchronous)通信 vs 同步(asynchronous)通信

    (3) socket

    (4) 諸如遠端方法調用(RMI,Remote Method Invocation)、RCP等技術

    (5) 消息隊列(message queue)

    (6) 接口API,如JMS、JDBC、ORM、Hibernate

    如果需要開發基于Java的Web應用,則要學習以下内容:

    (1) JSP / Servlets

    (2) Web架構,如Struts、Spring

    (3) 面向服務的架構(Service Oriented Architecture)/ Web服務,如SOAP、Rest

    (4) HTML、CSS、Javascript、JQuery等技術

    (5) 标記(Markup)語言,如XML、JSON

    (6) 應用伺服器和Web伺服器,如Tomcat

    (7) 緩存(caching)

    (8) Web應用伺服器,如WebLogic、WebSphere

    (9) 雲服務,如AWS、SoftLayer、BlueMix

    (10) 類庫,如Java mail、log4j、Jackson JSON

    如果需要進行Java UI相關開發,那麼要了解的内容有

    (1) Applet

    (2) 諸如Swing、SWT、AWT等架構

    (3) 進階架構,如JavaFX、JMF

    作為一個Java開發者,了解一些資料庫的知識也是很有必要的。

    (1) SQL查詢 - 内聯接(inner join)、外聯接(outer join)、分組(group by)、having

    (2) 存儲過程(stored procedure)

    (3) 觸發器(trigger)

    (4) 遊标(cursor)

    (5) 資料庫驅動,如JDBC

    (6) JavaBean

    此外,還需要了解有關開發工具、方法論、開發流程等一系列内容。

    (1) 開發工具,如Eclipse、RAD、IntelliJ IDEA

    (2) 設計工具和圖表

    (3) 配置管理工具,如SVN、Clearcase等

    (4) 糾錯(defect)管理

    (5) Build工具,如Maven、Ant等

    (6) 測試 - 單元測試(unit testing)、JUnit、黑盒(black box)、白盒(white box)

    (7) 開發方法論 - 靈活開發(agile)、瀑布流(waterfall)、疊代(iterative)

    (8) 需求分析(requirement analysis)

    (9) 釋出(release)管理

    (10) 逆向工程(reverse engineering) - JadClipse(一種Java反編譯器)

    (11)  Open JDK源代碼 - Mercurial on Eclipse

    下面的連結對你的學習可能會有所幫助

    (1) The Java Tutorials

    (2) Java revisited

    (3) JavaWorld

    (4) Java2s - Many Java code snippets

    (5) Java - Interview Questions and Answers - Quick Reference - One Liners

    (6) Java web tutorials

    (7) Java Concurrency / Multithreading Turtorials

    (8) Introduction to Java programming

    (9) 200+ Java / J2EE Interview Questions and Answers

    (10) Struts Framework - Interview Questions and Answers

    (11) Spring Interview Questions FAQs Interview Questions Spring Tutorial JSF Interview Questions Hibernate Interview Questions

    (12) WAS / WSAD / RAD - Interview Questions and Answers

    (13) JavaScript Interview questions and answers

    (14) Interview Questions and Answers on Markup Languate - XML, JSON

原文位址:Want to be a Java developer ?