1. 程式人生 > >JavaEE 從入門到放棄(一):Java EE 是個什麼東西

JavaEE 從入門到放棄(一):Java EE 是個什麼東西

為什麼選擇 Java

想必有很多初學者會像我一樣,不知選擇什麼語言入門。在嘗試了 C、C++、C#、Python、PHP 後,我決定把 Java作 為第一門深入學習的程式語言。這個路著實有點長…

不過放心,你可以大膽地選擇 Java。如果說 C++ 是程式設計界的曹操,那 Java 就是司馬懿,近三十年踏驚濤駭浪如履平地,熬死了無數對手。

誕生之初,Java 飽受爭議。而如今,那些受到攻擊的弱點一個個被解決甚至反超對手。人們開始驚歎 Java 的生命力,長期以來,Java雄踞程式語言排行榜首位,擁有最多的受眾、最大的市場、最活躍的社群。

就在我寫這篇部落格的今天(18.07.09),我看到了一則訊息,JDK 11中將會引入新的GC(Garbage Collection,垃圾回收)演算法 ZGC,能夠處理 TB 級別的 HEAP GC,GC 停頓時間不超過10s,意味著,幾乎所有的民用場合,都可以用Java來寫了,而且可以隨心所欲地造物件,不用像以前一樣小心翼翼了。

當然,每個時期都有冉冉升起的新星。現在 Python 如日中天,Go 野心勃勃,選擇Java 的你,可以選擇喝杯茶看它們鬧騰了(逃…)

什麼是 JavaEE

JavaEE 概念

Java EE,Java 平臺企業版(Java Platform Enterprise Edition),之前稱為Java 2 Platform, Enterprise Edition (J2EE),2018年3月更名為 Jakarta EE(這個名稱應該還沒有得到群眾認可)。是 Sun 公司為企業級應用推出的標準平臺,用來開發B/S架構軟體。Java EE 可以說是一個框架,也可以說是一種規範。

JavaEE 是 Java 應用最廣泛的部分。

JavaEE 與 JavaSE 的區別與聯絡

JavaEE 是在 JavaSE 的基礎上構建的,是對 JavaSE 的擴充套件,增加了一些更加便捷的應用框架。

除了 EE 和 SE,還有為移動端而生的 JavaME,但目前應用不算廣泛。三者的關係可以用下圖概括:

JavaSE\EE\ME關係

JavaEE主要技術

JavaEE 號稱有十三種核心技術。它們分別是:JDBCJNDIEJB、RMI、ServletJSP、XML、JMS、Java IDL、JTS、JTA、JavaMail和JAF。

簡單介紹下需要重點關注的技術。

JDBC

Java 資料庫連線,(Java Database Connectivity,JDBC)是 Java 語言中用來規範客戶端程式如何來訪問資料庫的應用程式介面

,提供了諸如查詢和更新資料庫中資料的方法。

JNDI

Java 命名和目錄介面(Java Naming and Directory Interface,JNDI),是 Java 的一個目錄服務應用程式介面(API),它提供一個目錄系統,並將服務名稱與物件關聯起來,從而使得開發人員在開發過程中可以使用名稱來訪問物件。

EJB

企業級 JavaBean(Enterprise JavaBean, EJB)是一個用來構築企業級應用的伺服器端可被管理元件

Servlet

Servlet(Server Applet),是用 Java 編寫的伺服器端程式。其主要功能在於互動式地瀏覽和修改資料,生成動態 Web 內容。

狹義的 Servlet 是指 Java 語言實現的一個介面,廣義的 Servlet 是指任何實現了這個 Servlet 介面的類,一般情況下,人們將 Servlet 理解為後者。

JSP

JSP(全稱JavaServer Pages)是由 Sun 公司主導建立的一種動態網頁技術標準。JSP 部署於網路伺服器上,可以響應客戶端傳送的請求,並根據請求內容動態地生成 HTML、XML 或其他格式文件的 Web 網頁,然後返回給請求者。

JavaEE框架

JavaEE 擁有廣泛市場的原因之一就是可以使用多種框架來使開發變得簡單。對於框架的選擇多種多樣,目前比較常見的框架組合SSHSSM。在後面的章節中會作詳細介紹。另外Spring本身也提供了多種層次的框架供選擇,可以到Spring官網瞭解詳情。

SSH

Structs + Spring + Hibernate

SSM

Spring +SpringMVC + MyBatis

JavaEE學習路徑

一般來講,初學者應該遵循以下路徑

