# 大數據學習筆記第1天 #
## 大綱
- 軟件&軟件開發
- 人機交互方式
- 常用DOS命令
- 開發環境搭建
- 開發體驗:第一個Java程序
- 注釋
## 第一節課
- 軟件&軟件開發
- 人機交互方式
- 常用DOS命令
## 第二節課
- Java簡介
- Java開發環境安裝與配置
## 第三節課
- 安裝Notepad
- 第一個Java程序
- 轉義字符
## 第四節課
- classpath
- 注釋
## 第一節課
### 軟件&軟件開發
計算機硬件常識,存儲器分類:
- Cache:高速緩存
- 內存:Main Memory/Primary Memory
- 硬盤:Secondary Memory: Hard Drive
硬盤上的文件不能直接訪問,必須先加載到內存中,所有的程序都是在內存中運行的。

什么是計算機語音:
- 人類語言:是人與人之間溝通的一種方式;
- 計算機語言:人與計算交流的方式;
計算機發展簡史:
- 第一代:機器碼
- 第二代:匯編語言(出現了一些簡單的英文單詞)
- 第三代:高級語言(更加接近人類語言,容易理解和記憶,如:C,C++,C#,JAVA)
### 人機交互方式
- 圖形界面GUI:Windows系統
- 命令行方式CLI:DOS窗口,Bash命令
### 常用DOS命令
- dir: 列出當前目錄下的文件夾以及文件;
- md: mkdir的縮寫,創建一個空目錄;
- rd: remove directory簡寫,刪除空目錄;
- cd: chdir的縮寫,切換一個目錄,進入目錄;
- del: 刪除文件;
- exit: 退出dos命令行;
## 第二節課
### Java簡介
- SUN公司1995年推出的一門高級編程語言;
- 2009年被Oracle公司收購;
- 隨著Java技術在Web方面的不斷成熟,已經成為了Web應用程序的首選開發語言;
- 是Hadoop等大數據開源框架首選開發語言;
- 特點是:完全面向對象,安全可靠,與平臺沒有關系;
Java語言的三種技術架構:
- JAVA EE 企業版 (主要用于開發Web應用程序)
- JAVA SE 標準版 (大數據開發使用這種版本)
- JAVE ME 小型版 (是為開發電子消費產品和嵌入式設備提供的解決方案,逐漸被淘汰)
Java語言的特點:跨平臺性
平臺指的是各種OS(操作系統Operation System),通過Java語言編寫的應用程序在不同的操作系統平臺上都可以運行。 Java之所以可以在各種平臺上運行,是因為Java針對各種平臺都開發了不同的JVM虛擬機(Java Virtual Machine)。同樣的Java程序在不同的平臺上都能運行,這就是Java的跨平臺性。
### Java開發環境安裝與配置
明確什么是:JRE(java runtime environment), JDK(java development kit); 『下載』和『安裝』JDK,『配置』環境變量(CMD中敲set可以查看環境變量); 安裝完成后可以在命令行中輸入java命令進行『驗證』;
什么是JRE(jvm+核心類庫lib),JDK:JRE包括Java虛擬機,和Java程序所需要的核心類庫等;
JDK(jre+工具tool)是提供給Java開發人員使用的,其中包含了Java的開發工具,也包括了JRE,所以安裝了JDK,就不用再單獨安裝JRE了。

下載JDK(Java開發工具包)官網:www.oracle.com 注意操作系統以及版本的選擇。
安裝JDK,建議安裝路徑最好不要有中文字符或者空格,提示安裝JRE時,可以選擇不安裝。
配置環境變量Path:我的電腦-屬性-高級-環境變量。編輯Path環境變量,加上java工具所在目錄,各個路徑之間用英文";"分隔,建議放在最前面;打開DOS命令行,在任意目錄下執行javac命令,如果出現javac的參數信息,配置成功。
## 第三節課
### 安裝Notepad
安裝完成后,配置字符集編碼ANSI、文件關聯.java、自動輸入完成等;
### 第一個Java程序
編寫之前調整系統,取消隱藏的已知類型文件的擴展名;
文本編輯器:Notepad++
1. 將java代碼編寫到后綴名為.java的文件中
2. 通過javac命令對該java文件進行編譯
3. 通過java命令運行生成的class文件
注意區分大小寫。
編譯:將源碼文件編譯成JVM可以識別的文件,在該源碼文件目錄下,通過javac編譯工具,對Hello.java文件進行編譯;如果程序沒有出錯,沒有任何提示,但在當前目錄下會出現一個Hello.class文件,該文件稱為字節碼文件,也是可執行的java的程序。
運行:通過運行工具java.exe對字節碼文件進行執行,注意java命令后邊的文件不用加.class,正常時就會輸出Hello World
常見的錯誤:
- 缺少大括號(不成對)
- 字母大小寫錯誤
- 關鍵字單詞拼寫錯誤

代碼:
class Hello{
public static void main(String[] args){
System.out.println("Hello World");
}
}
如果在class前面加上public修飾,說明這是一個公共類,此時類名和文件名必須保持一致。一個源文件中可以包含多個類,編譯之后,各自形成字節碼文件。
編譯后的文件名稱為:Hello.class,內容如下圖所示:

### 轉義字符
- \r: 回車,光標移到行首
- \n: 換行符,光標移到到下一行
- \t: tab鍵
- \\: 輸出一個\
## 第四節課
### classpath
可以在CMD中臨時配置:set classpath=c:/
- 既然class文件(字節碼文件)是java的運行文件,可不可以實現在任意目錄下都可以執行某一目錄下的class文件呢?
- 根據path環境變量的原理,可以定義一個名為classpath環境變量,將要運行的class文件所在的目錄定義在該變量中;
- JVM查找類文件的順序:
- 如果沒有配置classpath環境變量,JVM只在當前目錄下查找要運行的類文件;
- 如果配置了classpath環境變量,JVM會先在classpath環境變量值得目錄中查找要運行的類文件:
- 值的結尾處如果加上分號,那么JVM在classpath目錄下沒有找到要指定的類文件,會在當前目錄下再查找一次;
- 值的結尾處如果沒有加上分號,那么JVM在classpath目錄下沒有找到要指定的類文件,不會再當前目錄下查找,即使當前目錄下有,也不會運行;
### 注釋
用于注釋、說明、解釋程序的文字就是注釋。主要是寫給開發人員看的。
- 單行 //
- 多行 `/* .... */`
- 文檔注釋 `/** .... */`