JavaRush /Java Blog /Random-TW /爪哇。行動計劃

爪哇。行動計劃

在 Random-TW 群組發布
爪哇。 行動計劃 - 1

內容:

  1. 第 0 節 - Java 核心
  2. 工具
  3. JDK API
  4. Java 8 的新增功能
  5. SQL、資料庫、JDBC
  6. 架構架
  7. 用於測試的程式庫和框架
  8. 服務庫
  9. API客戶端
  10. 設計模式
  11. 附加知識
潛在的 Java Junior 應該了解什麼才能獲得第一份工作或至少申請好公司的實習生職位?哪些工具可以幫助 Java 程式設計師達到新的水平?哪些技術需要研究,哪些技術可以留到以後再研究?這些問題沒有標準答案,就像沒有絕對適合所有人的單一行動計劃一樣。一些公司努力發展,不斷引入新技術並測試新版本語言的功能,而其他公司則頑固地堅持舊版本。還有「中間」選項,也許還有更多。不過,我們為有抱負的 Java 開發人員整理了路線圖或路線圖。為了盡可能簡單,我們僅指出了絕大多數「javistes」所需的技術和主題。應該記住,並不是所有的事情都需要詳細研究(上面的一些內容只能透過團隊合作才能掌握),但對它們有一個大致的了解也無妨。

0.第零節-Java核心

我們在文章中插入了第 0 節,以防萬一,一個剛打算學習 Java 卻不知道從哪裡開始的人進來了。Java Core 即使是初學者也應該非常了解。也就是說,了解基本知識,以語言提供的內容為指導來解決特定問題,並在簡單的情況下能夠應用這些知識。您可以在 JavaRush 上練習 Java Core,如果您還沒有這樣做,我們邀請您參加課程!好吧,對於其他人,讓我們提醒您 Java Core 的主要里程碑:
  • 基本 Java 結構、運算子和資料類型
  • OOP 及其在 Java 中的實現
  • 例外情況
  • Java集合
  • 泛型
  • 多執行緒

1. 工具

IDE或整合開發環境

現代開發人員的主要工具是 IDE。如今市場上有許多這樣的名稱,但在專業 Java 開發中通常只有兩個名稱。這是免費的Eclipse ,它基於插件構建,連續多年佔據主導地位,而IntelliJ IDEA近年來一直在積極取代 Eclipse,儘管事實上需要訂閱 Ultimate 版本專業人士是要花錢的。讓我們提醒您,在 JavaRush 課程中我們使用 Community IntelliJ IDEA 的免費版本,與 Ultimate 相比,它有一定的功能限制。「我了解IDE」意味著你熟悉開發環境的基本功能,知道如何編譯、運行、調試和測試文件,以及重構程式碼。掌握熱鍵將對加快你的工作速度有很好的幫助。不要偷懶,花幾個小時學習您不知道的 IDE 功能,並開始在實作中使用它們。並且不要忽視調試,這是一項非常有用的技能。所有這些操作將有助於顯著提高您的工作速度和品質。

自動組裝工具

如今,Java 專案最常使用 Maven 和 Gradle 等工具。沒有必要徹底研究它們,但了解它們之間的差異、它們基於什麼、任務是什麼(在 Gradle 中)以及 Maven 中的目標階段將很有用。了解這些系統並在其上部署幾個小專案就足夠了。這很簡單,您會在實際工作條件中了解細節。

版本控制系統和線上託管服務

