操作系統(tǒng)
操作系統(tǒng):(Operating System,簡稱OS):是管理和控制計算機(jī)硬件與軟件資源的計算機(jī)程序,是直接運(yùn)行在“裸機(jī)”上的最基本的系統(tǒng)軟件,任何其他軟件都必須在操作系統(tǒng)的支持下才能運(yùn)行。
見圖:操作系統(tǒng)所處位置
系統(tǒng)分類:Unix家族和Windows家族
見圖:Unix家族圖和Windows家族和發(fā)展
平臺相關(guān)性:
我們稱能夠支持程序運(yùn)行的硬件或軟件環(huán)境為平臺。
不同的平臺都有其特有的指令格式,也就是說Win支持的指令格式和Linux支持的指令格式是不一樣的,
進(jìn)而導(dǎo)致了Windows的可執(zhí)行文件(exe)不能在Linux平臺上運(yùn)行,反之Unix的可執(zhí)行文件也無法再Windows上運(yùn)行,把這種情況稱為平臺相關(guān)性。
比如Windows系統(tǒng)的exe文件,Mac系統(tǒng)的app文件等等.


進(jìn)制
進(jìn)制也就是進(jìn)位制,是人們規(guī)定的一種進(jìn)位方法。 對于任何一種進(jìn)制---X進(jìn)制,就表示某一位置上的數(shù)運(yùn)算時是逢X進(jìn)一位。
十進(jìn)制是逢十進(jìn)一,十六進(jìn)制是逢十六進(jìn)一,二進(jìn)制就是逢二進(jìn)一,以此類推,x進(jìn)制就是逢x進(jìn)位。
二進(jìn)制:由兩個基本數(shù)字0,1組成,運(yùn)算規(guī)律是逢二進(jìn)一.計算機(jī)都使用二進(jìn)制表示數(shù)據(jù).
八進(jìn)制:由0、1、2、3、4、5、6、7組成,運(yùn)算規(guī)律是逢八進(jìn)一.
十進(jìn)制:由0,1,2、3、4、5、6、7、8、9組成.
二進(jìn)制數(shù)系統(tǒng)中,位簡記為b,也稱為比特,每個二進(jìn)制數(shù)字0或1就是一個位(bit)。
計算機(jī)中的二進(jìn)制則是一個非常微小的開關(guān),用“開”來表示1,“關(guān)”來表示0。
位是數(shù)據(jù)存儲的最小單位,其中8 bit 就稱為一個字節(jié)(Byte),1KB不等于1000B.
1B(byte,字節(jié))= 8 bit;
1KB(Kibibyte,千字節(jié))=1024B= 2^10 B;
1MB(Mebibyte,兆字節(jié),百萬字節(jié),簡稱“兆”)=1024KB= 2^20 B;
1GB(Gigabyte,吉字節(jié),十億字節(jié),又稱“千兆”)=1024MB= 2^30 B;
1TB(Terabyte,萬億字節(jié),太字節(jié))=1024GB= 2^40 B;
1PB(Petabyte,千萬億字節(jié),拍字節(jié))=1024TB= 2^50 B;
進(jìn)制間的轉(zhuǎn)換
十進(jìn)制--->二進(jìn)制:
對于整數(shù)部分,用被除數(shù)反復(fù)除以2,除第一次外,每次除以2均取前一次商的整數(shù)部分作被除數(shù)并依次記下每次的余數(shù)。
另外,所得到的商的最后一位余數(shù)是所求二進(jìn)制數(shù)的最高位。
二進(jìn)制--->十進(jìn)制:
進(jìn)制數(shù)第1位的權(quán)值是2的0次方,第2位的權(quán)值是2的1次方,第2位的權(quán)值是2的2次方……公式:第N位 * 2的N-1次方,結(jié)果再相加.
十進(jìn)制和八進(jìn)制之間轉(zhuǎn)換:
十進(jìn)制--->八進(jìn)制:
10進(jìn)制數(shù)轉(zhuǎn)換成8進(jìn)制的方法,和轉(zhuǎn)換為2進(jìn)制的方法類似,唯一變化:除數(shù)由2變成8。
八進(jìn)制--->十進(jìn)制:
進(jìn)制數(shù)第1位的權(quán)值為8的0次方,第2位權(quán)值為8的1次方,第3位權(quán)值為8的2次方
十進(jìn)制和十六進(jìn)制之間轉(zhuǎn)換:100
十進(jìn)制--->十六進(jìn)制:
10進(jìn)制數(shù)轉(zhuǎn)換成16進(jìn)制的方法,和轉(zhuǎn)換為2進(jìn)制的方法類似,唯一變化:除數(shù)由2變成16。
十六進(jìn)制--->十進(jìn)制:
第0位的權(quán)值為16的0次方,第1位的權(quán)值為16的1次方,第2位的權(quán)值為16的2次方……
二進(jìn)制和八進(jìn)制之間轉(zhuǎn)換:
二進(jìn)制和十六進(jìn)制之間轉(zhuǎn)換:
原碼、反碼和補(bǔ)碼操作
原碼、反碼和補(bǔ)碼操作:
在計算機(jī)內(nèi),有符號數(shù)有3種表示法:原碼、反碼和補(bǔ)碼,所有數(shù)據(jù)的運(yùn)算都是采用補(bǔ)碼進(jìn)行的。
正數(shù)的原碼,反碼,補(bǔ)碼都相同,負(fù)數(shù)稍微復(fù)雜。
操作5(101)和-5的二進(jìn)制。
原碼:
就是二進(jìn)制定點表示法,即最高位為符號位,“0”表示正,“1”表示負(fù),其余位表示數(shù)值的大小。
反碼:
負(fù)數(shù)的反碼是對其原碼逐位取反,但符號位除外。
補(bǔ)碼:
負(fù)數(shù)的補(bǔ)碼是在其反碼的末位加1。
求反碼的時候,最高位是符號位不能改變。
正數(shù)的符號位是0.
正數(shù)5:
5的二進(jìn)制是:00000101
原碼:00000101
反碼:00000101
補(bǔ)碼:00000101
負(fù)數(shù):-5:
5的二進(jìn)制是:00000101
原碼:10000101
反碼:11111010
補(bǔ)碼:11111011
計算機(jī)語言
計算機(jī)語言分類:
① 機(jī)器語言:直接用二進(jìn)制指令表達(dá),指令是用0和1組成的一串代碼,它們有一定的位數(shù),并分成若干段,各段的編碼表示不同的含義(如0000 代表 加載(LOAD),0001 代表 存儲(STORE))。
② 匯編語言:使用一些特殊的符號來代替機(jī)器語言的二進(jìn)制碼(又稱符號語言),計算機(jī)不能直接識別,需要用一種軟件將匯編語言翻譯成機(jī)器語言,匯編語言依賴于硬件體系,開發(fā)難度大(如加法指令A(yù)DD/ADC、減法指令SUB/SBB)。
③ 高級語言:使用一定格式的自然語言進(jìn)行編寫源代碼,通過編譯器將源代碼翻譯成計算機(jī)直接識別的機(jī)器語言,之后再由計算機(jī)執(zhí)行,不直接操作硬件,把繁瑣的翻譯操作交給編譯器完成。
sun公司和Java平臺
美國SUN(Stanford University Network)公司,在中國大陸的正式中文名為“太陽計算機(jī)系統(tǒng)(中國)有限公司”。
1982年,SUN公司誕生于美國斯坦福大學(xué)校園,并于1986年上市,在NASDAQ(納斯達(dá)克:是全美證券商協(xié)會自動報價系統(tǒng))的標(biāo)識為SUNW,2007年改為JAVA。
2009年4月20日19點40分,美國數(shù)據(jù)軟件巨頭甲骨文公司(Oracle)宣布以74億美元收購SUN公司,從此Java也有“干爹”了,在這個拼爹的時代,Java的發(fā)展前景不容置疑。
Java的三大平臺:見圖
1999年SUN公司發(fā)布了基于Java的三個平臺技術(shù)標(biāo)準(zhǔn):J2SE,J2EE,J2ME,2005年開始分別改名為:JavaSE,JavaEE,JavaME。隨著J2EE的發(fā)布,Java正式的迎來了屬于自己的“春天”。
① Java SE(Java Platform Standard Edition):Java標(biāo)準(zhǔn)平臺,它允許開發(fā)和部署在桌面、服務(wù)器、嵌入式環(huán)境和實時環(huán)境中使用的Java 應(yīng)用程序,如做一個桌面版的QQ,JavaSE能為Java EE和JavaME提供開發(fā)基礎(chǔ)。
② Java EE(Java Platform Enterprise Edition):Java企業(yè)平臺,可幫助開發(fā)和部署可移植、健壯、可伸縮且安全的服務(wù)器端Java應(yīng)用程序,如企業(yè)的應(yīng)用系統(tǒng)ERP等。Java EE是在Java SE的基礎(chǔ)上構(gòu)建的,它提供Web服務(wù)、組件模型、管理和通信API,可以用來實現(xiàn)企業(yè)級的面向服務(wù)體系結(jié)構(gòu)(SOA)和Web等應(yīng)用程序。
③ Java ME(Java Platform Micro Edition):Java微型平臺,也叫K-JAVA,用來開發(fā)移動設(shè)備和嵌入式設(shè)備(比如手機(jī)、PDA、電視機(jī)頂盒和打印機(jī)等)。隨著Android的迅猛發(fā)展,JavaME現(xiàn)在使用的越來越少了,Android會逐漸的取代JavaME的市場份額。
以Java作為開發(fā)語言的其他設(shè)備有很多,如:如日中天的Android智能設(shè)備。
學(xué)習(xí)Java,我們都是從JavaSE開始的,只有學(xué)好JavaSE才能很好的掌握J(rèn)avaEE和Android的知識。對于Java的就業(yè),很少有人從事單純的JavaSE開發(fā)的,這不是Java的強(qiáng)勢之處,我們應(yīng)該面向市場更廣闊的JavaEE和Android就業(yè)方向。
Java跨平臺原理
Java跨平臺的原理:
1):編譯之后會生成與平臺無關(guān)的字節(jié)碼文件。
2):得以來不同平臺的虛擬機(jī)(JVM)。
JVM是不跨平臺的。

