Java · 減熵增長(第0篇)

Summary

我接觸Java是因為算法和數(shù)據(jù)結(jié)構(gòu)的課程需要,在此之前只有少量python的編程基礎(chǔ)。如果你也是零基礎(chǔ),對Java感興趣,或許可以看看我是如何一步步受虐的。它山之石,可以攻玉。

  • Java起源
  • Java開發(fā)工具
  • Java運行過程
  • Java初體驗

1.Java起源

Java的前身是C++,由于C++在開發(fā)中容易出現(xiàn)錯誤,比如飽受詬病的指針和Goto語句,所以有了創(chuàng)建一種C++再--(減掉易錯部分)語言的動力。

1990年,Patrick Naughton瞄準(zhǔn)智能家電(如微波爐)的程序設(shè)計,在1995年,終于開發(fā)出了最初的Java開發(fā)工具(JDK, Java Development Kit),主要特點如下:
(1)簡單、面向?qū)ο?、為人熟?br> (2)穩(wěn)定、安全
(3)結(jié)構(gòu)中立(編譯時生成一種可以被任何機器解釋執(zhí)行的中立目標(biāo)格式)、容易遷移
(4)高性能
(5)可解釋、多線程、動態(tài)

作者語:今天回看Java,它的跨平臺和安全性能最為重要。
我們經(jīng)歷過笨重的臺式機,逐步發(fā)展到輕便的筆記本,再到便攜的平板,然后是移動設(shè)備(手機)的流行和穿戴設(shè)備(手表、眼鏡)的興起。這些智能設(shè)備上有不同的操作系統(tǒng),而Java的跨平臺性能在今天看來特別有遠(yuǎn)見,互聯(lián)網(wǎng)金融的興起也使得Java的安全性備受青睞。

2.Java開發(fā)工具

JDK有兩個部分構(gòu)成:tools和JRE(Java Runtime Environment)。

作者語:能看出Java的設(shè)計是面向用戶的,把用戶分為了程序使用者和開發(fā)者兩大類。(Java是面向?qū)ο蟮木幊陶Z言,自身的開發(fā)竟然都融入面向?qū)ο蟮乃伎?,簡直把面向?qū)ο蟮木癜l(fā)揮到極致)
如果只需要運行Java程序,設(shè)備加載JRE即可;開發(fā)人員,同時加載開發(fā)的tools。

在JRE中又包含API(Application Programming Interface)和JVM(Java Virtual Machine)。

3.Java運行過程

Java的運行過程分為兩步:
1.源代碼,即.java文件,經(jīng)過編譯(常用javac)后生成.class文件;
2.class文件加載到任何設(shè)備平臺上,經(jīng)過JVM的處理翻譯成CPU可以識別的命令運行。

作者語:前面提到的跨平臺和安全性可以通過運行過程得到更好的理解。
跨平臺:是通過源代碼編譯為中間文件.class來實現(xiàn)的,.class文件可以被任何設(shè)備加載,該設(shè)備上的JVM可以根據(jù)設(shè)備的硬件把它翻譯成可運行的CPU指令。
安全:先編譯為.class文件,加載并校驗了即將運行的代碼。源代碼就像是工廠生產(chǎn)車間,而.class文件的加載校驗就行是工廠的質(zhì)檢部門,例如,JVM的存在可以避免C和C++的內(nèi)存溢出問題。

4.Java初體驗

任何一門編程語言的學(xué)習(xí),好像都是從hello world開始的。

1.public class HelloWorld{
2.  public static void main(String[] args){
3.    System.out.println("Hello World!");
4.  }
5.}

閑言少敘,以上就是Java的hello world。逐行解析:
1.public和class都是修飾符modifier,public指明HelloWorld是公開的,其他package也可以調(diào)用,class指明HelloWorld是一個類。HelloWorld就是類名(注:編碼習(xí)慣類名的首字母要大寫,即這里的H);
2.這行代碼是標(biāo)準(zhǔn)的主體運行部分,每一個Java源代碼中都存在。public見1,static說明此部分是靜態(tài)的(比較難懂的概念,這里簡單說,就是只能抽象存在于類,不能被實例化),void指沒有返回對象,main指代碼從這里開始執(zhí)行,String[] args指一個字符串類型的數(shù)組,名字叫做args(arguments變量的縮寫);
3.這行代碼的作用是輸出一段文字——“Hello World!”,前面代碼中的“.”表示package里面的函數(shù),可以簡單理解為文件夾里的文件夾/文件

作者語:Java初體驗的最大感受是:
1.文件名要和public類名一致,安全的有點過分;
2.類和函數(shù)的修飾好多,編碼要求程序員事先想好預(yù)制問題,追求安全不擇手段;
3.每條statement要以分號結(jié)束,這讓用python散漫慣了的作者不太適應(yīng);
4.任何一個變量都要事先規(guī)定好類型,數(shù)組甚至要事先規(guī)定好長度,這點上Java確實安全了,不過犧牲了靈活性,相比而言python在靈活性上做的更好。

To be continued

JAVA是面向?qū)ο蟮木幊陶Z言,對象指的是可標(biāo)識的內(nèi)存空間。該思想的核心由封裝、繼承和多態(tài)組成。面向?qū)ο蟮木幊踢^程,就是把實際的對象抽象出來,思考對象的屬性和行為。實際的對象是實例instance,而一群相似對象的抽象是類class。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容