【Java】入門簡介

操作系統(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文件等等.


Windows

Unix

進(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是不跨平臺的。


Java跨平臺原理

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ī)制

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)鍵字:在編程語言中有一些事先定義的,有著特殊含義和用途的單詞。

保留字:和關(guān)鍵字一樣都是編程語言事先定義好的,只是說現(xiàn)在暫時沒有特殊的用途,但說不定以后某天會突然被賦予意義和被使用到,因此被保留下來的單詞,goto和const就是Java的保留字。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Java是一種可以撰寫跨平臺應(yīng)用軟件的面向?qū)ο蟮某绦蛟O(shè)計語言。Java 技術(shù)具有卓越的通用性、高效性、平臺移植性和...
    Java小辰閱讀 1,175評論 0 2
  • 網(wǎng)站亂碼問題我們會經(jīng)常碰到,大多見于非英文的中文字符或其他字符亂碼,而且,這類問題常常是因為編碼方式問題,主要原因...
    波段頂?shù)?/span>閱讀 3,335評論 1 9
  • 曾經(jīng)那么相信愛情,相信情有獨(dú)鐘,相信海誓山盟,相信地老天荒,甚至相信生命高于愛情…… 可是,...
    堅強(qiáng)的美美閱讀 278評論 1 1
  • 1. 不要為了省錢買16G的手機(jī) 2. 千萬不要在晚上做任何決定 3. 永遠(yuǎn)留住30%的神秘 4. 記住父母永遠(yuǎn)比...
    逗比丁閱讀 244評論 0 0
  • 《有趣的動物》 文/維尼我喜歡小貓咪咪,它天真可愛又淡定儒雅。咪咪的眼睛大大的,鼻子小小的,耳朵尖尖的,它的毛...
    張小妞Katey閱讀 2,119評論 2 3

友情鏈接更多精彩內(nèi)容