JDK-JRE-JVM概述
見Java模型概念圖:
JRE(Java Runtime Environment):Java運(yùn)行環(huán)境,如果要運(yùn)行Java程序,就需要JRE的支持,JRE里包含JVM。
JDK(Java Development Kit):Java開發(fā)工具,包含開發(fā)Java程序的所有工具,如javac和java等,JDK里包含JRE。
Java虛擬機(jī)(Java Virtual Machine),簡稱JVM,它是運(yùn)行所有Java程序的虛擬計算機(jī),好比是街機(jī)游戲的模擬器。
JVM是Java語言的運(yùn)行環(huán)境,也是Java 最具吸引力的特性之一。JVM用于讀取并處理編譯過的與平臺無關(guān)的字節(jié)碼(class)文件,從而實現(xiàn)Java的可移植性。但是值得注意的是Java虛擬機(jī)是不跨平臺的。也就是說在Win下得裝Win版的JVM,在Linux下裝Linux版的JVM。
見圖:選擇不同平臺的JDK版本
JVM是Java程序的解釋和執(zhí)行器。

Java的編譯和運(yùn)行機(jī)制


classpath環(huán)境變量
CLASSPATH顧名思義就是class文件的路徑,表示JVM從哪里去尋找class文件。
CLASSPATH = c:\test就表示執(zhí)行java命令時去c:\test目錄中去找需要被執(zhí)行的class文件。
在java5之前CLASSPATH沒有默認(rèn)值,要是設(shè)置成當(dāng)前路徑的話,得使用“.”,
若CLASSPATH=.;c:\test,就表示先在當(dāng)前目錄找class文件,要是沒找到就去c:\test目錄找(當(dāng)一個變量有多個值時,多個值之間用英文的分號隔開)。
從Java5開始CLASSPATH默認(rèn)就是當(dāng)前路徑,一般情況下不需再指定。
若使用Java5以前的版本,設(shè)置CLASSPATH應(yīng)該是:
.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
dt.jar是關(guān)于運(yùn)行環(huán)境的類庫,主要是swing的包;tools.jar是工具類庫;
后來SUN公司改進(jìn)了JDK設(shè)計,JRE會自動搜索當(dāng)前路徑下的jar包,并自動加載dt.jar和tools.jar。那么從Java5開始,再也不必為設(shè)置CLASSPATH變量感到頭疼了。
暫時不需要配置,就讓CLASSPATH默認(rèn)表示當(dāng)前目錄路徑。
如何把編譯出來的class文件存放到指定的目錄:



Java基本語法
規(guī)定
Java基本語法:
1):Java語言嚴(yán)格區(qū)分大小寫,好比main和Main是完全不同的概念。
2):一個Java源文件里可以定義多個Java類,但其中最多只能有一個類被定義成public類。若源文件中包括了public類,源文件必須和該public類同名。
3):一個源文件中包含N個Java類時,成功編譯后會生成N份字節(jié)碼文件,即每個類都會生成一份單獨(dú)的class文件,且字節(jié)碼文件名和其對應(yīng)的類名相同。
4):若一個類必須運(yùn)行,則必須擁有main方法,因為main方法是程序的入口.
編程建議:
一個Java源文件只定義一個類,不同的類使用不同的源文件定義;
將每個源文件中單獨(dú)定義的類都定義成public的;
保持Java源文件的主文件名與源文件中的類名一致;
注釋
Java提供3種注釋類型:
① 單行注釋;
② 多行注釋;
③ 文檔注釋;
單行注釋:// ; //注釋信息,從//開始到本行結(jié)束的所有字符會被編譯器忽略;
多行注釋:/* /;/ 注釋信息 /之間的所有字符會被編譯器忽略
文檔注釋:/* /;/* 注釋信息 */和多行注釋一樣,除此之外還可以專門生成文檔信息API。
關(guān)鍵字與保留字
關(guān)鍵字:在編程語言中有一些事先定義的,有著特殊含義和用途的單詞。