版本控制系統可以幫助程式設計師在一個團隊中處理一個共同的項目,而不會「破壞」它,同步不同人編寫的不同程式碼片段,回滾不成功的更新並添加新的更新。最常見的是兩個版本控制系統。其中一種是分散式的,稱為 Git,第二種是集中式的,稱為 SVN(又稱 Subversion)。如今,Git 已成為事實上的標準。使用該系統更加方便和容易;所有 IDE(以及 SVN)都支援它。可以快速、輕鬆地嘗試使用 Git;幸運的是,Internet 上有很多關於此主題的資訊。例如,互動式教科書GitHowTo,有俄語版本(很快就能讀完)。對於新手開發人員來說,掌握版本控制系統的線上託管服務非常重要。大多數情況下,它們基於 Git,並被稱為 Git 平台(儘管其中一些可以與不同的版本控制系統配合使用)。其中最受歡迎的是 GitHub。BitBucket 和 GitLab 也很常見。這些系統可以幫助您儲存和檢索程式碼,並且還可以執行 Git 可以執行的操作,只是不是透過命令列,而是透過介面。GitHub 還允許您直接在網站上檢查程式碼並提供問題的解決方案。在那裡您還可以找到其他人的開源項目,並嘗試提供自己的解決方案來改進它。本質上,GitHub 是一種面向開發者的社交網路。因此,如果您還沒有這樣做,請務必在 GitHub 上建立帳戶並在那裡託管您的專案。請同時閱讀有關 GitLab 和 BitBucket 的信息,如果您有時間,可以嘗試它們,它們有免費版本。順便說一句,所有這些平台都與現代 IDE 完全整合。 爪哇。 行動計劃 - 2

2.JDK接口

本節重點介紹現代 Java 開發人員需要非常自信地了解的 JDK API。對於程式設計師來說,時不時地查看這些程式庫的原始程式碼、瀏覽它們並了解何時需要使用它們以及為什麼使用它們並沒有什麼壞處。副作用:如果您精通這些 API,您可能會更輕鬆地在面試中取得好成績。

Java集合框架

Java Collection Framework 是 Java 語言最重要的 API 之一,每個開發人員都應該了解它。它表示 Java 中標準資料結構(例如列表、鍊錶、集合、堆疊、佇列、雜湊表等)的介面和實作的層次結構。開發人員必須充分了解 ArrayList、HashMap、HashSet、LinkedHashSet、TreeSet 等類,並了解它們的屬性。特別是,您需要了解特定集合的標準操作(索引、搜尋、插入、刪除)的時間和記憶體成本,並在此基礎上正確地將它們應用到您的專案中。Java中的集合實作得很好,但是如果有需要,開發人員可以提供自己的實作。精通集合的程式設計師可以擴展或重新定義已編寫的類別中的邏輯,或從頭開始實作所有內容。

Java並發API

Java 最初設計用於支援平行編程,從 5.0 版本開始,語言包含用於平行執行緒的高階 API。因此,一個稱職的 Java 開發人員必須對多執行緒有充分的了解,並了解java.util.concurrent.*套件中的主要 API 。至少,你需要知道並清楚地理解什麼是Thread、Runnable、物件鎖定和同步。請務必了解死鎖、活鎖、競爭條件的概念以及如何處理它們。要充滿信心,請學習 java.util.concurrent.* 中的同步器,例如 Semaphore、CyclicBarrier、CountDownLatch、Phaser、Exchanger<V>、CompleteableFuture 等。還有 Callable 和 Future 介面。

Java I/O API

新手開發者往往忽略對Java I/OJava Non-blocking I/O的深入學習。但這是徒勞的:這些 Java API 使執行緒處理變得更加容易,並且經常在實際應用程式中使用。特別是 java.io 套件中的 File、InputStream、OutputStream、Reader 和 Writer 等類,它們是 Java IO API 的核心。Java 非阻塞 I/O (java.nio) 是旨在實現高效能 I/O 操作的應用程式介面的集合。其中特別包括 ByteBuffer、FileChannel 和 Selector 等。花點時間去了解這些 API,你不會後悔的。

設備類別物件

一旦了解 Object 超類,從某種意義上說,您就成為了“Java 母語人士”,可以更好地了解 OOP 結構和許多流程。java.lang.Object 類別位於類別層次結構的最頂層。除了更好地理解正在發生的事情之外,了解類別的方法將使面試變得更加容易——面試官只是喜歡使用 Object 類別及其物件來測試候選人。

