【轉】Java開發必須要知道的知識體系

Java

Java是一門超高人氣編程語言,擁有跨平臺、面向對象、泛型編程等特性。在TIOBE編程語言排行榜中,連續奪得第一寶座,而且國內各大知名互聯網公司,后端開發首選語言:非Java莫屬。今天只是梳理下Java知識體系,后續會針對各類目有更詳細的經驗分享。

知識體系

JDK

  • Java8

    • Lambda 語句

    • 方法引用

    • 日期/時間處理API

    • 等等,不一一列舉,詳細的參考這些文檔

    • URL:?http://www.oracle.com/technetwork/cn/java/javase/documentation/index.html

    • 說明: Java8增加了很多新的重要特性,比如:

    • Java8特性(英文):?http://www.tutorialspoint.com/java8/java8_overview.htm

    • Java8特性(中文):?http://www.importnew.com/11908.html

IDE

  • IntelliJ IDEA: - URL:?http://www.jetbrains.com/idea/?- 推薦指數: 5星 - 評價: JetBrains公司旗下有很多非常棒的IDE,例如PHP開發:PHPStorm,Python開發:Pycharm等,用了很多年的 Eclipse,后來發現IDEA,如獲至寶,果斷放棄了Eclipse,并在團隊中分享,技術同學都切到IntelliJ IDEA,用過的都說好,具體咋好,自己去體驗吧!

    • URL:?http://www.eclipse.org/

    • 評價:最流行的Java開發IDE,國內很多團隊使用MyEclipse,基于EclipseIDE的擴展,集成了很多插件,功能也很強大,非開源,收費。 MyEclipse的URL:http://www.myeclipsecn.com/

    • Eclipse

Web服務器

  • Apache

    • URL:?https://projects.apache.org/project.html?httpd-http_server

    • 說明: 具有的跨平臺性和安全性,廣泛使用,最流行開源Web服務器。

  • Nginx

    • URL:?http://www.nginx.org/

    • 說明: 輕量級Web服務器、反向代理服務器,Nginx相較于 Apache、lighttpd 具有占有內存少,穩定性高,并發能力強等優勢,豐富的模塊庫以及友好靈活的配置而聞名。

  • Tomcat

    • URL:?http://tomcat.apache.org/

    • 說明: Tomcat是應用(java)服務器,它只是一個servlet容器,是Apache的擴展。

  • Jetty

    • URL:?http://www.eclipse.org/jetty/

    • 說明: Jetty 是一個開源的servlet容器,它為基于Java的web容器,例如JSP和servlet提供運行環境,相對于Tomcat,更輕量級,更靈活,擴展性好。

    • 備注: 關于tomcat 與 nginx,apache的區別,參見知乎上的一篇文章:https://www.zhihu.com/question/32212996

構建工具

  • Maven

    • URL:?http://maven.apache.org/

  • Gradle

    • 推薦指數: 個人比較推薦Gradle,代碼簡潔,設置靈活,但也需要根據具體業務場景和技術架構評估。

    • URL:?http://gradle.org/

    • gradle和maven區別參照知乎這篇文章:https://www.zhihu.com/question/29338218

  • Ant: 過時的東東,就不要用了。

框架

  • Spring Framework

    • URL:?http://spring.io/

    • 推薦指數: 5星

    • 說明: 學Java不知道Spring,沒用過Spring,那就太low了,DI、AOP、MVC、ORM這些概念自不必說,必須要學的,圍繞著Spring的生態圈很全,各種組件基本都已經齊備,結合自己的業務,做些擴展就run!

    • Github上各種Spring組件代碼:https://github.com/spring-projects

  • Play!

    • URL:?https://www.playframework.com/

    • 說明: Play!是在設計時考慮了可伸縮性的 新一代反應式 Web 框架,Play 還帶來了開發友好的特性,比如原生的 XML 和 JSON 處理,開發模式下的瀏覽器內錯誤報告,內置的測試幫助器,以及Selenium集成。

