Java是一門面向?qū)ο缶幊陶Z言,不僅吸收了C++語言的各種優(yōu)點(diǎn),還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強(qiáng)大和簡單易用兩個(gè)特征。Java語言作為靜態(tài)面向?qū)ο缶幊陶Z言的代表,極好地實(shí)現(xiàn)了面向?qū)ο罄碚?,允許程序員以優(yōu)雅的思維方式進(jìn)行復(fù)雜的編程
一、 從面向過程編程到面向?qū)ο缶幊痰乃季S轉(zhuǎn)變,什么是面向?qū)ο缶幊?/p>
面向?qū)ο蟪绦蛟O(shè)計(jì)(Object Oriented Programming)作為一種新方法,其本質(zhì)是以建立模型體現(xiàn)出來的抽象思維過程和面向?qū)ο蟮姆椒?。模型是用來反映現(xiàn)實(shí)世界中事物特征的。任何一個(gè)模型都不可能反映客觀事物的一切具體特征,只能對(duì)事物特征和變化規(guī)律的一種抽象,且在它所涉及的范圍內(nèi)更普遍、更集中、更深刻地描述客體的特征。通過建立模型而達(dá)到的抽象是人們對(duì)客體認(rèn)識(shí)的深化。二、 什么是字節(jié)碼和虛擬機(jī):
字節(jié)碼是一套設(shè)計(jì)用來在Java運(yùn)行時(shí)系統(tǒng)下執(zhí)行的高度優(yōu)化的指令集。該Java運(yùn)行時(shí)系統(tǒng)稱為Java虛擬機(jī)(JVM)。JVM其實(shí)就是一個(gè)字節(jié)碼解釋器。虛擬機(jī)將字節(jié)碼解釋成機(jī)器碼給CPU執(zhí)行,所以我們?cè)趈ava中通過虛擬機(jī)的這種解釋執(zhí)行方式來屏蔽底層操作系統(tǒng)的差異。
JRE = JVM+編譯器
JDK= JVM+編譯器+類庫
三、 環(huán)境變量的設(shè)置:
選擇一個(gè)適合自己的JDK版本下載并安裝即可,具體流程不詳述。
1、右鍵桌面上“我的電腦”>>“屬性”,在彈出的頁面上點(diǎn)擊“高級(jí)系統(tǒng)設(shè)置”。
2、在彈出的“系統(tǒng)屬性”窗口中“高級(jí)”標(biāo)簽頁下點(diǎn)擊“環(huán)境變量”按鈕。
3、在彈出的“環(huán)境變量”窗口中,點(diǎn)擊下方的“新建”按鈕,在彈出的“新建系統(tǒng)變量”窗口 中,新建一個(gè)名為“JAVA_HOME”的環(huán)境變量,變量值為Java的安裝路徑,
4、設(shè)置Path環(huán)境變量,該變量已經(jīng)存在,所以在列表中選擇Path,點(diǎn)擊下方的“編輯” 按鈕,在彈出的窗口中添加如下信息: %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin,然后點(diǎn)擊“確認(rèn)”按鈕即可。
5、和JAVA_HOME一樣,新建一個(gè)名為“classpath”的環(huán)境變量,變量值為: %JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar。
6、在配置好環(huán)境變量后,可以進(jìn)入cmd中檢查Java是否安裝正確,檢查的命令為 java - version
如果能正確的輸出Java的版本和JVM版本信息,則說明Java安裝正確。
四、 我們的第一個(gè)Java程序
public class MyFirstJava{
public static void main(String[] args){
System.out.println(“Hello World”);
}
}
五、 包結(jié)構(gòu)
為了根據(jù)需要將不同的原文件放在不同的目錄下我們引入了包。包我們可以看作就是一個(gè)存放java原文件的目錄。
在源碼的基礎(chǔ)上聲明一個(gè)包名:package sd0604
加包后我們用“javac MyFirstJava.java –d .”編譯后生成的字節(jié)碼文件就會(huì)放在我們指定的包(目錄)結(jié)構(gòu)下.
如果我們想指定多級(jí)目錄那么在目錄明之間我們可以用.作為分隔符。
例如:package sd0604.najing.xuanwu
六、 Java中的注釋
1、//單行注釋
2、/* */多行注釋
3、/** */文檔注釋
文檔注釋可以由java doc命令單獨(dú)提取出來生成注釋文檔。
例:javadoc MyFirstJava.java
我們?cè)谏傻淖⑨屛募锌梢源蜷_index入口頁面來查看我們剛剛生成的注釋文檔。
文檔注釋一般寫在類、方法、屬性定義之前
前兩種注釋和C++相同。
注意:1、我們可以用javadoc –help命令來查看該命令的其他用法。
2、同樣我們可以用“javadoc –d 路徑名”來指定生成文檔注釋的位置。
3、可以在文檔注釋中加入HTML標(biāo)簽來控制生成注釋文檔的顯示格式。
七、 jar命令的用法
我們可以用“jar –cvf m n”命令來將文件打包成jar壓縮包。
m: 要生成jar包的名字
n: 要壓縮文件的文件名(可以是多個(gè)文件或一個(gè)目錄)
生成的jar文件實(shí)際上就是一個(gè)普通的zip壓縮文件
八、計(jì)算機(jī)編譯一個(gè)java程序的過程
1、 啟動(dòng)JVM
2、 通過JAVA_HOME/jre/lib目錄下找到對(duì)應(yīng)的類
3、 如果的2不找不到則在環(huán)境變量中配置的CLASSPATH配置的路徑中找類,這就 是為什么我們要在CLASSPATH中配上當(dāng)前路徑的原因。
九、import聲明的作用
當(dāng)我們要用一個(gè)JDK定義好的類時(shí)我們需要在Java程序中配上該類對(duì)應(yīng)的jar包。(類似于C++中了#include預(yù)處理指令)
例:import java.util.*;
這里大家注意一點(diǎn):由于java.lang.*包中的類是我們編程中經(jīng)常要使用的,所以這個(gè)包下的類我們不用特別用import在程序中聲明。但當(dāng)我們要用到其他包中的類似我們就必須用import聲明了。
awt:抽象窗口工具.
十、java中的垃圾回收器
因?yàn)橛辛死厥掌?,我們可以不用顧慮對(duì)象創(chuàng)建后占用系統(tǒng)資源的問題。我們只用負(fù)責(zé)對(duì)象的創(chuàng)建,而對(duì)象銷毀和資源釋放的問題就可以留給垃圾回收器做了。這里我們需要注意的是垃圾回收器一般只會(huì)在內(nèi)存空間不夠的情況下進(jìn)行資源回收。
十一、java中標(biāo)識(shí)符的命名規(guī)則
1、 只能以字母、下劃線或”$”開頭,嚴(yán)格區(qū)分大小寫,且長度不限。
2、 類名的每個(gè)單詞的首字母大寫
3、 方法名屬性名的第一個(gè)單詞小寫,以后的每個(gè)單詞首字母大寫
4、 所有的包結(jié)構(gòu)名字都是小寫
5、 常量名所有字母大寫
注:第一點(diǎn)是必須遵守的,2~5點(diǎn)不遵守也不會(huì)出錯(cuò),但建議大家嚴(yán)格遵守以上命名 規(guī)范。
十二、java中的八中基本數(shù)據(jù)類型
1. boolean:占1個(gè)字節(jié)
2. byte :占1個(gè)字節(jié)
3. short :占2個(gè)字節(jié)
4. int :占4個(gè)字節(jié)
5. long : 占8個(gè)字節(jié)
6. char : 占2個(gè)字節(jié)(可以用來保存漢字)
7. float : 占4個(gè)字節(jié)
8. double : 占8個(gè)字節(jié)
十三、正負(fù)數(shù)在內(nèi)存空間中的存放
正數(shù) 在內(nèi)存空間中存發(fā)的是源碼。
負(fù)數(shù) 在內(nèi)存空間中存發(fā)的是正數(shù)源碼對(duì)應(yīng)的補(bǔ)碼。
補(bǔ)碼:在源碼的基礎(chǔ)上取反末位加1。
十四、基本數(shù)據(jù)類型之間的轉(zhuǎn)換
1、 正向過程:從低字節(jié)到高字節(jié)可以自動(dòng)轉(zhuǎn)換。
byte->short->int->long->float->double
注:boolean不能轉(zhuǎn)。
2、 逆向過程:從高字節(jié)到低字節(jié)用強(qiáng)制類型轉(zhuǎn)換
例:int a = (int)3.12
注:逆向轉(zhuǎn)換將丟失精度。
十五、java中的轉(zhuǎn)義字符
1. 表示格式控制的轉(zhuǎn)義字符(如:/n /t)與C++相同。
2. Java中用“/u四位十六進(jìn)制的數(shù)字”表是將字符轉(zhuǎn)換成對(duì)應(yīng)的unicode編碼。
十六、表達(dá)式和流程控制
instanceof():用戶判斷某一個(gè)對(duì)象是否屬于某一個(gè)類的實(shí)例。
運(yùn)算符:單目運(yùn)算符、雙目運(yùn)算符、位運(yùn)算符
注:1、>>>是corejava中的位移運(yùn)算符,表示右移,左邊空出的位以0添充。>>右移
2、將一個(gè)數(shù)右移n位相當(dāng)于將該數(shù)除以2的n次方;
3、將一個(gè)數(shù)左移n位相當(dāng)于將該數(shù)乘以2的n次方;
4、 &&、||是短路運(yùn)算符(左邊條件不符合時(shí)不會(huì)執(zhí)行右邊的判斷)