Servlet -> JSP -> Spring -> 組合框架

Servlet 和 JSP 在日後的開發中雖然不會直接應用,但卻是各種框架的基礎,應該放在開始去了解。這兩部分也並不難,相信經過了 JavaSE 的洗禮,只需要進行短期(每天3小時左右,大概兩週)的學習,就可以投入實踐中了。

推薦看視訊 + 擼程式碼相結合的學習方式,書本的話可以在大致瞭解以後買過來,遇到理解上的細節再去翻閱。視訊的優點之一是可以根據個人喜好調整倍速,個人以為比上課、看書的效率要高。

最後給大家分享點資料:

有時網盤的下載速度過於感人,如何使用迅雷等工具下載網盤分享的內容呢?參見我的文章——

還有一個學習 Java 的良心網站,裡面有 Java 全棧知識,在每個階段都設定了練習內容,誰用誰知道。

下一篇文章通過一個小例子講解了什麼是 Servlet ,感興趣的小夥伴戳——

上述資源來自網際網路,如有侵犯版權請聯絡我,我會在第一時間處理。

資料僅作為個人學習使用,切勿用在商業用途,請於下載後24小時之內刪除,否則由此引發的法律糾紛及連帶責任本人概不承擔。

相關推薦

JavaEE 入門放棄Java EE什麼東西

為什麼選擇 Java 想必有很多初學者會像我一樣,不知選擇什麼語言入門。在嘗試了 C、C++、C#、Python、PHP 後,我決定把 Java作 為第一門深入學習的程式語言。這個路著實有點長… 不過放心,你可以大膽地選擇 Java。如果說 C++ 是程式設計界

Java for Web學習筆記Java EE的介紹

  最近有個專案,當中涉及到Java Servlet,專案已經進行了一段日子,最近因為有重大需求調整,需要對架構重新進行梳理,一看,基本上哭笑不得,有不少地方真是黑色幽默,怎麼會這樣呢。   當在這過程中,也引發了我興趣,畢竟之前沒有系統地瞭解過。在網上找到了一本書professional Java for

資料探勘入門放棄線性迴歸和邏輯迴歸

“ 資料探勘演算法基於線性代數、概率論、資訊理論推導,深入進去還是很有意思的,能夠理解數學家、統計學家、計算機學家的智慧,這個專欄從比較簡單的常用演算法入手,後續研究基於TensorFlow的高階演算法,最好能夠參與到人臉識別和NLP的實際專案中,做出來一定的效果。”   一、理解線性迴歸

Asp.net Core IdentityServer4 入門教程概念解析

什麽 ica 統一 理解 給他 分享 目錄 .net 系統 目錄 1、IdentityServer4 是什麽 2、什麽是OpenID和OAuth 2.0協議 3、IdentityServer4 可以用來做什麽 其他 1、IdentityServer4 是什麽 Ident

爬蟲入門系列快速理解HTTP協議

爬蟲入門系列目錄: 4月份給自己挖一個爬蟲系列的坑,主要涉及HTTP 協議、正則表示式、爬蟲框架 Scrapy、訊息佇列、資料庫等內容。 爬蟲的基本原理是模擬瀏覽器進行 HTTP 請求,理解 HTTP 協議是寫爬蟲的必備基礎,招聘網站的爬蟲崗位也赫然寫著熟練掌握HTTP協議規範,寫

MongoDB入門系列基礎概念和安裝

概述   MongoDB是目前非常流行的一種非關係型資料庫,作為入門系列的第一篇本篇文章主要介紹Mongdb的基礎概念知識包括命名規則、資料型別、功能以及安裝等。 環境: OS:Windows Version:3.4 一、安裝 1.下載解壓 在官網下載對應作業系統版本的安裝包,然後解壓;

使用HAL庫、STM32CubeMX和Keil 5開發入門教程點亮盞LED燈NUCLEO-F411RE

本教程以點亮一盞LED燈為目的為大家演示用STM32CubeMX、Keil、ST-Link開發STM32程式的一般方法。 一、學習前的準備工作 硬體:一塊STM32開發板,一個ST-Link;(我使用的開發板是NUCLEO-F411RE) 軟體:裝好ST-

安卓開發入門Android Studio匯入ApiDemos

引言 本人程式設計師,之前做網站比較多,nodejs/express+html/css+mysql,再之前也做過Java開發,程式設計上還是有豐富的經驗。 在持續的實戰中,發現想做產品的話,前端似乎更重要,因為前端才能看到產品形態。雖然說移動端形勢已經每況愈

