想知道怎么自學(xué)Java嗎?看看一下幾點(diǎn)
總聽(tīng)到一些人在說(shuō)自學(xué)Java有多難多難,確實(shí),Java不是那么容易能夠掌握的語(yǔ)言,可自己都沒(méi)有嘗試學(xué)過(guò),就只聽(tīng)別人的一面之詞,豈不是要錯(cuò)過(guò)這門前途似錦的開(kāi)發(fā)語(yǔ)言了。
自學(xué)難,其實(shí)跟你的學(xué)習(xí)能力,和學(xué)習(xí)計(jì)劃有關(guān)的。關(guān)于學(xué)習(xí)能力,只能從自身上著原因了,如果你足夠努力,都可以攻破重重知識(shí)點(diǎn)的。關(guān)于學(xué)習(xí)計(jì)劃,如果你還沒(méi)有,可以參考小編的這一套開(kāi)始學(xué),保你從入門到精通。
1.工具
工具部分分為不同的部分。首先,您的IDE,它是您的主要工具,幾乎可以完成您要求的所有操作,例如編譯、運(yùn)行、調(diào)試、分析、測(cè)試、比較文件和代碼、重構(gòu)等等。
第二部分是構(gòu)建工具,您需要使用它來(lái)構(gòu)建和部署Maven和Gradle等項(xiàng)目。這些中的任何一個(gè)就足夠了。我剛剛列出了ANT,但那是針對(duì)遺留項(xiàng)目的。對(duì)于所有新的Java項(xiàng)目,Maven或Gradle。
而且,第三個(gè)也是最關(guān)鍵的部分包括像Docker和Kubernetes這樣的容器,像Jenkins和TeamCity這樣的CI/CD工具,以及像Ansible這樣的基礎(chǔ)設(shè)施自動(dòng)化工具。
2.JDK API
下一個(gè)要學(xué)習(xí)的重要事情是JDK API,這對(duì)任何Java開(kāi)發(fā)人員來(lái)說(shuō)都非常非常重要。這是一個(gè)相當(dāng)大的部分,這就是為什么它被劃分為Java集合框架、Java并發(fā)、Java IO和Java 8 API等核心領(lǐng)域,讓我們逐一探討
1)Java集合框架
這是每個(gè)Java開(kāi)發(fā)人員都應(yīng)該學(xué)習(xí)的最重要的Java API之一。該API提供類Java鏈表、集合、堆棧、隊(duì)列、哈希表、優(yōu)先級(jí)隊(duì)列等標(biāo)準(zhǔn)數(shù)據(jù)結(jié)構(gòu)的實(shí)現(xiàn)。
至少你應(yīng)該了解所有日常對(duì)象,如ArrayList、HashMap、HashSet、LinkedHashSet、TreeSet等。它們每個(gè)都有其不同的屬性,如ArrayList是一個(gè)可以增長(zhǎng)的動(dòng)態(tài)數(shù)組,HashMap是哈希表的標(biāo)準(zhǔn)實(shí)現(xiàn)并且可以用于存儲(chǔ)鍵值對(duì)。
2)Java并發(fā)
在Java Collections之后,接下來(lái),Java中最關(guān)鍵的API就是多線程和并發(fā),我堅(jiān)信,如果你想成為一名稱職的Java開(kāi)發(fā)人員,你必須對(duì)Java Concurrency API有扎實(shí)的理解和掌握。
您不僅應(yīng)該深入了解線程、可運(yùn)行、對(duì)象鎖定和同步等基本概念,還應(yīng)該熟悉死鎖、活鎖、競(jìng)爭(zhēng)條件等概念以及如何處理它們。
3)Java IO
與Java Collections和Java Multithreading API相比,他們都對(duì)Java IO和NIO API知之甚少。我可以理解很多人花費(fèi)大量時(shí)間學(xué)習(xí)這兩個(gè)API,但您不能將這些關(guān)鍵API拋在后面。
如果您必須編寫(xiě)真實(shí)世界的核心Java應(yīng)用程序,則需要使用java.io包中的File、InputStream、OutputStream、Reader、Writer等類,這些類是Java IO API的核心。同樣,你還需要從java.nio了解ByteBuffer、FileChannel、Selector等關(guān)鍵類API。
3.框架
Java的一點(diǎn)是它有一個(gè)充滿活力的生態(tài)系統(tǒng),這意味著幾乎所有東西都有很多框架和庫(kù)。通常,我不建議Java開(kāi)發(fā)人員學(xué)習(xí)框架,直到他需要在他的項(xiàng)目中使用它。盡管如此,還是有一些框架和庫(kù),我相信每個(gè)Java開(kāi)發(fā)人員都應(yīng)該知道,例如Spring、Spring Boot、Hibernate、Log4j、JUnit等。
1)Spring框架
如果你想在2021年成為Java開(kāi)發(fā)者,我強(qiáng)烈建議你先學(xué)習(xí)Spring Framework。這是Java框架之一。
Spring Framework可以編寫(xiě)干凈的代碼,通過(guò)提供依賴注入和控制反轉(zhuǎn)等功能,它更易于測(cè)試和維護(hù)。它還為大多數(shù)日常任務(wù)提供了豐富的API,這就是為什么每個(gè)Java開(kāi)發(fā)人員都應(yīng)該學(xué)習(xí)Spring框架的原因。
2)Hibernate框架
它基于JPA(Java Persistence API)。準(zhǔn)確地說(shuō),Hibernate在JPA之前出現(xiàn),但是因?yàn)镴PA是Java中實(shí)現(xiàn)持久層的標(biāo)準(zhǔn)API,所以Hibernate實(shí)現(xiàn)了它。
現(xiàn)在,為什么要學(xué)習(xí)Hibernate?嗯,因?yàn)槟鷮⑹褂玫拇蠖鄶?shù)Java應(yīng)用程序?qū)⑴c數(shù)據(jù)庫(kù)交互,并且使用JDBC在Java中處理數(shù)據(jù)庫(kù)并且沒(méi)有像Hibernate這樣的適當(dāng)框架是非常痛苦的。
它提供了一些基本功能,例如開(kāi)箱即用的緩存和事務(wù),這意味著您有更多時(shí)間專注于應(yīng)用程序邏輯,然后在應(yīng)用程序中實(shí)現(xiàn)緩存。這極大地提高了Java應(yīng)用程序的性能,也是迄今為止我使用Hibernate的最重要原因。
3)Spring Boot
采用了Spring的簡(jiǎn)化哲學(xué),并使其易于使用Spring本身。就像Spring使創(chuàng)建Java應(yīng)用程序變得更容易一樣,Spring Boot使創(chuàng)建基于Spring的Java應(yīng)用程序變得更容易。
自動(dòng)配置等功能消除了與配置Spring應(yīng)用程序相關(guān)的大部分痛苦。類似地,入門POM功能將常用的依賴項(xiàng)分組為簡(jiǎn)單的可重用POM。