模版引擎

  • Thymeleaf

    • URL:?http://www.thymeleaf.org/

    • 說明: 支持用XML/XHTML/HTML5寫模版,用于Web與非Web環境中的應用開發。Spring Boot中推薦用Thymeleaf作為前端渲染模版引擎。

  • Velocity

    • URL:?http://velocity.apache.org/

    • 說明: 一個基于java的模板引擎,它允許任何人使用簡單但是強大的模板語言, 引用java代碼中的對象。

數據訪問

  • JPA

    • URL:?http://projects.spring.io/spring-data-jpa/

    • 說明: JPA是基于Hibernate的作的擴展,提供了簡單的編程模型,JPA定義了獨特的JPQL,不寫SQL文,就能進行簡單的進行數據CRUD操作。

  • MyBatis

    • URL:?http://mybatis.org/mybatis-3/

    • 說明: MyBatis的前身就是iBatis,是一個數據持久層(ORM)框架,簡單易學,輕巧靈活,封裝了絕大多數的JDBC樣板代碼,使得開發者只需關注SQL本身。

日志

  • Logback

    • URL:?http://logback.qos.ch/

    • 說明: Logback是log4j的升級版本,通常會和SLF4J配合使用。

  • SLF4J

    • URL:?http://www.slf4j.org/

    • 說 明: SLF4J是一個用于日志系統的簡單Facade,允許最終用戶在部署其應用時使用其所希望的日志系統,SLF4J提供了統一的記錄日志的接口,只要按照 其提供的方法記錄即可,最終日志的格式、記錄級別、輸出方式等通過具體日志系統的配置來實現,因此可以在應用中靈活切換日志系統。

單元測試

  • JUnit

    • URL:?http://junit.org/junit4/

    • 說明: 沒啥好介紹的,老牌的Java代碼自動話測試工具。

  • testNG

    • URL:?http://testng.org/doc/index.html

    • 說明: 類似于JUnit和NUnit, 功能都差不多,只是功能更加強大,使用也更方便。

  • JMockit

    • URL:?http://jmockit.org/

    • 說明: 單元測試mock框架,尤其在測試框架底層復雜代碼時,JMockit是很好的武器,另外還有一個工具:Djunit也是Mock框架,場合Junit結合使用。

常用類庫

  • jackson

    • URL:?https://github.com/FasterXML/jackson

    • 說明: 操作JSON的類庫。

  • GSON

    • URL:?https://github.com/google/gson

    • 說明: Google開源java對象和JSON對象進行影射的類庫。

  • CSV

    • URL:?http://opencsv.sourceforge.net/

    • 說明: 操作CSV文件格式類庫。

  • Excel

    • URL:?https://poi.apache.org/

    • 說明: 操作Excel,Word的類庫。

  • Apache PDFBox

    • URL:?https://pdfbox.apache.org/index.html

    • 說明: 操作PDF的類庫。

  • Jsoup

    • URL:?https://jsoup.org/

    • 說明: 一款Java 的HTML解析器,可直接解析某個URL地址、HTML文本內容。它提供了一套非常省力的API,可通過DOM,CSS以及類似于jQuery的操作方法來取出和操作數據。

  • Ehcache

    • URL:?http://www.ehcache.org/

    • 說明: 純Java的進程內緩存框架,具有快速、精干等特點,是Hibernate中默認的CacheProvider。

  • Quartz

    • URL:?http://quartz-scheduler.org/

    • 說明: 作業調度框架。

代碼質量

  • FindBugs

    • URL:?http://findbugs.sourceforge.net/

    • 說明: 代碼靜態分析工具,幫助提高代碼質量以及排除隱含的缺陷。

  • CheckStyle

    • URL:?http://checkstyle.sourceforge.net/

    • 說明: 檢查Java編碼規范的靜態分析工具。

  • PMD

    • URL:?https://pmd.github.io/

    • 說明: 和FindBugs功能類似。