Spring Boot / Spring MVC 入門實踐 環境搭建與第一專案

宣告 本系列文章系本人原創,歡迎轉載,轉載請註明出處。 本系列文章通過具體的例子,介紹如何通過Spring Boot來幫助簡化Spring MVC開發Web Application的過程,旨在通過具體的實踐,使讀者能夠入門利用Spring Boot開發Web

Ansible入門環境的準備

在正式開始使用之前需要準備如下環境: ansible的線上安裝 安裝機器: 172.18.18.120 Centos版本: yum -y install ansible Ubuntu版本:sudo apt-get update     &nb

dotConnect for Oracle入門指南安裝

【下載dotConnect for Oracle最新版本】 dotConnect for Oracle(原名OraDirect.NET)建立在ADO.NET技術上,為基於Oracle資料庫的應用程式提供完整的解決方案。它為設計應用程式結構帶來了新的方法,提高工作效率,使資料庫應用程式的開發更簡便。 d

Mybatis入門示例基礎程式碼

本文為轉載內容 一、開發環境及前期準備: win7 、JDK1.7、 Intellij Idea、mybatis3.2.8 1、前期資料準備: 新建一個名字叫mybatis的資料庫,建立一個User表,匯入一條資料。 建表指

手把手做一個JSP入門程式程式基本介紹JSP

胡扯   說好的不學jsp,結果今天還是學了。主要還是為了後面的java後臺的學習啦。為了更好的掌握知識,那我們就來寫一個簡單的jsp入門程式吧!這只是一個簡單的入門小程式,所以就沒有太多強大的功能。入門啦,入門啦。對了,由於是作為一個入門程式,所以裡面會有較

Prometheus 入門教程Prometheus 快速入門

# 文章首發於【陳樹義】公眾號,點選跳轉到原文:https://mp.weixin.qq.com/s/ZXlBPHGcWeYh2hjBzacc3A Prometheus 是任何一個高階工程師必須要掌握的技能。那麼如何從零部署一套 Prometheus 監控系統呢?本篇文章將從 Prometheus 的原理講

寫給前端同學的C++入門教程概述和環境搭建

說明:本人是前端er,因為最近對 UE4(一個遊戲開發引擎)產生了興趣,而這個引擎源開發遊戲時需要用到 C++ ,所以就開始入坑 C++ 了。現將自己學習 C++ 的筆記整理並分享出來,以便一些想入門 C++ 的朋友一起學習,將會以系列教程的的形式來編寫,這是第一篇。 ## C++ 是什麼? 我們都知道,目

Java併發volatile的實現原理 Java併發Java記憶體模型乾貨總結

synchronized是一個重量級的鎖,volatile通常被比喻成輕量級的synchronized volatile是一個變數修飾符,只能用來修飾變數。 volatile寫:當寫一個volatile變數時,JMM會把該執行緒對應的本地記憶體中的共享變數重新整理到主記憶體。 volatile讀:當讀一

Core JavaJava程式設計概述

Java “白皮書”的關鍵術語 簡單性 面向物件 分散式 健壯性 安全性 體系結構中立 可移植性 解釋型 高效能 多執行緒 動態性 簡單性 Java語法是C++語法的一個“純淨”版本。這裡沒有標頭檔案、

Spring AOP 前篇Java代理之JDK靜態代理、JDK動態代理、CGLIB動態代理

Spring AOP 前篇:Java代理之JDK靜態代理、JDK動態代理、CGLIB動態代理 該文章參考多篇文章的基礎上進行了簡化並做少許修改,方便理解。原文章地址如下: Java之代理(jdk靜態代理,jdk動態代理,cglib動態代理,aop,aspectj

bigdata資料分析Java環境配置

Java環境 1.下載jdk(用FileZilla工具連線伺服器後上傳到需要安裝的目錄) 在 /opt/deploy 下新建 java 資料夾:  # mkdir / opt/deploy /java   解壓命令:tar zxvf 壓縮包名稱 (例如:tar zxvf jdk-8u191-

Java虛擬機器Java編譯器和類載入機制

目錄 編譯時 載入 連線 初始化 類載入器 類的載入 參考: 什麼是Java虛擬機器 從Java虛擬機器所做的事情上去理解,可以分為兩個階段,編譯時和執行時。編譯時主要是一個由編譯器將原始碼譯為虛擬機器指令集的一個過程;而執行