一:基礎(chǔ)知識(shí)
1、JVM饱亮、JRE和JDK的區(qū)別:
? ? JVM(Java Virtual Machine):java虛擬機(jī)矾芙,用于保證java的跨平臺(tái)的特性。
? ? ? ? ? ? ? ? ? java語(yǔ)言是跨平臺(tái)近上,jvm不是跨平臺(tái)的剔宪。
? ? JRE(Java Runtime Environment):java的運(yùn)行環(huán)境,包括jvm+java的核心類庫(kù)。? ?
? ? JDK(Java Development Kit):java的開發(fā)工具,包括jre+開發(fā)工具
2壹无、環(huán)境變量path和classpath的作用是什么葱绒?
C:\Program Files (x86)\Java\jre7\bin;C:\Program Files (x86)\Java\jdk1.7.0_72\bin
? ? (1)path是配置Windows可執(zhí)行文件的搜索路徑,即擴(kuò)展名為.exe的程序文件所在的目錄斗锭,
? ? ? 用于指定DOS窗口命令的路徑地淀。
? ? (2)Classpath是配置class文件所在的目錄,用于指定類搜索路徑岖是,JVM就是通過(guò)它來(lái)尋找該類的class類文件的帮毁。? ?
? ?
3、變量有什么用豺撑?為什么要定義變量烈疚?什么時(shí)候用?
? ? 答:變量的作用:用來(lái)存儲(chǔ)數(shù)據(jù)聪轿。
? ? ? ? 為什么要定義變量:用來(lái)不斷的存放同一類型的常量爷肝,并可以重復(fù)使用
4、&和&&的區(qū)別?
? ? 答:(1)&&會(huì)出現(xiàn)短路,如果可以通過(guò)第一個(gè)表達(dá)式判斷出整個(gè)表達(dá)式的結(jié)果灯抛,則不繼續(xù)后面表達(dá)式的運(yùn)算金赦;
? ? ? ? 只能操作boolean類型數(shù)據(jù);
? ? ? ? (2)&不會(huì)出現(xiàn)短路对嚼,將整個(gè)表達(dá)式都運(yùn)算夹抗。既可以操作boolean數(shù)據(jù)還可以操作數(shù)。
5猪半、標(biāo)示符命名規(guī)則:
? ? 由數(shù)字(0-9)兔朦,大小寫英文字母,以及_和$組成磨确。
? ? 不能以數(shù)字開頭沽甥。
? ? 不能使用關(guān)鍵字來(lái)自定義命名。
6乏奥、數(shù)據(jù)類型:
? ? (1)基本數(shù)據(jù)類型(4類8種):
? ? ? ? 整數(shù)類型:byte摆舟、short、int邓了、long
? ? ? ? 浮點(diǎn)數(shù)類型:float恨诱、double
? ? ? ? 字符類型:char
? ? ? ? 布爾類型:boolean(ture false)
? ? (2)引用數(shù)據(jù)類型:? 類? 、 接口 骗炉、數(shù)組? ?
7照宝、類型轉(zhuǎn)換
? ? 精度從高到低? double? float? long? int? short(char)? byte
? ? (1)自動(dòng)類型轉(zhuǎn)換? 將一個(gè)低精度---?高精度
? ? (2)強(qiáng)制類型轉(zhuǎn)換? 將一個(gè)高精度---?低精度(精度會(huì)下降)
8、java的跨平臺(tái)性:
? ? 通過(guò)Java語(yǔ)言編寫的應(yīng)用程序在不同的系統(tǒng)平臺(tái)上都可以運(yùn)行句葵。
? ? 跨平臺(tái)的原因:
? ? 只要在需要運(yùn)行java應(yīng)用程序的操作系統(tǒng)上厕鹃,先安裝一個(gè)Java虛擬機(jī)(JVM Java Virtual Machine)即可。
? ? 由JVM來(lái)負(fù)責(zé)Java程序在該系統(tǒng)中的運(yùn)行乍丈。
9剂碴、有符號(hào)數(shù)據(jù)的表示法(次重點(diǎn))
? ? 原碼,反碼(原碼取反)轻专,補(bǔ)碼(反碼+1)忆矛。
10、方法
定義:方法就是定義在類中的具有特定功能的一段獨(dú)立小程序请垛。? ? ? ?
? ? 格式:? 修飾符 + 返回值類型 + 方法名 + 參數(shù)列表
? ? 特點(diǎn):
? ? ? ? 定義函數(shù)可以將功能代碼進(jìn)行封裝
? ? ? ? 便于對(duì)該功能進(jìn)行復(fù)用
? ? ? ? 方法只有被調(diào)用才會(huì)被執(zhí)行
? ? ? ? 方法的出現(xiàn)提高了代碼的復(fù)用性
? ? ? ? 對(duì)于函方法沒有具體返回值的情況催训,返回值類型用關(guān)鍵字void表示,那么該方法中的return語(yǔ)句如果在最后一行可以省略不寫叼屠。
? ? 函數(shù)的應(yīng)用兩個(gè)明確:
? ? ? ? 明確要定義的功能最后的結(jié)果是什么瞳腌?
? ? ? ? 明確在定義該功能的過(guò)程中,是否需要未知內(nèi)容參與運(yùn)算
11镜雨、重載:
? ? 概念:在同一個(gè)類中,允許存在一個(gè)以上的同名函數(shù),只要它們的參數(shù)個(gè)數(shù)或者參數(shù)類型不同即可荚坞。? ?
? ? 特點(diǎn):與返回值類型無(wú)關(guān)挑宠,只看參數(shù)列表(參數(shù)類型以及參數(shù)個(gè)數(shù))。? ?
? ? 好處:方便于閱讀颓影,優(yōu)化了程序設(shè)計(jì)各淀。? ?
? ?
12、數(shù)組:
? ? 概念:同一種數(shù)據(jù)類型的集合诡挂。? ?
? ? 好處:可以自動(dòng)給數(shù)組中的元素從0開始編號(hào)碎浇,方便操作這些元素。
13璃俗、內(nèi)存結(jié)構(gòu):
棧內(nèi)存:用于存儲(chǔ)局部變量奴璃,當(dāng)數(shù)據(jù)使用完,所占空間會(huì)自動(dòng)釋放城豁。
堆內(nèi)存:數(shù)組和對(duì)象苟穆,通過(guò)new建立的實(shí)例都存放在堆內(nèi)存中。
方法區(qū):靜態(tài)成員唱星、構(gòu)造函數(shù)雳旅、常量池、線程池
本地方法區(qū):window系統(tǒng)占用寄存器:
補(bǔ)充14:流程控制
1.switch:從成立的case 無(wú)條件穿透所有的case包括default直到結(jié)束或者遇到break中斷跳出循環(huán)间聊;如果所有條件都不成立攒盈,則執(zhí)行default
2.for循環(huán)
3.break和continue:
①Break 中斷、跳出循環(huán)和switch哎榴;
②Continue 跳過(guò)后面的代碼 繼續(xù)進(jìn)入循環(huán)的下一輪執(zhí)行
4.for-each循環(huán):數(shù)組遍歷型豁、集合迭代遍歷的語(yǔ)法簡(jiǎn)化
15.運(yùn)算符
(1)自增自減運(yùn)算符
(2)位運(yùn)算符
(3)賦值運(yùn)算符
二:面向?qū)ο?-(封裝、繼承叹话、多態(tài))
1:封裝
1.類:模版圖紙偷遗,類中定義對(duì)象的屬性數(shù)據(jù)(成員變量),方法(成員方法)【類第一次使用時(shí)會(huì)加載到方法區(qū)】
2.對(duì)象:從模板中創(chuàng)建的具體實(shí)例驼壶,實(shí)例是數(shù)據(jù)的打包氏豌;新建實(shí)例時(shí),在堆內(nèi)存中新分配內(nèi)存空間給這個(gè)實(shí)例
3.引用變量:理解成“遙控器”热凹,保存一個(gè)實(shí)例的內(nèi)存地址(引用變量保存在棧)泵喘,引用變量的特殊值:null 不保存任何實(shí)例的內(nèi)存地址
4.構(gòu)造方法:新建實(shí)例對(duì)象時(shí),立即執(zhí)行的一個(gè)特殊方法般妙;構(gòu)造方法必須和類同名纪铺,并且沒有返回值類型。
5.構(gòu)造方法的重載:一個(gè)類中可以定義多個(gè)不同參數(shù)的構(gòu)造方法碟渺,是方法重載的一種體現(xiàn)
6.方法重載Overload:同名不同參,與返回值類型無(wú)關(guān)鲜锚,所有方法都可以重載
2:繼承
Java的繼承時(shí)單繼承多實(shí)現(xiàn),只能繼承一個(gè)父類(如果不繼承其他類,默認(rèn)繼承object類)芜繁,但可以實(shí)現(xiàn)多個(gè)接口旺隙。
1.不能被繼承的:構(gòu)造方法,私有成員骏令;
2.方法的重寫:【override】繼承的方法蔬捷,在子類中重新定義父類中的方法(只能在子類重寫),方法名相同榔袋,參數(shù)的個(gè)數(shù)和類型也必須相同周拐,返回值類型也必須相同。
方法重寫返回值類型如果是基本類型應(yīng)與父類的一致凰兑;重寫要求方法名完全相同妥粟,返回值類型如果是基本類型或無(wú)返回值時(shí)必須一致。
3.父類的構(gòu)造方法:新建子類對(duì)象時(shí)會(huì)先新建父類對(duì)象聪黎,也會(huì)先執(zhí)行父類的構(gòu)造方法罕容;默認(rèn)執(zhí)行父類的無(wú)參構(gòu)造,默認(rèn)隱含調(diào)用super()稿饰;
4.super:Super.xxxx() 方法重寫時(shí)锦秒,調(diào)用父類中同一個(gè)方法的代碼
Super(參數(shù)) 調(diào)用父類的構(gòu)造方法,默認(rèn)調(diào)用父類無(wú)參構(gòu)造super()喉镰,手動(dòng)調(diào)用有參構(gòu)造super()旅择,必須是首行代代碼 ;注意super不能在靜態(tài)方法中使用
3:多態(tài)
一個(gè)對(duì)象具有多種形態(tài)的表現(xiàn)侣姆,多態(tài)的前提hi必須有繼承
1.類型的轉(zhuǎn)換:得
? ? ①向上轉(zhuǎn)型:子類的實(shí)力轉(zhuǎn)化成夫類型生真,用夫類型的引用變量,來(lái)引用子類實(shí)例捺宗,向上轉(zhuǎn)型后柱蟀,只能調(diào)用負(fù)類定義的通用成員,子類特有成員被隱藏蚜厉;
? ? ②向下轉(zhuǎn)型:已經(jīng)轉(zhuǎn)成父類型的子類實(shí)例长已,轉(zhuǎn)回子類型為了對(duì)子類型進(jìn)行特殊處理
2.Instanceof運(yùn)行期類型識(shí)別:當(dāng)多種子類型都被當(dāng)做父類型來(lái)處理,要對(duì)某種子類型進(jìn)行特殊處理昼牛,可以先判斷其真實(shí)類型再向下轉(zhuǎn)型——對(duì)真實(shí)類型术瓮,及其父類型判斷,都返回true贰健。格式:【s instanceof Line? 】