JVM語言

  • Scala

    • URL:?http://www.scala-lang.org/

    • 說明: Scala是一門現代的多范式編程語言,志在以簡練、優雅及類型安全的方式來表達常用編程模式。它平滑地集成了面向對象和函數語言的特性。

  • Groovy

    • URL:?http://groovy-lang.org/

    • 說明: Groovy是一種基于JVM(Java虛擬機)的敏捷開發語言,它結合了Python、Ruby和Smalltalk的許多強大的特性,Groovy 代碼能夠與Java代碼很好地結合,也能用于擴展現有代碼。

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/282479.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/282479.shtml
英文地址,請注明出處:http://en.pswp.cn/news/282479.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

CrossPHP--在我們用ajax,js取不到指定數據時,我們可以換一種方式

項目中遇到的問題: 需求: 用的是layui的laypage組件,進行分頁操作,熟悉layui的朋友都知道,laypage需要從服務端給其一個總條數, 但是在進行ajax請求時出了問題, 我是這樣定義的但是調用的時候卻無法將數值直接返回回去,所以這里只能更換一種思路 在控制器中進行數據的查詢,然后…

VS 代碼行數統計

按CTRLSHIFTF (Find in files),勾上支持正則表達式,然后輸入搜索內容: ^:b*[^:b#/].*$#開頭和/開頭或者空行都不計入代碼量。如果需要只統計代碼文件的代轉載于:https://www.cnblogs.com/sunlyk/p/7484728.html

MySQL設置從庫只讀模式

常見現象 運維工作中會經常維護MySQL主從服務器,當然Slave我們只是用于讀操作。 一般權限開通也只授權只讀賬號,但是有時候維護工作可能不是一個人在做,你不能保證其他同事都按照這個標準操作。 有同事可能會授權Slave庫MySQL賬號為all或者se…

尋找kernel32.dll的地址

為了尋找kernel32.dll的地址,可以直接輸出,也可以通過TEB,PEB等查找。 尋找TEB: dt _TEB nt!_TEB 0x000 NtTib : _NT_TIB 0x01c EnvironmentPointer : Ptr32 Void 0x020 ClientId : _CLIENT_ID 0x028 ActiveRpcHandle : Ptr32 Void 0x02c ThreadLocalSto…

layui彈出層使用(layer.alert / layer.open / layer.prompt )

一 layer.alert 效果圖: 代碼: //取消提現 function back(id) {layer.alert(真的要取消嗎, {skin: layui-layer-molv //樣式類名 自定義樣式,closeBtn: 1 // 是否顯示關閉按鈕,anim: 1 //動畫類型,btn: [確定,取消] //按鈕,icon: 6 // icon,yes:function(){return $.aj…

SkiaSharp 自繪彈幕效果

SkiaSharp 自繪彈幕效果控件名:SkiaSharpBarrage作者: 驚鏵原文鏈接: https://github.com/yanjinhuagood/SkiaSharpBarrage框架使用.NET60;Visual Studio 2022;項目使用 MIT 開源許可協議;接著上一篇 WPF 彈幕上期有…

JavaScript中this指向

一.重點來了,this指向問題:1.this指向之普通函數。 2.this指向之對象 3.this指向之構造函數 4.this指向之(call,apply)動態更改this指向。 二.具體分析如下 1.普通函數 // 第23行的調用者為null,this指向也為null,// 所以這時js把…

【python】python中的定義類屬性和對像屬性

python中變量是沒有類型的可以綁定任意類型,但是在語法上不能聲明變量。 那我們怎麼來聲名一個變量呢? fNone 這樣我們給著個變量綁定了以各None類型,我們隨時可用重新綁定其它類型。這樣我們起到了預先聲名變量的效果。 類中如何去定義類的…

提交Form表單,submit之前做js判斷處理

效果:在點擊提交按鈕時,首先進行js判斷, 如果不符合條件,則alert出提示信息,并return false. 主要點就在于給form表單添加一個onsubmit事件. 在onsubmit事件中定義的函數里進行js驗證處理.代碼 : <!DOCTYPE html> <html lang"en"> <head><meta …

如何在Windows上一鍵部署PaddleOCR的WebAPI服務

PaddleOCR旨在打造一套豐富、領先、且實用的OCR工具庫&#xff0c;助力開發者訓練出更好的模型&#xff0c;并應用落地。官方開源項目地址&#xff1a;https://github.com/PaddlePaddle/PaddleOCR一定會有小伙伴們看完不知道如何部署與應用&#xff0c;怎么才能融入到自己的產品…

微軟為 Visual Studio 擴展添加對 Arm64 的支持

微軟在 6 月份推出了支持 Arm64 架構的 Visual Studio&#xff0c;這是第一個原生支持在基于 Arm 的處理器上構建和調試 Arm64 應用程序的 Visual Studio 版本。近日&#xff0c;他們宣布為 Visual Studio 擴展也添加了對 Arm64 的支持&#xff0c;因此開發者可在 Arm64 Visual…

WIN10 查看已經連接的wifi的密碼

命令行: 1. 顯示以前連接過的wifi2. 將wifi配置存入文件中3. 查看剛剛保存的wifi配置的文件這樣,我們就可以看到連接的wifi名稱和wifi密碼了.

ubantu 重啟mysql

如何啟動/停止/重啟MySQL一、 啟動方式1、使用 service 啟動&#xff1a;service mysql start2、使用 mysqld 腳本啟動&#xff1a;/etc/inint.d/mysql start3、使用 safe_mysqld 啟動&#xff1a;safe_mysql&二、停止1、使用 service 啟動&#xff1a;service mysql stop2…

C++ 反射機制的簡單實現

C并不支持反射機制&#xff0c;只能自己實現。 如果需要實現字字符串到函數到映射&#xff0c;一定要使用到函數指針。 簡單實現反射機制&#xff0c;根據字符串來構造相應到類。主要有以下幾點&#xff1a; (1) 可以使用map保存字符從到函數指針到映射。 (2) 工廠類提供字符串…

微軟與 Canonical 合作,將 systemd 引入 WSL

微軟和 Canonical 聯合宣布&#xff0c;systemd 現在可以在 Windows Subsystem for Linux&#xff08;WSL2&#xff09;中運行了&#xff0c;此舉可以讓用戶在 Windows 設備上獲得更加全面的 Linux 體驗。systemd 的作者 Lennart Poettering 在 7 月份離開紅帽并加入了微軟&…

vsftpd配置

1.) yum install -y vsftpd 2.) useradd -g ftp -s /sbin/nologin afcupload (默認生成/home/afcupload, 可使用 -d參數自定義主目錄生成位置) 3.) passwd afcupload 4.) chgrp -R ftp afcupload 5.) chown -R afcupload:ftp afcupload 6.) chmod -R 700 afcupload 4.) 修…

2017.9.6數學

集合&#xff1a;一個可以代表一類事物或數據的代詞。&#xff08;個人定義&#xff09; &#xff08;其內容帶有輔助功效【個人記不下來】&#xff09;自然數&#xff1a;所有的非負整數。 有理數&#xff1a;是可以用正數和分數代表的數。實數&#xff1a;包括有理數和無理數…

.NET 反向代理-YARP 根據域名轉發

編者&#xff1a;fastgithub 就是基于YARP使用域名做轉發邏輯的。 前段時間發布過一個關于 YARP 的簡單介紹&#xff0c;感興趣的小伙伴恭請移步看看 .NET 反向代理-YARP 作為反向代理&#xff0c;必不可少的當然是根據域名代理轉發啦&#xff0c;毫無疑問&#xff0c;YARP…

第一個python小游戲

guess int(input("猜一猜寶寶心目中的數字是多少:")) secret 8 while guess !secret:guess int(input("哎呀猜錯了,重新猜一猜寶寶心目中的數字是多少:"))if guess secret:print("你真厲害,居然猜對了")print("哼,猜對了也不給你獎勵&q…