3.Java 8的新特性

儘管 Java 8 發布已經過去了很多年,而且其他編號的更新也已經出現,但第八個版本才成為標誌性的。它引入了重要的創新,這些創新簡化並在某種意義上改變了 Java 程式設計方法。您必須了解如何使用 lambda 表達式,以及 Java 8 中的 Stream API 以及新的日期和時間 API。

4. SQL、資料庫、JDBC

很少有 Java 開發人員在工作中不會遇到 SQL 查詢和資料庫。因此,了解什麼是 SQL 和關聯式資料庫、它們如何運作以及能夠編寫簡單的查詢來連接兩個表非常重要。對於訓練,您可以嘗試使用其中一種 DBMS,例如PostgreSQLMySQL。獲得非關聯式資料庫、noSQL 方法的基本知識以及對面向文件的 DBMS MongoDB的膚淺熟悉也將是一件好事。若要使用純 Java 操作資料庫,您可以使用JDBC標準以及同名的 API。它作為 java.sql 套件實現,包含在 JDK 中。如今,它很少以其純粹的形式使用,但通常可以在較舊的支援應用程式中找到它,而更現代和普遍接受的工具通常基於此標準。

5. 框架

如今,在對初級 Java 開發人員的要求中,您可以越來越多地找到「Spring、Hibernate、Spring Boot 的知識」。自己學習這些技術是一項非常困難的任務,但儘管如此,這是可能的,尤其是在表面層面。當你工作時,會有更深刻的理解。所以。

Spring框架

如今,幾乎所有用 Java 建置的應用程式都使用 Spring 框架。這個強大的框架提供了一個特定的座標系,這是建立應用程式的支柱。Spring 應用程式更容易測試和維護。這一切都歸功於依賴注入。

休眠

對 Java 開發人員來說另一個最重要的框架是 Hibernate。它實作了 JPA(Java Persistence API)規範,解決了物件關係映射(ORM)問題。大多數 Java 應用程式都與資料庫交互,如果我們談論的是關係資料庫,那麼在沒有 Hibernate 的情況下使用它們會很不方便。該框架為開發人員提供了許多重要的功能,特別是開箱即用的快取和事務,這反過來又使他們能夠將精力集中在開發應用程式邏輯上,並將程式設計師在使用關聯式資料庫時從許多低階任務中解放出來。 。這顯著提高了開發人員的工作效率。

春季MVC

該框架使用鬆散耦合的現成元件,確保根據模型 - 視圖 - 控制器模式進行應用程式開發。研究這個模式(設計模式將在下面討論)和Spring MVC的邏輯。在實踐中它被經常使用。

春季啟動

憑藉正確的技能,Spring 可以輕鬆建立 Java 應用程式。反過來,Spring Boot 可以輕鬆創建基於 Spring 的 Java 應用程式。Spring Boot 可讓您輕鬆建立成熟的企業 Spring 應用程序,並且可以輕鬆啟動:自動配置消除了與配置 Spring 應用程式相關的大部分麻煩。

6. 用於測試的函式庫和框架

一些未來的開發人員確信測試程式碼根本不是他們關心的,而是被稱為測試人員的特殊人員所關心的。實際上,情況並非如此。測試,尤其是單元測試(最常稱為單元測試),對於每個程式設計師來說都是非常重要的技能。此外,剛開始工作的新人的任務通常是用單元測試覆蓋某人的程式碼。因此,我們強烈建議您學習 JUnit 函式庫並養成為程式碼編寫單元測試的習慣。另請查看 Mockito 框架,它可以與 JUnit 一起使用來建立模擬依賴項類別。

7. 服務庫

