第一篇學(xué)習(xí)總結(jié)
一、計(jì)算機(jī)基礎(chǔ)知識(shí)
1. 計(jì)算機(jī)介紹
- 電子計(jì)算機(jī)老虫,俗稱(chēng)電腦叶骨,是一種智能電子設(shè)備,由硬件和軟件組成祈匙。常見(jiàn)的分類(lèi)有超級(jí)計(jì)算機(jī)忽刽、巨型機(jī)、大型機(jī)夺欲、工作站跪帝、微型機(jī)等。其中些阅,人們使用最為頻繁的是微型機(jī)伞剑,也就是俗稱(chēng)的個(gè)人電腦。
- 計(jì)算機(jī)在人類(lèi)生活中發(fā)揮著十分重要的作用扑眉,人類(lèi)的生產(chǎn)生活越來(lái)越離不開(kāi)計(jì)算機(jī)纸泄。
2. 計(jì)算機(jī)硬件
- 計(jì)算機(jī)硬件是指組成計(jì)算機(jī)的各種物理設(shè)備的總稱(chēng)。
- 計(jì)算機(jī)硬件主要包括:CPU腰素、主板聘裁、內(nèi)存、電源弓千、主機(jī)箱衡便、硬盤(pán)、顯卡洋访、鍵盤(pán)镣陕、鼠標(biāo),顯示器等多種設(shè)備姻政。
3. 計(jì)算機(jī)軟件
- 計(jì)算機(jī)軟件是計(jì)算機(jī)使用過(guò)程中必不可少的東西呆抑,計(jì)算機(jī)軟件讓計(jì)算機(jī)按照特定的程序?qū)崿F(xiàn)特定的功能。計(jì)算機(jī)軟件按照負(fù)責(zé)的功能劃分汁展,可以分為兩類(lèi):系統(tǒng)軟件與應(yīng)用軟件鹊碍。
- 系統(tǒng)軟件是指操作系統(tǒng)等可以直接和計(jì)算機(jī)硬件進(jìn)行交互的軟件,比如Linux食绿、MacOS與Windows侈咕。主要負(fù)責(zé)與計(jì)算機(jī)硬件進(jìn)行交互。
- 應(yīng)用軟件是具體完成各項(xiàng)具體功能的軟件器紧,比如視頻播放器耀销、QQ、微信等铲汪。
- 計(jì)算機(jī)語(yǔ)言是指人與計(jì)算機(jī)進(jìn)行交互的語(yǔ)言熊尉,常見(jiàn)的計(jì)算機(jī)語(yǔ)言有C語(yǔ)言罐柳、Java、Python等狰住。
4. 兩種基本概念的解釋
- 圖靈機(jī):軟件和硬件分開(kāi)硝清,用軟件運(yùn)行軟件。
- 馮諾依曼體系:計(jì)算機(jī)應(yīng)該由輸入設(shè)備转晰、輸出設(shè)備芦拿、運(yùn)算器、控制器與存儲(chǔ)器組成查邢。
5. 簡(jiǎn)單的DOS命令
- 切換路徑操作:
- c:或d:或e:加上回車(chē)是簡(jiǎn)單的盤(pán)符切換蔗崎,切換到另一個(gè)盤(pán)。
- cd:切換到指定目錄扰藕,可以是一個(gè)絕對(duì)路徑(比如:c:\program\files)缓苛,也可以是一個(gè)相對(duì)路徑(比如:.\files),還可以是一個(gè)特定的路徑邓深,比如".."代表上一級(jí)目錄未桥,"\\"代表根目錄。
- 目錄操作:
- dir列出當(dāng)前目錄下的文件及文件夾芥备。
- md創(chuàng)建目錄冬耿。在當(dāng)前目錄下創(chuàng)建一個(gè)新目錄。
- rd刪除目錄萌壳。不允許刪除非空的目錄亦镶。
- 文件操作:
- type nul>文件名 創(chuàng)建文件。
- del 刪除文件袱瓮。
- copy 源文件 目標(biāo)文件 復(fù)制文件缤骨。
- 其他操作:
- exit 退出DOS。
- cls 清屏尺借。
二绊起、Java語(yǔ)言介紹
1. Java語(yǔ)言平臺(tái)版本
- J2EE:企業(yè)版,主要是針對(duì)企業(yè)應(yīng)用開(kāi)發(fā)燎斩。
- J2SE:標(biāo)準(zhǔn)版虱歪,主要提供一些開(kāi)發(fā)桌面程序的解決方案。
- J2ME:微型版瘫里,主要提供電子消費(fèi)產(chǎn)品與嵌入式設(shè)備的解決方案实蔽。
2. Java語(yǔ)言的特點(diǎn)
- 簡(jiǎn)單性:相較于較為低級(jí)的程序設(shè)計(jì)語(yǔ)言荡碾,比如匯編語(yǔ)言谨读、C語(yǔ)言,Java的語(yǔ)法較為簡(jiǎn)單坛吁,但是和Python等后起之秀相比劳殖,Java語(yǔ)言就顯得比較復(fù)雜了铐尚。
- 解釋性:Java語(yǔ)言并不是一次編譯,直接運(yùn)行的哆姻,需要相應(yīng)的解釋器進(jìn)行翻譯宣增。
- 面向?qū)ο螅好嫦驅(qū)ο笞鳛橐环N編程理念,基本上被所有的現(xiàn)代編程語(yǔ)言所接受矛缨,同時(shí)也符合人們的認(rèn)知習(xí)慣爹脾,相較于面向過(guò)程性的編程語(yǔ)言,面向?qū)ο蟮恼Z(yǔ)言更適合于開(kāi)發(fā)應(yīng)用軟件箕昭。
- 開(kāi)源:Java語(yǔ)言是sun公司推出的一門(mén)編程語(yǔ)言灵妨,sun公司將其源碼公布了,所以說(shuō)Java是開(kāi)源的落竹。
- 跨平臺(tái)性:傳統(tǒng)的編譯型語(yǔ)言需要針對(duì)不同的操作系統(tǒng)使用特定的語(yǔ)言開(kāi)發(fā)軟件泌霍,比如Windows上需要使用C#,Linux上需要使用C語(yǔ)言述召,MacOS上使用Objective-C朱转,由此造成了許多麻煩,但是用Java語(yǔ)言寫(xiě)成的代碼并不是直接運(yùn)行在操作系統(tǒng)上积暖,而是由Java虛擬機(jī)翻譯成對(duì)應(yīng)系統(tǒng)的語(yǔ)言再執(zhí)行藤为,Java對(duì)不同操作系統(tǒng)推出了不同版本的虛擬機(jī),這樣就實(shí)現(xiàn)了一套程序可以在不同平臺(tái)上運(yùn)行夺刑,也就是跨平臺(tái)性凉蜂。
三、JDK的安裝與配置
JDK(Java Development Kit)是Java開(kāi)發(fā)工具包性誉,Java推出的給Java開(kāi)發(fā)人員使用的一套工具窿吩,可以用于開(kāi)發(fā)Java程序,JRE(Java Runtime Environment)是Java運(yùn)行環(huán)境错览,如果用戶(hù)想要運(yùn)行Java程序纫雁,就需要JRE,JDK中已經(jīng)包含JRE倾哺。
1. JDK的安裝
JDK可以直接在官網(wǎng)下載轧邪,注意要選擇適合當(dāng)前系統(tǒng)平臺(tái)的版本,然后運(yùn)行Java安裝程序羞海,這時(shí)要注意忌愚,只需要安裝JDK,不需要安裝包JRE却邓,因?yàn)镴DK已經(jīng)包含JRE硕糊。
2. 環(huán)境變量的配置
為什么要配置環(huán)境變量?
答:如果不配置環(huán)境變量,在每次運(yùn)行javac與java命令時(shí)简十,都需要指定完整的路徑檬某,或者是java.exe所在的路徑,或是.java文件所在的路徑螟蝙,配置環(huán)境變量后恢恼,系統(tǒng)會(huì)去PATH中直接尋找這個(gè)路徑,然后執(zhí)行這個(gè)路徑下的命令胰默。
怎樣配置Java的環(huán)境變量场斑?
答:在Windows系統(tǒng)中打開(kāi)高級(jí)系統(tǒng)系統(tǒng)設(shè)置,添加一個(gè)名叫JAVA_HOME的系統(tǒng)變量牵署,這個(gè)系統(tǒng)變量中的路徑是你的JDK所在的目錄和簸,然后在PATH中添加一個(gè)環(huán)境變量:%JAVA_HOME%\bin\就可以了,%JAVA_HOME%指的是我們之前配置的系統(tǒng)變量碟刺,然后這個(gè)意思就是將JAVA_HOME這個(gè)目錄與bin目錄進(jìn)行拼接成一個(gè)完整的路徑锁保,因?yàn)樵诿恳粋€(gè)JDK包下bin目錄都是固定的,所以可以這樣做半沽。
3. Java編譯的步驟
首先爽柒,如果我們想要?jiǎng)?chuàng)建一個(gè)Java程序,需要新建一個(gè).java文件者填,并且里面的公共類(lèi)名要與文件名相同浩村,之后保存,在cmd中使用java file.java命令就會(huì)在當(dāng)前目錄下生成一個(gè).class的文件占哟,我們稱(chēng)之為字節(jié)碼心墅,再運(yùn)行javac file,記住不要加.class榨乎,因?yàn)檫@個(gè)命令會(huì)自動(dòng)給我們加怎燥,這樣就成功運(yùn)行了一個(gè)Java程序。整個(gè)過(guò)程就分為兩步蜜暑,先生成字節(jié)碼文件铐姚,再運(yùn)行。
四肛捍、Java中的關(guān)鍵字
1. 定義
被Java語(yǔ)言賦予了特殊定義的單詞隐绵,在Java語(yǔ)言中有特殊作用,不能用作標(biāo)識(shí)符拙毫。
2. 特點(diǎn)
Java語(yǔ)言中的關(guān)鍵字全部小寫(xiě)依许。
五、Java中的標(biāo)識(shí)符
1.定義
標(biāo)識(shí)符就是Java中給包缀蹄、類(lèi)峭跳、變量膘婶、數(shù)組、接口坦康、枚舉、方法等起名字的字符序诡延。列滞欠。
2.標(biāo)識(shí)符的注意
- 由英文大小寫(xiě)字母、數(shù)字以及$和_組成肆良。
- 不能以數(shù)字開(kāi)頭筛璧。
- 不能是Java中的關(guān)鍵字。
- 區(qū)分大小寫(xiě)惹恃。
- 標(biāo)識(shí)符要有意義夭谤,一般是一個(gè)單詞或者多個(gè)單詞的組合。
- 對(duì)于包名來(lái)說(shuō):全部小寫(xiě)巫糙,一般是公司的域名倒著寫(xiě)朗儒,Java中的包可以理解為不同的文件夾,主要就是解決相同類(lèi)名的問(wèn)題参淹。
- 對(duì)于類(lèi)名(接口)來(lái)說(shuō)醉锄,首字母大寫(xiě),如果有多個(gè)單詞浙值,每個(gè)單詞的首字母都要大寫(xiě)恳不。
- 對(duì)于方法名與變量名來(lái)說(shuō),采用“駝峰命名法”开呐,第一個(gè)單詞的首字母小寫(xiě)烟勋,其余單詞的首字母大寫(xiě)。
- 自定義常量筐付,所有字母大寫(xiě)卵惦,如果有多個(gè)單詞的話,中間以下劃線分隔瓦戚。
六鸵荠、Java中的注釋
Java中的注釋的作用是為了解釋說(shuō)明,對(duì)于軟件開(kāi)發(fā)者自己來(lái)說(shuō)伤极,在編寫(xiě)代碼的同時(shí)寫(xiě)注釋有利于理清思路蛹找,對(duì)于其他人來(lái)說(shuō),方便別人了解這段代碼的作用哨坪,在寫(xiě)程序的過(guò)程中一定要寫(xiě)注釋?zhuān)@時(shí)一個(gè)良好的習(xí)慣庸疾。
- 文檔注釋?zhuān)?**注釋文字*/ 用于對(duì)整篇文檔起解釋說(shuō)明的作用,Java有專(zhuān)門(mén)的工具對(duì)文檔注釋進(jìn)行解析当编,生成HTML格式的幫助文檔届慈。
- 多行注釋?zhuān)?*注釋文字*/ 如果注釋的內(nèi)容較多時(shí),就可以使用多行注釋?zhuān)梢栽诙嘈衅鹱饔茫灰前诶锩娴拇a金顿。
- 單行注釋?zhuān)?/注釋文字 注釋內(nèi)容較少時(shí)臊泌,可以使用單行注釋?zhuān)粚?duì)當(dāng)前行起作用。
七揍拆、進(jìn)制轉(zhuǎn)換
我們?cè)谌粘I钪凶罱?jīng)常使用的是十進(jìn)制渠概,在計(jì)算機(jī)中經(jīng)常使用的卻是二進(jìn)制與十六進(jìn)制,前者是因?yàn)镃PU就是利用電流的通斷來(lái)表示數(shù)據(jù)的嫂拴,只有兩種狀態(tài):0和1播揪,后者是因?yàn)榭梢杂幂^短的位數(shù)來(lái)表示更多的數(shù),此外還有八進(jìn)制筒狠,不過(guò)不經(jīng)常使用猪狈。每種進(jìn)制都有優(yōu)缺點(diǎn),二進(jìn)制便于計(jì)算機(jī)運(yùn)算辩恼,但是人類(lèi)閱讀起來(lái)比較困難雇庙,直觀性不強(qiáng),十進(jìn)制人類(lèi)計(jì)算很方便灶伊,但是計(jì)算機(jī)卻不認(rèn)識(shí)状共,十六進(jìn)制可以用更短的位數(shù)表示更多的數(shù)據(jù),但是閱讀起來(lái)很有困難谁帕。所以就需要對(duì)不同的進(jìn)制之間進(jìn)行轉(zhuǎn)換峡继。十進(jìn)制轉(zhuǎn)二進(jìn)制的方法是除2取余法,二進(jìn)制轉(zhuǎn)十進(jìn)制每位上的數(shù)字需要乘10的n次方匈挖。
八碾牌、常量與變量
1. 常量
定義:常量指的是一旦初始化之后,值不能被改變的量儡循,按照定義的主體劃分舶吗,可以分為字面值常量與自定義常量。
- 字面值常量:比如123择膝、'a'誓琼、'I love you'等,可以分為字符常量肴捉、字符串常量腹侣、整數(shù)常量、小數(shù)常量齿穗、布爾常量傲隶、空常量:null。字面值常量在程序中不建議直接出現(xiàn)窃页,因?yàn)闀?huì)導(dǎo)致“硬編碼”跺株,影響程序的可維護(hù)性與可擴(kuò)展性复濒,會(huì)導(dǎo)致程序的維護(hù)性與擴(kuò)展性變差,建議使用一個(gè)配置文件單獨(dú)保存這些字面值常量乒省,但是如果確實(shí)有必要的時(shí)候就一定要使用巧颈,比如有時(shí)候我們會(huì)使用try catch語(yǔ)句捕獲并處理初始化異常,在外面就需要將引用數(shù)據(jù)類(lèi)型初始化為null袖扛,這樣一旦程序出現(xiàn)初始化異常這些引用數(shù)據(jù)類(lèi)型就還是有值的砸泛。
- 自定義常量:使用final關(guān)鍵字定義的變量,可以將自定義變量變?yōu)槌A抗ッ蹋坏┏跏蓟瓿芍缶筒荒芨淖兤渲盗肆浪弧妓雾?梢苑譃閮深?lèi)娶吞,對(duì)于非靜態(tài)的成員變量,可以在三個(gè)地方進(jìn)行初始化:成員變量定義的時(shí)候直接初始化械姻、在構(gòu)造代碼塊中初始化妒蛇、在構(gòu)造方法中初始化;對(duì)于靜態(tài)的變量楷拳,可以在兩個(gè)地方初始化:在靜態(tài)變量定義的時(shí)候初始化绣夺、在靜態(tài)代碼塊中初始化。
注意:字符常量不能為空欢揖,即''中必須存在值陶耍,即使是空格,但是字符串常量可以為空她混,即""中可以沒(méi)有任何內(nèi)容烈钞,在C語(yǔ)言中,字符串是以'\0'結(jié)尾的坤按,即使是空字符串毯欣,也必須以'\0'結(jié)尾,所以這就解釋了為什么字符串可以為空臭脓。
2. 變量
- 定義:變量酗钞,顧名思義就是變化的量,值可以被改變的量来累,相較于常量砚作,具有更大的靈活性。
注意事項(xiàng):
- 作用域嘹锁。Java中用{}包裹起來(lái)的一段代碼就是一段作用域偎巢,同一個(gè)作用域內(nèi)不能定義相同名稱(chēng)的變量。
- 初始化值兼耀。局部變量在使用之前必須要賦值压昼,這點(diǎn)和C語(yǔ)言不一樣求冷,C語(yǔ)言即使不賦值也是可以使用的,只不過(guò)拿到的是一個(gè)臟數(shù)據(jù)窍霞。全局變量也是需要賦值的匠题,只不過(guò)一次賦值,以后都可以使用了但金。
- 一條語(yǔ)句可以定義多個(gè)相同類(lèi)型的變量韭山,但是只用聲明一次變量類(lèi)型,Java中的一條語(yǔ)句以";"結(jié)尾冷溃。
九钱磅、數(shù)據(jù)類(lèi)型
在現(xiàn)實(shí)世界中,任何東西都是有分類(lèi)的似枕,在自然界中盖淡,生命可以分為植物、動(dòng)物與人凿歼。同樣褪迟,在計(jì)算機(jī)語(yǔ)言中,數(shù)據(jù)也是有分類(lèi)的答憔,這是為了給不同的數(shù)據(jù)類(lèi)型分配不同的類(lèi)型大小味赃,同時(shí)不同的數(shù)據(jù)類(lèi)型可以進(jìn)行的操作也不同。
1. 數(shù)據(jù)類(lèi)型的分類(lèi):
- Java中數(shù)據(jù)類(lèi)型按照定義劃分虐拓,可以分為基本數(shù)據(jù)類(lèi)型與引用數(shù)據(jù)類(lèi)型心俗,基本數(shù)據(jù)類(lèi)型在Java中有八種,包括:byte short char int long float double boolean蓉驹。引用數(shù)據(jù)類(lèi)型可以分為五種城榛,包括:數(shù)組、類(lèi)戒幔、接口吠谢、枚舉、注解诗茎。
類(lèi)型 | 所占大小 | 表數(shù)范圍 |
---|---|---|
byte | 1個(gè)字節(jié)(8bit) | -128-127 |
short | 2個(gè)字節(jié)(16bit) | -215~-215-1 |
char | 2個(gè)字節(jié)(16bit) | 0~65535 |
int | 4個(gè)字節(jié)(32bit) | -231~-231-1 |
long | 8個(gè)字節(jié)(64bit) | -263~-263-1 |
float | 4個(gè)字節(jié)(32bit) | |
double | 8個(gè)字節(jié)(64bit) | |
boolean | 八分之一個(gè)字節(jié) | true和false |
2. 數(shù)據(jù)類(lèi)型的轉(zhuǎn)換
由于不同的數(shù)據(jù)類(lèi)型支持的操作不同工坊,有的方法只接受特定類(lèi)型的數(shù)據(jù),所以有時(shí)候就需要對(duì)數(shù)據(jù)進(jìn)行類(lèi)型的轉(zhuǎn)換敢订,按照進(jìn)行類(lèi)型轉(zhuǎn)換的主體劃分王污,數(shù)據(jù)類(lèi)型的轉(zhuǎn)換可以分為隱式轉(zhuǎn)換與強(qiáng)制轉(zhuǎn)換。隱式轉(zhuǎn)換是編譯器自動(dòng)幫程序員進(jìn)行的轉(zhuǎn)換楚午,隱式轉(zhuǎn)換是有限制的昭齐,編譯器只能幫我們將小的數(shù)據(jù)類(lèi)型轉(zhuǎn)化為大的數(shù)據(jù)類(lèi)型,比如將int轉(zhuǎn)換為long矾柜,將float轉(zhuǎn)換為double阱驾,因?yàn)樵谵D(zhuǎn)換的過(guò)程中編譯器會(huì)自動(dòng)在前面補(bǔ)上0就谜,不會(huì)有精度損失,但是對(duì)于將大的數(shù)據(jù)類(lèi)型轉(zhuǎn)換為小的數(shù)據(jù)類(lèi)型里覆,編譯器并不能自動(dòng)幫我們做丧荐,需要我們手動(dòng)轉(zhuǎn)換,轉(zhuǎn)換的方法是在要轉(zhuǎn)換的數(shù)值前面加上"(數(shù)據(jù)類(lèi)型)"喧枷,比如要將int型的數(shù)據(jù)轉(zhuǎn)換為byte虹统,需要使用byte b = (byte)213232仿耽。長(zhǎng)度如果超過(guò)轉(zhuǎn)換后的位數(shù)蜡秽,會(huì)將超過(guò)的位數(shù)截?cái)啵钥赡軙?huì)有精度損失辣辫。
注意:
當(dāng)我們定義byte類(lèi)型的變量并賦值的時(shí)候, 其實(shí)后面的數(shù)值是int的型, 也就是說(shuō)其實(shí)是將大的類(lèi)型轉(zhuǎn)到小的類(lèi)型上去, 但是這里編譯器依然沒(méi)有報(bào)錯(cuò), 那是因?yàn)榫幾g器在編譯的時(shí)候會(huì)嘗試將判定數(shù)值的大小,如果數(shù)值沒(méi)有超過(guò)變量類(lèi)型的限定, 就可以存放戚扳。但是其他類(lèi)型的復(fù)制就沒(méi)有忧便,比如如果將一個(gè)long類(lèi)型的字面值常量賦值給一個(gè)int型的變量就無(wú)法成功。
byte咖城、short茬腿、char類(lèi)型的變量在進(jìn)行運(yùn)算的時(shí)候會(huì)自動(dòng)轉(zhuǎn)換為int型然后進(jìn)行運(yùn)算呼奢,所以返回的數(shù)據(jù)是int型
3. char類(lèi)型
char類(lèi)型在Java中使用兩個(gè)字節(jié)表示宜雀,以數(shù)字形式存儲(chǔ),每一個(gè)數(shù)值對(duì)應(yīng)著一個(gè)字符握础。Java使用的Unicode字符集辐董,Unicode字符集每個(gè)字符占用兩個(gè)字節(jié),一個(gè)中文也是兩個(gè)字節(jié)禀综,所以可以存儲(chǔ)一個(gè)中文简烘。
十、運(yùn)算符
運(yùn)算符定枷,顧名思義就是進(jìn)行運(yùn)算的符號(hào)孤澎,不能單獨(dú)使用,必須配合對(duì)象使用欠窒,然后得到一個(gè)新的結(jié)果覆旭,所有運(yùn)算符都會(huì)返回一個(gè)值,但是有時(shí)候我們不需要使用這個(gè)運(yùn)算符的返回值岖妄,只使用運(yùn)算符的副作用型将,Java中的運(yùn)算符有:算術(shù)運(yùn)算符、關(guān)系運(yùn)算符荐虐、賦值運(yùn)算符的七兜、自增與自減運(yùn)算符、邏輯運(yùn)算符福扬、位運(yùn)算符腕铸、條件運(yùn)算符惜犀。
1. 算術(shù)運(yùn)算符
Java中的算術(shù)運(yùn)算符包括+、-狠裹、*向拆、/、%酪耳。這些運(yùn)算符的運(yùn)算順序是自左向右浓恳,后面三個(gè)運(yùn)算符的優(yōu)先級(jí)要高于前面兩個(gè)運(yùn)算符。加號(hào)運(yùn)算符有三個(gè)作用:正數(shù)碗暗、加法颈将、字符串拼接。
2. 自增與自減運(yùn)算符
++與--是Java中的自增與自減運(yùn)算符言疗,既可以放在操作數(shù)的前面晴圾,也可以放在操作數(shù)的后面,單獨(dú)使用的時(shí)候兩者沒(méi)有區(qū)別噪奄,但是如果和賦值運(yùn)算符結(jié)合使用的話是有區(qū)別的死姚。比如a=i++與a=++i。前者表示先賦值勤篮,后自增都毒,后者表示先自增,再賦值碰缔。
3. 賦值運(yùn)算符
賦值運(yùn)算符包括=账劲、+=、-=金抡、*=瀑焦、/=、%=梗肝。賦值運(yùn)算符的運(yùn)算順序是自右向左榛瓮,運(yùn)算符優(yōu)先級(jí)較低。
4. 關(guān)系運(yùn)算符
關(guān)系運(yùn)算符包括<巫击、>禀晓、<=、>=喘鸟、==匆绣、!=。關(guān)系運(yùn)算符用于比較運(yùn)算符兩邊的值的關(guān)系什黑,返回的結(jié)果是一個(gè)boolean類(lèi)型的true或者false崎淳。此外還有一個(gè)instanceof,用于判斷左邊的對(duì)象是不是右邊類(lèi)及其子類(lèi)的對(duì)象愕把,一般用在強(qiáng)轉(zhuǎn)之前拣凹,因?yàn)閺?qiáng)轉(zhuǎn)可能導(dǎo)致轉(zhuǎn)換失敗森爽。
5. 邏輯運(yùn)算符
邏輯運(yùn)算符包括&、|嚣镜、!爬迟、&&、||菊匿、付呕。邏輯運(yùn)算符的作用是用于比較兩個(gè)boolean結(jié)果,返回的也是一個(gè)boolean結(jié)果跌捆。需要注意的一點(diǎn)是&&和||與&和|的區(qū)別徽职,前面是短路與、短路或佩厚,只要左邊的值能夠得出結(jié)果就不會(huì)計(jì)算右邊的值了姆钉,后面的是即使左邊的值能夠得出結(jié)果,還是要計(jì)算右邊的值抄瓦,所以短路與潮瓶、短路或的效率較高,一般編程中使用的也是這兩個(gè)钙姊。異或運(yùn)算符()如果兩邊的值不同毯辅,就返回true,相同就返回false摸恍,用于比較兩邊的值是否不同悉罕。
6. 位運(yùn)算符
位運(yùn)算符主要有&赤屋、|立镶、^、~类早、>>媚媒、<<、>>>涩僻。我的理解是在Java中1可以認(rèn)為是true缭召、0可以認(rèn)為是false。上述運(yùn)算符都是在二進(jìn)制的基礎(chǔ)上進(jìn)行計(jì)算逆日。無(wú)論是有符號(hào)右移還是無(wú)符號(hào)右移嵌巷,都會(huì)在左邊補(bǔ)上0,區(qū)別是一個(gè)是從左起第一位補(bǔ)0室抽,另一位是從左起第二位補(bǔ)0搪哪,兩者都是有風(fēng)險(xiǎn)的,只有有符號(hào)左移風(fēng)險(xiǎn)性較低坪圾,作用是將數(shù)值乘以2的n次方晓折,相較于算術(shù)運(yùn)算符來(lái)說(shuō)效率較高惑朦。
7. 條件運(yùn)算符
條件運(yùn)算符又稱(chēng)為三目運(yùn)算符,表現(xiàn)形式是:condition?statement1:statement2漓概。如果condition為true漾月,就執(zhí)行第一條語(yǔ)句,否則執(zhí)行第二條語(yǔ)句胃珍。條件運(yùn)算符可以看作是簡(jiǎn)化版的if...else...語(yǔ)句梁肿。
十一、從鍵盤(pán)獲取數(shù)據(jù)
//首先導(dǎo)入Scanner包
import java.util.Scanner
...
//然后從輸入流創(chuàng)建一個(gè)Scanner對(duì)象觅彰,和鍵盤(pán)建立連接
Scanner sc = new Scanner(System.in);
//讀取一個(gè)int型數(shù)值
int i = sc.nextInt();
//讀取一個(gè)double型數(shù)值
double d = sc.nextDouble();
//讀取一個(gè)字符串栈雳,以空格或者換行符作為結(jié)束符
String str = sc.next();
//讀取一整行,忽略空格缔莲,以換行符表示輸入結(jié)束
String strs = sc.nextLine()哥纫;
十二、語(yǔ)句結(jié)構(gòu)
Java中的語(yǔ)句結(jié)構(gòu)可以分為順序結(jié)構(gòu)痴奏、選擇結(jié)構(gòu)與循環(huán)結(jié)構(gòu)蛀骇,順序結(jié)構(gòu)是Java默認(rèn)的結(jié)構(gòu),自上而下執(zhí)行語(yǔ)句读拆,選擇結(jié)構(gòu)與循環(huán)結(jié)構(gòu)都需要使用特定的關(guān)鍵字擅憔。
1. 選擇結(jié)構(gòu)
選擇結(jié)構(gòu)的作用是控制語(yǔ)句的執(zhí)行,在某種情況下執(zhí)行一部分語(yǔ)句而不執(zhí)行另一部分語(yǔ)句檐晕。Java中的選擇語(yǔ)句有兩類(lèi):if語(yǔ)句與switch語(yǔ)句暑诸。
1.1 if語(yǔ)句
- 格式一:if(){...}。if后面緊跟著一對(duì)小括號(hào)辟灰,里面的運(yùn)算結(jié)果是一個(gè)boolean類(lèi)型的true或者false个榕,如果為true就執(zhí)行花括號(hào)中的語(yǔ)句,否則就不執(zhí)行芥喇。
不同于C語(yǔ)言西采,if后面的括號(hào)中的運(yùn)算結(jié)果只能是一個(gè)boolean類(lèi)型,不能是其他類(lèi)型的數(shù)據(jù)继控,在C語(yǔ)言中械馆,0表示false,非0表示true武通。如果花括號(hào)中只有一條語(yǔ)句霹崎,花括號(hào)可以省略。但是建議不要省略冶忱。
if(condition){
//要執(zhí)行的語(yǔ)句
}
- 格式二:if(){...} else{...}尾菇。如果if后面的判斷條件為true,就執(zhí)行第一個(gè)花括號(hào)中的語(yǔ)句,否則就執(zhí)行第二個(gè)花括號(hào)中的語(yǔ)句错沽。
- 格式三:if(){...} esle if(){...} else if(){...} else{...}簿晓。這種格式的語(yǔ)句執(zhí)行流程是依次從上往下依次判斷每一個(gè)if后的條件,如果是true就執(zhí)行緊接著的花括號(hào)中的語(yǔ)句千埃,直到最后一個(gè)else憔儿。
1.2 switch語(yǔ)句
switch(value){
case value1:
statement1;
break;
case value2:
statement2;
break;
...
default:
...;
break;
}
- switch后面的值的類(lèi)的類(lèi)型只能是:byte、short放可、int谒臼、char、String耀里、enum蜈缤。
- case后面的值不能出現(xiàn)重復(fù)的情況,否則編譯器會(huì)報(bào)錯(cuò)冯挎,而且case后面的值只能是常量底哥。
- case穿透:在swith...case...語(yǔ)句中,程序如果沒(méi)遇到break會(huì)一直執(zhí)行下去房官,直到遇到break或者"}"趾徽。所以說(shuō)break在switch...case...語(yǔ)句中是非常重要的。