目錄
- 一、JAVA語言概述
- 二、JAVA語言的重要性
- 2.1語言使用廣泛程度
- 2.2工作領域
- 2.3在校招崗位的需求
- 2.4 java語言發展簡史
- 2.5Java語言特性
- 三、初識java的main方法
- 四、運行java程序
- 五、【面試題】JDK、JRE、JVM之間的關系?
一、JAVA語言概述
Java是一種優秀的程序設計語言,它具有令人賞心悅目的語法和易于理解的語義。
不僅如此,Java還是一個有一系列計算機軟件和規范形成的技術體系,這個技術體系提供了完整的用于軟件開發和跨平臺部署的支持環境,并廣泛應用于嵌入式系統、移動終端、企業服務器、大型機等各種場合。
二、JAVA語言的重要性
2.1語言使用廣泛程度
下圖數據來自于TIOBE編程語言社區22024 年 05 月份最新的排行榜,常年占據語言排行榜榜首,是近些年最火的編程語言之一。
TIOBE 編程語言社區排行榜是編程語言流行趨勢的一個指標,每月更新,這份排行榜排名基于互聯網上有經驗的程序員、課程和第三方廠商的數量。排名使用著名的搜索引擎(諸如 Google、MSN、Yahoo!、Wikipedia、YouTube 以及 Baidu 等)進行計算。
注意:上述排名不能說明那個語言好,那個語言不好,每門編程語言都有適應自己的應用場景。
2.2工作領域
Java語言目前在IT領域的應用是非常廣泛的,掌握Java語言可以從事不少IT行業的相關開發崗位,具體包括:
企業級系統
比如大型復雜的企業級軟件系統,Java的安全機制以及跨平臺性的優勢,其在分布式系統領域開發中有廣泛應用,涉及到金融、電信、交通、電子商務、ERP系統等。
Web開發領域
Java語言在設計初期,趕上了互聯網發展的風口,當時就瞄準了互聯網開發,憑借穩定的性能表現和較好的擴展性,Java語言一直是大型互聯網平臺的重要解決方案。
android平臺應用
Android是一種智能手機操作系統,Java是一門非常流行的編程語言。Android上的應用程序就是大多是用Java編寫的,Android的SDK大部分就是直接將Java SDK翻譯過來的,所以具有Java基礎,也可以快速上手Android開發。
大數據平臺開發
大數據相關的各類框架,比如:Hadoop、spark、storm、?ink等,以及各種中間件?ume、kafka、
sqoop等,這些框架以及工具等大多數是用Java語言開發的,隨著大數據技術的落地應用,Java在大數據領域的應用前景也是比較廣闊的。
除上述開發領域外,Java在游戲領域、人工智能領域、科學計算領域、嵌入式領域也有一定的應用。因此學好Java,將來就業的選擇也會非常廣泛。
2.3在校招崗位的需求
從上述位置需求中可以看出,由于應屆生缺少實際工作經驗,因此校招中企業更看重學生的基礎,也就是:語言、數據結構/算法、操作系統、網絡、數據庫等,其他的屬于加分項。
2.4 java語言發展簡史
Java 語言源于 1991 年 4 月,Sun 公司James Gosling博士領導的綠色計劃(Green Project) 開始啟動,此計劃最初的目標是開發一種能夠在各種消費性電子產品(如機頂盒、冰箱、收音機等)上運行的程序架構。這個就是Java的前身: Oak (得名與Java創始人James Gosling辦公室外的一棵橡樹),但由于這些智能化家電的市場需求沒有預期的高,Sun公司放棄了該項計劃。隨著1995年代互聯網的發展,Sun公司看見Oak在互聯網上應用的前景,于是改造了Oak,于1995年5月以Java的名稱正式發布,并提出“Write once, Run anywhere" 的口號。
2.5Java語言特性
以下Java語言特性來自于Java白皮書:
- 簡單性:
Java語法是C++語法的一個“純凈版本”,相當于對C++做了一個減法。這里沒有頭文件、指針運算(甚至指針語法)、結構、聯合、操作符重載、虛基類等等。不僅如此,Java開發環境遠遠超出大多數其他編程語言的開發環境。
2.面向對象:
什么是面向對象?
在Java的世界里,一切皆對象。比如:人、狗、手機、電腦等都是對象。所謂面相對象,就是依靠對象之間的交互來完成事情,比如:人用手機網上購物,狗吃骨頭…
Java的面向對象特性與C++旗鼓相當,與C++的主要不同點在于多重繼承。在Java中,取而代之的是更簡單的接口概念。而且與C++相比,Java提供了更豐富的運行時自省功能。
3.分布式(微服務):
ava有豐富的例程庫,用于處理像HTTP和FTP之類的TCP/IP協議。Java應用程序能夠通過URL打開和訪問網絡上的對象,其便捷程度就好像訪問本地文件一樣。
4.健壯性:
java與C++最大的不同在于Java采用的指針模型可以消除重寫內存和損壞數據的可能性(對于曾經花費幾個小時來檢查由于指針bug而引起內存沖突的人來說,一定很喜歡Java的這一特性)。不僅如此,Java編譯器能夠檢測許多在其他語言中僅在運行時才能夠檢測出來的問題。
5.安全性:
Java適用于網絡/分布式環境。為了達到這個目標,在安全性方面投入了大量的精力。使用Java可以構建防病毒、防篡改的系統
從一開始,Java就設計成能夠防范常見的各種攻擊:
運行時堆棧溢出。蠕蟲和病毒常用的攻擊手段。破壞自己進程空間之外的內存。
未經授權讀寫文件
6.體系結構中立:
編譯器生成一個體系結構中立的目標文件格式,按照該中規范生成的文件,只要有Java運行時系統,這些編譯后的代碼就可以在許多處理器上運行。Java編譯器通過生成與特定計算機體系結構無關的字節碼指令來實現這一特性。精心設計的字節碼不僅可以很容易的在任何機器上解釋執行,而且還可以動態地翻譯成本地機器代碼。這就是為什么可以:“Wrice once,Run anywhere”。
而且其他語言編寫的程序,在編譯后如果能夠嚴格按照字節碼文件的規范生成.class文件,也可以在JVM上運行。
7.可移植性:
與C/C++不同,Java規范中沒有“依賴具體實現的地方”。基本數據類型的大小以及有關運算都做了明確的說明。例如,Java中的int永遠是32位的整數,而在C/C++中,int可能是16位整數、32位整數,也可能是編譯器提供商指定的其他大小。在Java中,數據類型具有固定的大小,這消除了代碼移植時令人頭疼的主要問題。
8.解釋性:
Java為了實現與平臺無關,自己維護了一套基于棧架構的指令集,Java源代碼經過編譯之后,字節碼文件中的指令就是按照自己的指令集來組織的,但是在具體硬件環境中運行時,系統并不能識別,因為Java程序在執行時,Java解釋器會逐條的將字節碼文件中的指令翻譯成CPU的指令集。
9.高性能:
邊解釋邊執行,垃圾會說等導致了Java代碼運行效率偏低,近年來JVM也在不斷的優化,比如:JIT(即時編譯器),熱點代碼探測,讓Java程序的執行效率大幅提高,在有些場合不亞于C/C++。
10.多性能:
Java在當時很超前。它是第一個支持并發程序設計的主流語言。多線程可以帶來更好的交互響應和實時行為。并發程序設計絕非易事,但是Java在這方面表現出色,可以很好的管理這個工作。
11.動態性:
Java與C/C++相比更加具有動態性。它能夠適應不斷發展的環境。庫中可以自由的添加新方法和實例變量,而
對客戶端沒有任何影響。在Java中找出運行時類型信息十分簡單(反射的特性,后續會學到)因此:Java不僅僅是一門編程語言,也是一個由一些列計算機軟件和規范組成的技術體系。
三、初識java的main方法
publicclassHelloWorld{
publicstaticvoidmain(String[]args){
System.out.println("Hello,world");
}
如上展示的就是最簡單的一個Java程序,可能同學們看到后一頭霧水,可以說,Java的main方法應該是當前主流編程語言中最“長”的。
通過上述代碼,我們可以看到一個完整的Java程序的結構,Java程序的結構由如下三個部分組成:
1.源文件(擴展名為*.java):源文件帶有類的定義。類用來表示程序的一個組件,小程序或許只會有一個類。類的內容必須包含在花括號里面。
2.類:類中帶有一個或多個方法。方法必須在類的內部聲明。
3.方法:在方法的花括號中編寫方法應該執行的語句。
總結一下:類存在于源文件里面;方法存在于類中;語句存在于方法中。
注意:在一個源文件中只能有一個public修飾的類,而且源文件名字必須與public修飾的類名字相同。好了,代碼編寫完了,如何讓它“運行”起來呢?
四、運行java程序
Java是一門半編譯型、半解釋型語言。先通過javac編譯程序把源文件進行編譯,編譯后生成的.class文件是由字節碼組成的平臺無關、面向JVM的文件。最后啟動java虛擬機來運行.class文件,此時JVM會將字節碼轉換成平臺能夠理解的形式來運行。
注意:在運行Java程序前,必須先安裝好JDK(Java Development Kit即Java開發工具包),JDK里面就包含了javac和java工具,Java程序最終是在JVM(Java虛擬機)中運行的。
五、【面試題】JDK、JRE、JVM之間的關系?
JDK(Java Development Kit):Java開發工具包,提供給Java程序員使用,包含了JRE,同時還包含了編譯器javac與自帶的調試工具Jconsole、jstack等。
JRE(Java Runtime Environment):Java運行時環境,包含了JVM,Java基礎類庫。是使用Java語言編寫程序運行的所需環境。
JVM:Java虛擬機,運行Java代碼。
編寫和運行第一個Java程序時,可能會遇到的一些錯誤:
- 源文件名后綴不是.java
- 類名與文件名不一致
- main方法名字寫錯:mian
- 類沒有使用public修飾
- 方法中語句沒有以分號結尾
- 中文格式的分號
- JDK環境沒有配置好,操作系統不能識別javac或者java命令
歐耶,學會啦!!!