Java 擁有大量的服務庫,可以幫助解決開發人員面臨的幾乎所有問題。不可能全部研究它們,而且這樣做也沒有什麼特別的意義。但瀏覽它們是個好主意。在這裡,我們將重點介紹一些在實踐中經常使用的方法。

用於日誌記錄的庫

首先,我們可以提到log4jSlf4j。這些程式庫旨在隱藏 Java 應用程式運行時發生的例行日誌記錄操作的實作。

JSON 函式庫

JSON 是一種從客戶端向伺服器傳輸資訊的格式,是當今最常用的格式。有幾個可以使用 JSON 的優秀庫,最受歡迎的是Jacksongoogle-gson

谷歌番石榴

Guava是由 Google 開發的一個包含核心 Java 程式庫的專案。在這裡,您可以找到新類型的集合(多重映射、多重集等)、不可變集合、圖形、函數式集合、平行實用程式、I/O、雜湊、字串處理等等。

阿帕契共享區

Commons是一個巨大的項目,包含許多用於各種目的的有用的 Java 實用程式。因此,Apache Commons 庫是 Tomcat、Hibernate 和許多其他大型專案的基礎。Apache Commons 中有很多函式庫。讓我們提一下Commons IO,它簡化了I/O操作,Commons CSV用於處理csv文件,Commons Math用於處理複雜的數學和統計操作和計算,Commons CLI用於分析命令列參數。

8.API客戶端

REST 是端點的命名樣式,用於以人類可讀的格式透過網路存取資源。對於現代 Java 開發人員來說,最好了解 REST 思想並了解Spring RestTemplate,這是一個用於建立 REST 用戶端的非常有用的程式庫。

9. 設計模式

如果新手開發者熟悉了設計模式,即Java程式設計中的良好禮儀規則,甚至知道如何在實踐中應用它們,那麼他在勞動市場上的價值就會立即增加。初學者常常低估模式,因為他們在學習時很少創建複雜的應用程式。然而,如果模式不應用於嚴肅的項目,維護和調整程式碼將成為一項極其困難的任務。因此,不要偷懶,研究這些模式並將其應用到您的個人專案中。您未來的雇主將對此非常感激。

10. 附加知識

演算法和資料結構

「演算法和資料結構」是技術大學教授的整個課程的名稱。它揭示了構造各種資料結構的理論基礎。在實作課程中,他們學習如何使用它們——放置和檢索資料、搜尋和排序。其實,這句話中的「演算法」就是排序和搜尋的意思。多年來,計算機科學家開發了許多演算法。其中一些本質上是教育性的,因為儘管實施起來相對容易,但操作起來並不是很有效。例如,它們運行緩慢,這在大型資料池上會很明顯。或者它們消耗大量記憶體。其他演算法已被證明非常有效。以至於它們已被包含在大多數程式語言的官方庫中。因此,今天沒有必要獨立開發此類演算法。知道他們在哪裡就足夠了。 然而,大多數經驗豐富的開發人員建議初學者去「演算法學校」——在學習的同時自己實現它們。這培養了程式設計師的思考。這也有助於面試;他們真的很喜歡問排序和搜尋問題。

小服務程序

servlet 是一種處理使用者請求的方法。如今,它們並沒有到處使用,也並非總是使用,但了解它們將會很有用。

HTML 和 CSS

每個人都應該了解佈局的基礎知識。這些知識很容易獲得,如果您還沒有這樣做,請花幾天時間學習本課程。同時,您將從更複雜的主題中休息一下。

XML

可擴展標記語言曾經在 Java 開發中無所不在。它逐漸被 JSON 取代,但 XML 至今仍在使用。學習起來並不難,所以你可以稍微關心一下這門語言。

JavaScript

對開發人員的調查顯示,即使是與前端開發完全無關的人也會不時地用 JavaScript 編寫腳本。了解這種語言的基礎知識可以被認為是一種良好的禮儀規則,所以不要偷懶,閱讀它並創建一兩個腳本。不會是多餘的。
留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION