day01-计算机操作系统java编程入门
java基礎(chǔ)開始
1.計算機(jī)基礎(chǔ)
1.1.什么是計算機(jī)
計算機(jī)(computer)俗稱電腦,是一種用于高速計算的電子計算機(jī)器,可以進(jìn)行數(shù)值計算, 又可以進(jìn)行邏輯計算,還具有存儲記憶功能。是能夠按照程序運(yùn)行,自動、高速處理海量數(shù) 據(jù)的現(xiàn)代化智能電子設(shè)備。由硬件系統(tǒng)和軟件系統(tǒng)組成,沒有安裝任何軟件的計算機(jī)稱為裸 機(jī)。軟件提供看不見的指令。這些指令控制硬件并且使得硬件完成特定的任務(wù)。
1.2.計算機(jī)硬件系統(tǒng)和軟件系統(tǒng)
軟件包含了指令,告訴計算機(jī)做什么
1.3.計算機(jī)主要硬件介紹
1.3.1. cpu
cpu 是一臺計算機(jī)的運(yùn)算核心和控制核心。是計算機(jī)的大腦。它從內(nèi)存中獲取指令,然后執(zhí) 行這些指令。其功能主要是解釋計算機(jī)指令以及處理計算機(jī)軟件中的數(shù)據(jù)。CPU 由運(yùn)算器、 控制器、寄存器、高速緩存及實(shí)現(xiàn)它們之間聯(lián)系的數(shù)據(jù)、控制及狀態(tài)的總線構(gòu)成。作為整個 系統(tǒng)的核心,CPU 也是整個系統(tǒng)最高的執(zhí)行單元,因此 CPU 已成為決定電腦性能的核心部 件,很多用戶都以它為標(biāo)準(zhǔn)來判斷電腦的檔次。 CPU 的主頻,即 CPU 內(nèi)核工作的時鐘頻率(CPUClockSpeed)。該時鐘速度越快,時間段內(nèi)執(zhí)行的指令就越多, 目前酷睿是 2G-3G(1G 是 10000Mhz)例如,2MHz(200 萬次/秒),3GHz(三十億次/秒)。
1.3.2. 內(nèi)存
內(nèi)存:存儲數(shù)據(jù)的,軟件在運(yùn)行過程中所需要的數(shù)據(jù)會先加載到內(nèi)存 中,然后 cpu 獲取 的 數(shù)據(jù)都是直接從內(nèi)存中獲取,并不是直接從硬盤中獲取的。 優(yōu)點(diǎn): 存取速度快。 缺點(diǎn): 一旦斷電或者是程序退出,內(nèi)存中的數(shù)據(jù)會馬上丟失。
一個程序和它的數(shù)據(jù)在被 CPU 執(zhí)行前必須移到計算機(jī)的內(nèi)存中。每個字節(jié)都有一個唯一的 地址。使用這個地址確定字節(jié)的位置,以便于存儲和獲取數(shù)據(jù)。一個計算機(jī)具有的 RAM 越 多,它的運(yùn)行速度越快。內(nèi)存存取數(shù)據(jù)的速度比硬盤的存取速度快 10 倍,在某些環(huán)境里, 硬盤和內(nèi)存之間的速度差距可能會更大。而 CPU 的速度比內(nèi)存不知還要快多少倍。當(dāng)我們 把程序從硬盤放到內(nèi)存以后,CPU 就直接在內(nèi)存運(yùn)行程序,這樣比 CPU 直接在硬盤運(yùn)行程 序就要快很多。內(nèi)存解決了一部分 CPU 運(yùn)行過快,而硬盤數(shù)據(jù)存取太慢的問題。提高了我 們的電腦的運(yùn)行速度。內(nèi)存就如同一條“高速車道”一般,數(shù)據(jù)由傳輸速度較慢的硬盤通過這 條高速車道傳送至 CPU 進(jìn)行處理!但內(nèi)存是帶電存儲的(一旦斷電數(shù)據(jù)就會消失),而且容量 有限,所以要長時間儲存程序或數(shù)據(jù)就需要使用硬盤。
內(nèi)存在這里起了兩個作用: 1.保存從硬盤讀取的數(shù)據(jù),提供給 CPU 使用 2. 保存 CPU 的一些臨時執(zhí)行結(jié)果,以便 CPU 下次使用或保存到硬盤
1.3.3. 數(shù)據(jù)是如何存儲在計算機(jī)中的
計算機(jī)就是一系列的電路開關(guān)。每個開關(guān)存在兩種狀態(tài):關(guān)(off)和開(on)。如果電路是 開的,它的值是 1。如果電路是關(guān)的,它的值是 0。 一個 0 或者一個 1 存儲為一個比特(bit),是計算機(jī)中最小的存儲單位。 計算機(jī)中是最基本的存儲單元是字節(jié)(byte) 。每個字節(jié)由 8 個比特構(gòu)成。
1.3.4. 硬盤
硬盤(機(jī)械硬盤, 固態(tài)硬盤): 用于永久保存數(shù)據(jù)和程序 優(yōu)點(diǎn):可以永久性保持?jǐn)?shù)據(jù),即使斷電或者是程序退出,保存在硬盤中的數(shù)據(jù)是不會丟失的。 缺點(diǎn): 存取的速度慢。
1.4.計算機(jī)軟件系統(tǒng)
計算機(jī)軟件系統(tǒng)通常被分為系統(tǒng)軟件和應(yīng)用軟件兩大類。計算機(jī)系統(tǒng)軟件能保證計算機(jī)按照 用戶的意愿正常運(yùn)行,滿足用戶使用計算機(jī)的各種需求,幫助用戶管理計算機(jī)和維護(hù)資源執(zhí) 行用戶命令、控制系統(tǒng)調(diào)度等任務(wù)。軟件系統(tǒng)分為兩大類,雖然各自的用途不同,但他們的 共同點(diǎn)是都存儲在計算機(jī)存儲器中,以某種格式編碼書寫的程序或數(shù)據(jù)。 (1)系統(tǒng)軟件 系統(tǒng)軟件是指擔(dān)負(fù)控制和協(xié)調(diào)計算機(jī)及其外部設(shè)備、支持應(yīng)用軟件的開發(fā)和運(yùn)行的一類計算 機(jī)軟件。系統(tǒng)軟件一般包括操作系統(tǒng)、語言處理程序、數(shù)據(jù)庫系統(tǒng)和網(wǎng)絡(luò)管理系統(tǒng)。控制和 監(jiān)視系統(tǒng)的活動。分配和調(diào)配系統(tǒng)資源。調(diào)度操作
(2)應(yīng)用軟件 應(yīng)用軟件是指為特定領(lǐng)域開發(fā)、并為特定目的服務(wù)的一類軟件。應(yīng)用軟件是直接面向用戶需 要的,它們可以直接幫助用戶提高工作質(zhì)量和效率,甚至可以幫助用戶解決某些難題。應(yīng)用 軟件一般分為兩類:一類是為特定需要開發(fā)的實(shí)用型軟件,如會計核算軟件、工程預(yù)算軟件 和教育輔助軟件等:另一類是為了方便用戶使用計算機(jī)而提供的一種工具軟件,如用于文字 處理的 Word、用于輔助設(shè)計的 AutoCAD 及用于系統(tǒng)維護(hù)的瑞星殺毒軟件等。
1.5.windows 操作系統(tǒng)
1.6.什么是軟件
軟件,即一系列按照特定順序組織的計算機(jī)數(shù)據(jù)和指令的集合
1.7.人機(jī)交互的方式
1) 圖形化界面:簡單直觀,容易操作,用戶的體驗(yàn)好。 圖形化界面(GraphicalUser InterfaceGUI)這種方式簡單直觀,使用者易于接受,容易上 手操作。 2 )dos 命令交互方式:需要有一個控制臺,輸入特定的指令,讓計算機(jī)完成一些操作。較 為麻煩,需要記錄住一些命令,而且只能完成一些比較單一的功能。命令行方式(Command LineInterfaceCLI):需要有一個控制臺,輸入特定的指令,讓計算機(jī)完成一些操作。較為麻 煩,需要記錄住一些命令。
1.8.DOS 系統(tǒng)
DOS 是一個早期的操作系統(tǒng),現(xiàn)在已經(jīng)被 Windows 系統(tǒng)取代,對于我們開發(fā)人員,目前需 要在 DOS 中完成一些事情,因此就需要掌握一些必要的命令
1.9.常見的 DOS 命令
1.10. 計算機(jī)語言
通過 DOS 命令行的演示,發(fā)現(xiàn)原來操作計算機(jī)就如同和計算機(jī)說話一樣。 我們告訴它做什么,它就可以做什么。前提是,我們和它說的內(nèi)容它必須識別才可以。這就 是計算機(jī)語言
語言:是人與人之間用于溝通的一種方式。 例如:中國人與中國人用中文溝通。而中國人要和韓國人交流,就要學(xué)習(xí)韓語。 計算機(jī)語言:人與計算機(jī)交流的方式。如果人要與計算機(jī)交流,那么就要學(xué)習(xí)計算機(jī)語。計 算機(jī)語言有很多種。如:C,C++,Java,PHP,Kotlin,Python,Scala 等如:C,C++,Java 等。這 里,我們選擇其中的一種:Java 語言
1.10.1. 第一代語言
機(jī)器語言。指令以二進(jìn)制代碼形式存在
1.10.2. 第二代語言
匯編語言。使用助記符表示一條機(jī)器指令。
1.10.3. 第三代語言:高級語言
C、Pascal、面向過程的語言 C++面向過程/面向?qū)ο?Java 跨平臺的純面向?qū)ο蟮恼Z言 .NET 跨語言的平臺 Python、Scala…
2.Java 簡介
2.1.為什么學(xué)習(xí) java
錢途
2.2.語言歷史概述
2.3.Java 之父
任首席軟件架構(gòu)師
2.4.Java 技術(shù)體系平臺
從 Java 的應(yīng)用領(lǐng)域來分,Java 語言的應(yīng)用方向主要表現(xiàn)在以下幾個方面:
企業(yè)級應(yīng)用:主要指復(fù)雜的大企業(yè)的軟件系統(tǒng)、各種類型的網(wǎng)站。Java 的安全機(jī)制以及它的 跨平臺的優(yōu)勢,使它在分布式系統(tǒng)領(lǐng)域開發(fā)中有廣泛應(yīng)用。應(yīng)用領(lǐng)域包括金融、電信、交通、 電子商務(wù)等。
Android 平臺應(yīng)用:Android 應(yīng)用程序使用 Java 語言編寫。Android 開發(fā)水平的高低很大程度 上取決于 Java 語言核心能力是否扎實(shí)。
大數(shù)據(jù)平臺開發(fā):各類框架有 Hadoop,spark,storm,flink 等,就這類技術(shù)生態(tài)圈來講,還 有各種中間件如 flume,kafka,sqoop 等等,這些框架以及工具大多數(shù)是用 Java 編寫而成, 但提供諸如 Java,scala,Python,R 等各種語言 API 供編程。
移動領(lǐng)域應(yīng)用:主要表現(xiàn)在消費(fèi)和嵌入式領(lǐng)域,是指在各種小型設(shè)備上的應(yīng)用,包括手機(jī)、 PDA
Java 語言是易學(xué)的。Java 語言的語法與 C 語言和 C++語言很接近,使得大多數(shù)程序員很容易 學(xué)習(xí)和使用 Java。 Java 語言是強(qiáng)制面向?qū)ο蟮摹ava 語言提供類、接口和繼承等原語,為了簡單起見,只支持 類之間的單繼承,但支持接口之間的多繼承,并支持類與接口之間的實(shí)現(xiàn)機(jī)制(關(guān)鍵字為 implements)。
Java 語言是分布式的。 Java 語言支持 Internet 應(yīng)用的開發(fā),在基本的 Java 應(yīng)用編程接口中有一個網(wǎng)絡(luò)應(yīng)用編程接口(java net),它提供了用于網(wǎng)絡(luò)應(yīng)用編程的類庫,包括 URL、 URLConnection、Socket、ServerSocket 等。Java 的 RMI(遠(yuǎn)程方法激活)機(jī)制也是開發(fā)分布 式應(yīng)用的重要手段。
Java 語言是健壯的。Java 的強(qiáng)類型機(jī)制、異常處理、垃圾的自動收集等是 Java 程序健壯性 的重要保證。對指針的丟棄是 Java 的明智選擇。
2.5.Java 語言的特點(diǎn):跨平臺性
1) 什么是跨平臺性? 通過 Java 語言編寫的應(yīng)用程序在不同的系統(tǒng)平臺上都可以運(yùn)行。
2) 原理是什么? 只要在需要運(yùn)行 java 應(yīng)用程序的操作系統(tǒng)上,先安裝一個 Java 虛擬機(jī)(JVM JavaVirtual Machine)即可。由 JVM 來負(fù)責(zé) Java 程序在該系統(tǒng)中的運(yùn)行
java 是利用 JVM(java 虛擬機(jī))實(shí)現(xiàn)跨平臺的,不同的平臺有不同的 JVM,Java 代碼(.java 文件),通過編譯器編譯成字節(jié)碼(.class 文件),字節(jié)碼文件再通過不同平臺的 JVM 解釋為具 體平臺的具體指令。也就是說 java 的字節(jié)碼是跨平臺的。
JVM 是一個虛擬的計算機(jī),具有指令集并使用不同的存儲區(qū)域。負(fù)責(zé)執(zhí)行指令,管理數(shù)據(jù)、 內(nèi)存、寄存器。對于不同的平臺,有不同的虛擬機(jī)。只有某平臺提供了對應(yīng)的 java 虛擬機(jī), java 程序才可在此平臺運(yùn)行。Java 虛擬機(jī)機(jī)制屏蔽了底層運(yùn)行平臺的差別,實(shí)現(xiàn)了“一次編 譯,到處運(yùn)行”
3.Java 語言的環(huán)境搭建
3.1.什么是 JRE,JDK?
3.2.什么是 JVM
JVM 是 JavaVirtualMachine(Java 虛擬機(jī))的縮寫,JVM 是一種用于計算設(shè)備的規(guī)范,它是一個虛構(gòu)出來的計算機(jī),是通過在實(shí)際的計算機(jī)上仿真模擬各種計算機(jī)功能來實(shí)現(xiàn)的。
Java 語言的一個非常重要的特點(diǎn)就是與平臺的無關(guān)性。而使用 Java 虛擬機(jī)是實(shí)現(xiàn)這一特點(diǎn) 的關(guān)鍵。一般的高級語言如果要在不同的平臺上運(yùn)行,至少需要編譯成不同的目標(biāo)代碼。而 引入 Java 語言虛擬機(jī)后, Java 語言在不同平臺上運(yùn)行時不需要重新編譯。 Java 語言使用 Java 虛擬機(jī)屏蔽了與具體平臺相關(guān)的信息,使得 Java 語言編譯程序只需生成在 Java 虛擬機(jī)上運(yùn) 行的目標(biāo)代碼(字節(jié)碼),就可以在多種平臺上不加修改地運(yùn)行。Java 虛擬機(jī)在執(zhí)行字節(jié)碼 時,把字節(jié)碼解釋成具體平臺上的機(jī)器指令執(zhí)行。這就是 Java 的能夠“一次編譯,到處運(yùn)行” 的原因。
JRE=JVM+類庫文件 JDK=JRE+java 開發(fā)工具
3.3.下載 JDK
3.4.安裝 JDK
傻瓜式安裝,下一步即可。 建議:安裝路徑不要有中文或者特殊符號如空格等。 當(dāng)提示安裝 JRE 時,可以選擇不安裝
3.5.配置環(huán)境變量
3) 所以進(jìn)入到 jdk 安裝路徑\bin 目錄下,執(zhí)行 javac。看到 javac 參數(shù)提示信息。
4) 每次執(zhí)行 java 的工具都要進(jìn)入到 bin 目錄下,是非常麻煩的。 可不可以在任何目錄下都可以執(zhí)行 java 的工具呢? 根據(jù) windows 系統(tǒng)在查找可執(zhí)行程序的原理,可以將 java 工具所在路徑定義到 path 環(huán)境變 量中,讓系統(tǒng)幫我們?nèi)フ疫\(yùn)行執(zhí)行的程序。
5) 配置技巧 為了不因?yàn)?jdk 的目錄或者目錄名稱的改變,而不斷更改 path 的值,而導(dǎo)致對 path 變量值 的誤操作,可以通過以下技巧完成。 新創(chuàng)建一個環(huán)境變量 JAVA_HOME 記錄住 jdk 的目錄。 在 path 中通過%%動態(tài)的獲取 JAVA_HOME 的值即可。 JAVA_HOME=E\jdk9.0 path=%JAVA_HOME%\bin;%path% %path%:動態(tài)獲取 path 環(huán)境變量的值。 %JAVA_HOME%:動態(tài)獲取名稱為 JAVA_HOME 環(huán)境變量的值。
3.6.驗(yàn)證是否安裝成功
重新打開的命令行中輸入 javac 看到如下圖則說明安裝成功
4.Java 程序開發(fā)體驗(yàn)–HelloWorld
4.1.開發(fā)步驟
1) 將 Java 代碼編寫到擴(kuò)展名為.java 的文件中。 2) 將文件保存成 Demo.java,這個文件是存放 java 代碼的文件,稱為源文件 3) 通過 javac 命令對該 java 文件進(jìn)行編譯。 4) Javac 文件名.后綴名—產(chǎn)生一個.class 文件 5)通過 java 命令對生成的 class 文件進(jìn)行運(yùn)行。java 類名
4.2.具體步驟
步驟一:編寫 選擇最簡單的編輯器記事本。 敲入代碼 classDemo {} 將文件保存成 Demo.java,這個文件是存放 java 代碼的文件,稱為源文件。
步驟二:編譯 有了 java 源文件,將其編譯成 JVM 可以識別的文件。 在該源文件目錄下,通過 javac 編譯工具對 Demo.java 文件進(jìn)行編譯。 如果程序沒有錯誤,沒有任何提示,但在當(dāng)前目錄下會出現(xiàn)一個 Demo.class 文件,該文件 稱為字節(jié)碼文件,也是可以執(zhí)行的 java 的程序。 字節(jié)碼文件 是一種與平臺無關(guān)的二進(jìn)制文件
步驟三:運(yùn)行 有了可執(zhí)行的 java 程序(Demo.class 字節(jié)碼文件) 通過運(yùn)行工具 java.exe對字節(jié)碼文件進(jìn)行執(zhí)行。 出現(xiàn)提示:缺少一個名稱為 main 的方法
因?yàn)橐粋€程序的執(zhí)行需要一個起始點(diǎn)或者入口,所以在 Demo 類中的加入 publicstaticvoidmain(String[]args){} 對修改后的 Demo.java 源文件需要重新編譯,生成新的 class 文件后,在進(jìn)行執(zhí)行。 發(fā)現(xiàn)沒有編譯失敗,但也沒有任何效果,因?yàn)椴]有告訴 JVM 要幫我們做什么事情,也就 是沒有可以具體執(zhí)行的語句。 想要和 JVM 來個互動,只要在 main 方法中加入一句 System.out.println(“helloworld”);因?yàn)槌绦蜻M(jìn)行改動,所以再重新編譯,運(yùn)行即可。
4.3.動手操作
文件名必須是 HelloWorld ,保證文件名和類的名字是一致的,注意大小寫。 每個字母和符號必須與示例代碼一模一樣。 第一個 HelloWord 源程序就編寫完成了,但是這個文件是程序員編寫的,JVM 是看不懂的, 也就不能運(yùn)行,因此我們必須將編寫好的 Java 源文件 編譯成 JVM 可以看懂的 字節(jié)碼文 件 。
4.4.知識總結(jié)
編譯:是指將我們編寫的 Java 源文件翻譯成 JVM 認(rèn)識的 class 文件,在這個過程中,javac 編譯器會檢查我們所寫的程序是否有錯誤,有錯誤就會提示出來,如果沒有錯誤就會編譯成 功。 運(yùn)行:是指將 class 文件 交給 JVM 去運(yùn)行,此時 JVM 就會去執(zhí)行我們編寫的程序了 main 方法:稱為主方法。寫法是固定格式不可以更改。main 方法是程序的入口點(diǎn)或起始點(diǎn), 無論我們編寫多少程序,JVM 在運(yùn)行的時候,都會從 main 方法這里開始執(zhí)行。
4.5.常見問題
1) 缺少 main 方法 2) 源文件中的大小寫要注意 3) 拓展名(例子:A.java.txt) 4) 沒有配置 path 5) 類文件名寫錯
4.6.配置 classpath
1) 既然 class 文件(字節(jié)碼文件)是 java 的運(yùn)行文件,可不可以實(shí)現(xiàn),在任意目錄下都可以執(zhí)行 某一目錄下的 class 文件呢? 根據(jù) path 環(huán)境變量的原理,可以定義一個名為 classpath 環(huán)境變量,將要運(yùn)行的 class 文件所 在目錄定義在該變量中。 例:setclasspath=c:\ classpath 變量值是 java 類文件的目錄 path 變量是 windows 程序文件的目錄
2) JVM 查找類文件的順序: 如果沒有配置 classpath 環(huán)境變量,JVM 只在當(dāng)前目錄下查找要運(yùn)行的類文件。如果配置了 classpath 環(huán)境, JVM 會先在 classpath 環(huán)境變量值的目錄中查找要運(yùn)行的類文件。 值的結(jié)尾處如果加上分號,那么 JVM 在 classpath 目錄下沒有找到要指定的類文件,會在當(dāng) 前目錄下在查找一次。 值的結(jié)尾出如果沒有分號,那么 JVM 在 classpath 目錄下沒有找到要指定的類文件,不會在 當(dāng)前目錄下查找,即使當(dāng)前目錄下有,也不會運(yùn)行。 建議:配置 classpath 環(huán)境變量時,值的結(jié)尾處不要加分號,如果需要訪問當(dāng)前目錄可以用 “.” 表示。
5.常見的 java 開發(fā)工具
Java 集成開發(fā)環(huán)境(IDE): JBuilder NetBeans Eclipse MyEclipse IntelliJIDEA
6.今日作業(yè)
1.簡述對 JVM,JRE,JDK 的理解。
2.簡述環(huán)境變量 path 和 classpath 的作用?
3.獨(dú)立編寫 helloworld 程序,編譯并運(yùn)行。
4.java 語言是否區(qū)分大小寫?class 的作用,javac,java 的作用?
5.簡述 main 方法(是什么,什么特點(diǎn),怎么用,何時用?)
6.簡述今天遇到不理解的知識點(diǎn)。
總結(jié)
以上是生活随笔為你收集整理的day01-计算机操作系统java编程入门的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 正则和异常配合使用
- 下一篇: 02-java常量变量数据类型