Java的基本運行原理、體系結(jié)構(gòu)以及Java能開發(fā)哪些應(yīng)用程序?(java的運行原理是什么)
Hello ,歡迎來到java的世界!本書適用于零基礎(chǔ)且有興趣學(xué)習Java編程的小伙伴,全程會以理論和實踐相結(jié)合的方式,手把手地教你用Java開發(fā)出自己的程序。你是否已經(jīng)迫不及待了呢?現(xiàn)在就隨我一起來探索Java的學(xué)習之道吧!
本章我會帶領(lǐng)大家一起來認識Java這門高級編程語言,在學(xué)習一個新技術(shù)時,應(yīng)該從3個方面入手。首先,它是什么?其次,它能干什么?最后,如何使用?大家需要記住這3個步驟,我們后續(xù)的講解都是按照這個模式進行的。好了,接下來就開始我們的Java初體驗。
1.1 Java概述
本節(jié)帶領(lǐng)大家了解Java的基本知識、運行原理、體系結(jié)構(gòu)、Java的用途,以及如何使用Java進行編程。
1.1.1 什么是Java
眾所周知, IT是一個高速發(fā)展、技術(shù)更迭日新月異的行業(yè)。隨著編程技術(shù)的不斷發(fā)展、更新,越來越多的編程語言層出不窮,令大家不知如何選擇。面對種類繁多的編程語言,零基礎(chǔ)的初學(xué)者究竟應(yīng)該選擇哪種編程語言來入門呢?掌握哪門編程語言能夠更好地應(yīng)對IT技術(shù)日益革新、多態(tài)化發(fā)展的大趨勢呢?綜合以上思路,這門語言應(yīng)該具備以下特質(zhì):
容易上手;
適用于多平臺;
多行業(yè);發(fā)展穩(wěn)定;
開發(fā)需求量大。
什么語言這么強大,可以滿足這些要求呢?沒錯,就是Java, Java是由Sun ( Stanford UniversityNetwork)公司于1995年5月23日正式推出的一套計算機高級編程語言,它擁有20多年的發(fā)展歷史,這足以表明Java很穩(wěn)定。
Java適用于多個領(lǐng)域,從早期的終端設(shè)備到現(xiàn)在流行的電商、桌面管理軟件、機頂盒設(shè)備、車載導(dǎo)航.安卓移動端等,涵蓋面非常之廣,并且可以做到跨平臺,無論是Windows系統(tǒng)、Linux系統(tǒng),還是Mac OS系統(tǒng),都可以運行Java程序。
多年以來, Java始終在編程語言排行榜中名列前茅(見圖1-1) ,是全球范圍內(nèi)使用人數(shù)最多的編程語言之一。同時,市場對Java開發(fā)工程師的需求量也很大,在各大招聘網(wǎng)站上, Java相關(guān)崗位的招聘信息非常多。
圖1-1
Java是面向?qū)ο蟮木幊陶Z言,面向?qū)ο笫且环N易理解、上手快的編程思想,同時Java提供了功能非常強大的系統(tǒng)類庫,多種多樣的工具類任你使用,開發(fā)者只需要關(guān)注業(yè)務(wù)邏輯,然后根據(jù)具體需求去調(diào)用這些工具類即可,底層的具體實現(xiàn)不需要關(guān)注。因此,相比于C 這種偏向底層的高級編程語言, Java更容易上
Java語言具備如下特點。
1,簡潔高效
Java語言非常簡潔,相比于C 中頭文件、指針等各種抽象的概念, Java更好理解、便于上手,同時還提供了功能強大的系統(tǒng)類庫,使開發(fā)變得更加簡潔高效。
2.跨平臺
程序在不同平臺的兼容性問題一直困擾著開發(fā)者,如果我們開發(fā)的程序能夠無障礙地同時運行在
Windows, Mac OS和Linux系統(tǒng)中,那是多么美妙的一件事。Java就幫我們實現(xiàn)了這個美好的愿望,一套代碼可以在多種平臺上運行。
3.面向?qū)ο?/p>
面向?qū)ο笫且环N編程思想,這種編程思想的誕生,對于軟件工程有著劃時代的意義。開發(fā)者告別了面向過程開發(fā)的煩瑣步驟,從一個新的維度重新解讀編程這件事,極大地提升了軟件開發(fā)效率和能力, Java就是這樣一種面向?qū)ο蟮母呒壘幊陶Z言。
4.分布式計算
Java提供了一套網(wǎng)絡(luò)操作類庫,很適合開發(fā)分布式計算的程序,開發(fā)者可以通過調(diào)用類庫進行網(wǎng)絡(luò)程序開發(fā),實現(xiàn)分布式特性。
5.健壯性
Java提供了非常強大的排錯機制,在程序編譯階段就可以檢測出程序中的錯誤,無需等到運行時才暴露出存在的問題。同時在運行階段會再一次進行相應(yīng)的檢查,多種手段保證了程序的穩(wěn)定性和健壯性。
6.可處理多線程
線程是進程的基本單位,是程序開發(fā)中必不可少的一種基礎(chǔ)資料, Java提供了良好的多線程處理機制,使程序具備更為優(yōu)秀的交互性。
好了,聽完了這些,你是不是已經(jīng)迫不及待地想要開始學(xué)習Java了呢?別著急,我們說過,學(xué)習新技術(shù),首先應(yīng)該了解它是什么?其次要了解它能干什么,接下來,我們就來一起看看Java有哪些方面的實際應(yīng)用。
在全球范圍內(nèi),選擇Java作為后臺開發(fā)語言的公司數(shù)不勝數(shù),比較知名的國外互聯(lián)網(wǎng)公司包括Google、YouTube、Amazon、Twitter等,國內(nèi)的知名公司有阿里、騰訊、百度、新浪、搜狐等。尤其是在電商領(lǐng)域,大部分公司都在使用Java ,包括天貓、京東、蘇寧易購、當當、美團等,這么多知名企業(yè)都選擇Java作為開發(fā)語言,你還在猶豫什么呢?
1.1.2 Java的運行機制
簡單來講, Java開發(fā)可分為3步:
1、在后綴為java的文件中編寫Java程序,此文件稱之為Java源文件;
2、通過編譯器將源文件編譯為后綴為class的字節(jié)碼文件;
3、計算機讀取字節(jié)碼文件運行程序。
運行原理如圖1-2所示。
圖1-2
我們可以這樣理解, Java源文件是開發(fā)者編寫的,以開發(fā)者自己能看懂的方式去編寫代碼,但是計算機無法直接識別編寫好的程序,因為計算機只能識別二進制的數(shù)據(jù),相當于兩者語言不通,要進行交流就必須有翻譯,編譯器就是這個翻譯,它可以將開發(fā)者編寫的程序翻譯成計算機能識別的二進制數(shù)據(jù),即將Java源文件編譯為字節(jié)碼文件,這樣一來計算機就可以運行程序了。
Java程序并不是運行在計算機底層的,Java擁有自己的虛擬計算機,這個虛擬的計算機有自己的內(nèi)存,有自己的磁盤,我們把它叫作Java虛擬機(Java Virtual Machine , JVM )。所有的Java程序都是運行在JVM上的,正是因為有了JM這樣一種機制, Java程序才能做到跨平臺,不同的操作系統(tǒng)只要可以安裝JVM ,就可以運行Java程序。JVM可以將不同操作系統(tǒng)的底層運行機制進行屏蔽,讀取與平臺無關(guān)的字節(jié)碼文件,由Java解釋器將JVM的程序運行在不同的平臺上。編譯好的字節(jié)碼文件只需要識別JVM ,而不需要關(guān)心更底層的操作系統(tǒng),由JVM去適應(yīng)并識別不同的操作系統(tǒng),如圖1-3所示。
圖1-3
舉一個生活中的例子,一個中國商人,需要同時跟來自美國、意大利和德國的3個客戶洽談合作,但是中國商人只會說漢語,所以他高價雇傭了一個同時精通英語、意大利語、德語的高級翻譯,幫他把漢語分別翻譯給來自美國、意大利和德國的客戶,這樣就可以無障礙地溝通并完成合作了。
在這個例子中,中國商人相當于Java源程序,高級翻譯相當于JVM ,而來自美國、意大利、德國的客戶相當于不同的操作系統(tǒng)。
1.1.3 Java 大體系
Java語言后來衍生出3個體系分支,分別是J2SE, J2ME, J2EE
J2SE (Java2 Platform Standard Edition )定義了Java的核心類庫,包含了各種常用組件,是Java開發(fā)的基礎(chǔ)
J2ME (Java2 Platform Micro Edition )是基于J2SE衍生出的專用于移動設(shè)備的開發(fā)組件,如手機、機頂盒、車載導(dǎo)航等。
J2EE (Java2 Platform Enterprise Edition )是基于J2SE擴展出的企業(yè)級開發(fā)組件,提供了Java Web相關(guān)的開發(fā)組件,如Servlet, JSP等,是Java開發(fā)的主流技術(shù)。
2005年之后,三大體系被重新命名,其中J2SE更名為Java SE, J2ME更名為Java ME , J2EE更名為Java EE,在三大體系中, Java SE是核心, Java ME和Java EE是在Java SE的基礎(chǔ)上發(fā)展起來的,如圖1-4所示。
圖1-4
1.2搭建Java開發(fā)環(huán)境
上一節(jié)我們學(xué)習了Java的基本概念,了解了Java的運行原理。Java程序必須依賴于JM才能運行,所以開發(fā)Java程序的第一步就是在計算機上安裝Java環(huán)境,本節(jié)就帶大家一起來安裝和配置Java環(huán)境。
1.2.1安裝配置Java10
Java經(jīng)歷了這么多年的發(fā)展,最新的版本是Java10 (作者在編寫本書時的最新版) ,我們就以Java10為例,給大家演示如何安裝和配置Java環(huán)境。首先我們需要了解什么是Java環(huán)境,有兩個重要的概念我們需要掌握——JRE和JDK.
JRE (Java Runtime Environment )是Java的運行環(huán)境,包括JM和Java基礎(chǔ)類庫,一臺計算機要運行Java程序,就必須有JRE
JDK (Java Development Kit )是Java開發(fā)包,它包含JRE和編譯Java源文件的編譯器,我們要在一臺計算機上進行Java程序開發(fā),就必須安裝JDK,
由此可知,JRE是Java程序運行環(huán)境, JDK是Java程序開發(fā)環(huán)境,而JDK包含了JRE ,我們只需要安裝JDK即可。
1.下載JDK
(1)打開Java官方網(wǎng)站,選擇"JDK Download"下載JDK10.0.2 (作者在編寫本書時的最新版) ,如圖1-5所示。
(2)在打開的新網(wǎng)頁選中"Accept License Agreement"選項,如圖1-6所示。
圖1-5
圖1-6
(3) 根據(jù)你的操作系統(tǒng)選擇對應(yīng)的JDK安裝文件,這里我們選擇Windows系統(tǒng)下的JDK,如圖1-7所示。
圖1-7
(4)下載好的安裝文件如何1-8所示。
圖1-8
2.安裝JDK
(1)找到JDK安裝文件,雙擊鼠標左鍵運行該文件。
(2)一直單擊"下一步按鈕,全部選擇"默認"即可。
3,配置環(huán)境變量
(1)配置path環(huán)境變量使計算機在運行程序時可以找到Java程序的路徑。
(2)配置classth可以設(shè)置class文件的路徑信息。
配置環(huán)境變量的具體步驟如下所示。
(1)找到自己安裝Java的路徑,復(fù)制下來留著下一步備用,如圖1-9所示。
(2)計算機一屬性一高級系統(tǒng)設(shè)置一高級一環(huán)境變量一系統(tǒng)變量,點擊"新建",為變星起名"JAVA_HOME" ,變量值設(shè)置為上一步復(fù)制的路徑,如圖1-10所示。
圖1-9
圖1-10
(3)在Path路徑的開頭添加"%JAVA_HOME%bin;" ,如圖1-11所示。
圖1-11
4. 檢測是否安裝成功
(1)按Windows R組合鍵,輸入cmd,單擊“確定”按鈕打開終端,如圖1-12所示:
圖1-12
(2)在終端輸入“javac”以及“java”,如果安裝成功就可以看到如圖1-13和圖1-14所示的信息。
圖1-13
圖1-14
(3)若出現(xiàn)“javac/java不是內(nèi)部命令”字樣,則表示環(huán)境配置失敗,需要重新配置。
(4)輸入“java-version”,可以查看java的版本信息,如圖1-15所示。
圖1-15
1.2.2 Java程序開發(fā)步驟
想必讀到這里,大家都已經(jīng)成功地配置好了Java環(huán)境,準備工作就緒,接下來我們就可以正式開始寫代碼了。
我們的第一個Java程序是輸出"Hello World"。在D盤新建一個文件夾,命名為java ,進入java文件夾,新建一個名為HelloWorld java的文件,這就是Java源文件。接下來,用記事本或者其他編輯器打開文件來編寫代碼,如代碼1-1所示。
代碼1-1
public class Hellollorld{public static void main(String[] args) {System.out.printIn("Hello World");}}
我們之前介紹過, Java程序開發(fā)分三步:第一步編寫,第二步編譯,第三步運行。代碼1-1編寫完成之后,我們需要進行第二步:編譯。
(1)打開CMD終端(按Windows R組合鍵,然后輸入"cmd" ) ,用"d:"命令進入計算機的D盤,然后通過cd命令進入Java程序所在的文件夾,如圖1-16所示, Helloworld.java保存在D盤的java文件夾中。
(2)如圖1-17所示,使用javac HelloWorldjava合令編譯HelloWorld.java文件。
(3)如圖1-18所示,在編譯成功后,會看到D:/java文件夾中自動生成了一個HelloWorld.class文件,該文件就是我們之前提到的字節(jié)碼文件, JVM就是通過讀取這個文件來運行程序的。
圖1-16
圖1-17
圖1-18
(5)如圖1-19所示,使用java HelloWorld命令來運行java程序,計算機打印輸出了“HelloWorld”字符串。
圖1-19
成功!這里對代碼進行簡單的說明, public static void main(String[] args)是程序的入口,我們希望計算機執(zhí)行的代碼都寫在這里,大家可以先這樣理解,后面我們會詳細講解main方法。
注意事項:
編譯程序的命令是javac;
運行程序的命令是java;
編寫代碼時注意字母的大小寫, Java程序?qū)Υ笮懨舾小?/p>
1.3 小結(jié)
作為本書的開篇內(nèi)容,本章首先為大家介紹了Java的基本運行原理、體系結(jié)構(gòu)以及Java能開發(fā)哪些應(yīng)用程序,讓初學(xué)者對Java有一個基本的認識和概念。介紹完Java的基本概念,接下來為大家講解如何安裝配置Java環(huán)境,第一步安裝JDK,第二步配置環(huán)境變量,完成之后就可以在計算機上開發(fā)Java程序了。Java程序開發(fā)共分為3個步驟:第一步編寫Java源代碼,第二步將Java源代碼編譯成JVM能識別的字節(jié)碼文件,第三步計算機讀取字節(jié)碼文件并運行程序。
我們在學(xué)習一個新知識的時候,首先是要了解它是什么,它能做什么,然后才是怎么使用。本章對這3個問題做了詳細解答,為后續(xù)的深入學(xué)習做好了鋪墊。
本文節(jié)選自《Java零基礎(chǔ)實戰(zhàn)》
全書共分3部分,10章,54小節(jié)。第1部分講解Java的基本概念,運行機制,開發(fā)方式,基礎(chǔ)語法;第2部分講解Java的核心思想:面向?qū)ο?,教會讀者使用面向?qū)ο蟮乃枷脒M行軟件開發(fā);第3部分講解Java的高級特性,包括多線程,集合框架,實用類,IO流,反射機制,網(wǎng)絡(luò)編程。