1. 程式人生 > >01_JavaCore—扯淡史

01_JavaCore—扯淡史

這裡寫圖片描述

1.計算機語言發展史

1.1 計算機的三代語言

任何一個產品的發展規律都是:向著人更加容易使用、功能越來越強大的方向發展。

這裡寫圖片描述
第一代:機器語言(馮·諾依曼)

  • 機器語言是用二進位制程式碼表示的計算機能直接識別和執行的一種機器指指令系統的集合。

第二代:組合語言(電晶體-貝爾實驗室)

  • 組合語言(assembly language)是一種用於電子計算機、微處理器、微控制器或其他可程式設計器件的低階語言,亦稱為符號語言。

第三代:高階語言

隨著電晶體、積體電路的出現,計算機的功耗越來越小、速度越來越快,計算機很快深入到了各行各業。有個很著名的定律叫做摩爾定律,他深刻的展示了計算機發展的規律:
“當價格不變時,積體電路上可容納的電晶體數目,約每隔18個月便會增加一倍,效能也將提升一倍。換言之,每一美元所能買到的電腦效能,將每隔18個月翻兩倍以上”

  • 面向過程
    • C(貝爾實驗室)
    • Fortran(IBM:International Bussiness Machine)
    • COBOL
    • PASCAL
    • ADA
  • 面向物件
    • C++
    • Java
    • C#

1.2 Java簡史

  • Sun
  • 為什麼會被髮明?
    • Green專案
    • 應用環境:像電視盒這樣的消費類電子產品的流行
    • 需求:語言本身應該是中立的,即跨平臺性
  • 發明人:James·Gosling

1.3 Java流行的原因

  • 外部環境

    • 網際網路的爆發式增長
    • 網際網路上的電腦硬體不同,軟體環境差異太大,需要一種跨平臺的語言
  • Java的核心優勢:跨平臺性

1.4 Java的版本

JavaEE: Java企業版,定位在伺服器的應用
JavaSE: Java標準版,定位於個人計算機的應用(學習)
JavaMe: Java低配版,定位於消費類電子產品的應用

2. JDK、JRE、JVM

2.1 基本概念

JDK:Java Development Kit //Java開發工具包
JRE:Java Runtime Enviorment //Java執行時環境
JVM:Java Virtual Mavhine //Java虛擬機器
  • JVM是一種規範
    虛擬的用於執行bytecodes位元組碼的計算機

  • 可以使用軟體來實現
    IBM/Sun/BEA等;也可以自己寫一個虛擬機器

  • 也可以使用硬體來實現
    比如Sun/Intel公司正在研發的Java晶片

2.2 JVM執行示意

這裡寫圖片描述

2.3 Java環境變數配置+測試

  1. JAVA_HOME:C:\Program Files\Java\jdk1.8.0_101–(JDK安裝路徑)

  2. path:

    • %JAVA_HOME%\bin;–(加在最前面,主要用分號分開)
    • %JAVA_HOME%\jre\bin;
  3. CLASS_PATH:%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
    JDK5.0以上版本不需要進行配置

  4. 測試

執行->cmd(win+R)
->Java -version
->java 
->javac

3. 手寫第一個Java程式

3.1 編寫原始碼 + 編譯 + 執行

1). 編寫程式碼

public class Welcome//類名和文件名保持一致
{
    public static void main(String[] args){
        System.out.println("Hello World!!!");
    }
}

2). 編譯

執行->cmd
->進入到原始碼目錄
(碟符:->回車->貼上檔案目錄->回車)
->javac Welcome.java

這裡寫圖片描述
3). 執行
->java Welcome .class

3.2 程式碼書寫規範

  • Java是一種大小寫敏感的程式語言
  • main方法是程式的入口,具有固定的格式:
    Public static void main(String[] args){ }
  • 一個原始檔可以對應多個class,只能有一個public class(必須與檔名一致)

程式設計風格

- 注意縮排

一定要有縮排,縮排就像人得體的衣著一樣,是一個程式設計師的基本修養。

- 成對程式設計

(花)括號、引號都應該先寫完再往裡面加內容。

- 見名知意

最基本的要求
變數名、類名及方法名的命名都應該有意義。

註釋

//單行註釋
/* */ 
多行註釋或註釋單個字母/詞
多行註釋不能巢狀