- 相關(guān)推薦
Java基礎(chǔ)知識(shí)點(diǎn)總結(jié)
Java基礎(chǔ)是編程類(lèi)專(zhuān)業(yè)要學(xué)的第一步,那么Java基礎(chǔ)知識(shí)點(diǎn)又有什么呢?下面Java基礎(chǔ)知識(shí)點(diǎn)總結(jié)是小編為大家?guī)?lái)的,希望對(duì)大家有所幫助。
Java基礎(chǔ)知識(shí)點(diǎn)總結(jié)
1. JAVA簡(jiǎn)介
1.1 java體系結(jié)構(gòu):j2se,javaweb,j2ee
1.2 java特點(diǎn):平臺(tái)無(wú)關(guān)(虛擬機(jī)),垃圾回收(使得java更加穩(wěn)定)
1.3 JDK與JRE,JDK:java開(kāi)發(fā)環(huán)境,JRE:java運(yùn)行環(huán)境
1.4 第一個(gè)java程序:HelloWorld,java的入口是main(public static void main(String[] args))
1.5 java程序的開(kāi)發(fā)步驟:.java 編譯(javac)成.class 運(yùn)行(java).class文件
2. 基本數(shù)據(jù)類(lèi)型
2.1標(biāo)志符:自己可以取名字的地方稱(chēng)為標(biāo)志符
*標(biāo)志符的規(guī)則:1,只能是字母,數(shù)字,下劃線(xiàn),$;不能以數(shù)字開(kāi)頭;嚴(yán)格區(qū)分大小寫(xiě);不能使用關(guān)鍵字作為標(biāo)志符
2.2關(guān)鍵字:關(guān)鍵字都是小寫(xiě)
2.3常量:如123,“hello”
*也可以使用final定義常量(請(qǐng)參照Math.PI),如public static final int SLOW_SPEED=1;
2.4 變量:變量的本質(zhì)是內(nèi)存中的一小塊區(qū)域,用這個(gè)區(qū)域保存數(shù)據(jù)
*變量申明:類(lèi)型變量名字
*變量必須先聲明,再賦值,再使用
*注意區(qū)分基本數(shù)據(jù)類(lèi)型的變量與引用數(shù)據(jù)類(lèi)型的變量
*變量的作用域,局部變量與成員變量:變量在哪個(gè)大括號(hào)里定義,就在哪里有效,出了大括號(hào)無(wú)效
2.5 基本數(shù)據(jù)類(lèi)型:java數(shù)據(jù)類(lèi)型分為兩大類(lèi):基本數(shù)據(jù)類(lèi)型,引用數(shù)據(jù)類(lèi)型
*基本數(shù)據(jù)類(lèi)型分為4類(lèi)8中:boolean,char,byte,short,int,long,float,double
*boolean類(lèi)型只有true,false
*char是Unicode編碼
*float,double是有精度的(不是絕對(duì)精確的)
2.6 基本數(shù)據(jù)類(lèi)型之間的轉(zhuǎn)換
*123字面常量是int型,12.3字面常量是double型,8888888888888這個(gè)字面常量有問(wèn)題(因?yàn)樗呀?jīng)超出int的范圍,改成8888888888888L)
*boolean與其他類(lèi)型不兼容
*byte,short,char之間相互運(yùn)算的時(shí)候,先轉(zhuǎn)換為int,再進(jìn)行運(yùn)算
*小容量的數(shù)據(jù)類(lèi)型可以自動(dòng)轉(zhuǎn)換為大容量的數(shù)據(jù)類(lèi)型:byte,short,char——>int——>long——>float——>double
*大容量轉(zhuǎn)換為小容量的數(shù)據(jù)類(lèi)型,要進(jìn)行強(qiáng)制轉(zhuǎn)換
*多種數(shù)據(jù)類(lèi)型進(jìn)行運(yùn)算的時(shí)候,先轉(zhuǎn)換為容量最大的數(shù)據(jù)類(lèi)型再進(jìn)行運(yùn)算,整個(gè)表達(dá)式的類(lèi)型是容量最大的數(shù)據(jù)類(lèi)型
*必須掌握PPT上的習(xí)題
3. 運(yùn)算符與流程控制3.1運(yùn)算符:算術(shù),關(guān)系,賦值,邏輯(著重注意),位運(yùn)算符
*自加自減++,--,注意順序
*關(guān)系運(yùn)算符的結(jié)果是boolean類(lèi)型
*邏輯運(yùn)算符注意短路與&&,短路或||
*三元運(yùn)算符(邏輯表達(dá)式) ? 表達(dá)式一:表達(dá)式二
3.2流程控制語(yǔ)句:條件(if,switch),循環(huán)(for,while,do while),break與continue
3.3 switch的規(guī)則:
*switch只能探測(cè):byte,short,char,int 類(lèi)型的值(case后面也只能是這4種)
*switch中小心case的穿透(代碼會(huì)一直運(yùn)行,直到遇到break停止,建議每個(gè)case寫(xiě)一個(gè)break)
*default:如果沒(méi)有找到匹配的case,則執(zhí)行default
3.4 for,while,do while搞清楚代碼的執(zhí)行流程(PPT上有圖,必須記住)
3.5 break,continue
*都可以用在循環(huán)里面,break還可以用在switch中
*break跳出單前的代碼塊(結(jié)束循環(huán))
*continue:跳過(guò)本輪循環(huán),繼續(xù)下一輪循環(huán)(循環(huán)會(huì)繼續(xù),僅僅跳過(guò)本次)
3.6 流程控制代碼編寫(xiě):可以靈活的組合這些流程控制代碼,注意一定要寫(xiě){ }
4. 面向?qū)ο蠡菊Z(yǔ)法
需要大家掌握:類(lèi)與對(duì)象的區(qū)別,如何定義一個(gè)類(lèi),如何實(shí)例化一個(gè)對(duì)象
4.1定義一個(gè)類(lèi)
*使用class關(guān)鍵字定義類(lèi),注意類(lèi)名大寫(xiě)
*成員屬性:成員屬性不賦值會(huì)有默認(rèn)值(默認(rèn)值規(guī)則參考PPT)
*成員方法
*構(gòu)造方法:沒(méi)有任何返回值,名字與類(lèi)名一樣,構(gòu)造方法的本意是用來(lái)初始化對(duì)象(初始化對(duì)象的屬性值)
4.2 實(shí)例化對(duì)象:Student s = new Student();
*使用new + 構(gòu)造方法實(shí)例化對(duì)象
*new 在堆中開(kāi)辟了對(duì)象的空間,并且給屬性賦上默認(rèn)值
*接下來(lái)調(diào)用構(gòu)造方法,執(zhí)行構(gòu)造方法中的代碼
*最后返回對(duì)象的引用
4.3區(qū)分引用類(lèi)型與基本數(shù)據(jù)類(lèi)型
*引用類(lèi)型的變量在內(nèi)存中有兩塊區(qū)域,一塊是引用本身,另一塊是引用所指向的對(duì)象
*基本數(shù)據(jù)類(lèi)型在內(nèi)存中只有一塊空間:里面存著值
4.4如何操作對(duì)象:使用.操作符
*使用對(duì)象名.屬性操作對(duì)象的屬性(如:stu.age = 18;)
*使用對(duì)象名.方法調(diào)用對(duì)象的方法(如:stu.study());
*this:每個(gè)對(duì)象都有this,this是指向本身的引用,代表本身
4.5. 必須能夠獨(dú)立寫(xiě)出Point3D的代碼(題目在PPT上)
5. 訪問(wèn)控制,方法定義與調(diào)用,重載,方法重寫(xiě)5.1 訪問(wèn)控制5.1.1 package包的使用
*使用package 定義包:package只能放在代碼的第一行
*import:導(dǎo)包,可以到入包下所有import java.io.*;可以導(dǎo)入具體的一個(gè)類(lèi)import java.io.Reader;
*包的作用:1,分類(lèi);2,隱藏(封裝的作用),3,便于管理
*java本身提供了一些包:java.lang(核心類(lèi),此包如需要引入),java.util(集合框架以及其他常用類(lèi)),java.io(輸入輸出),java.awt,javax.swing(圖形)
5.1.2 繼承(簡(jiǎn)單概念):使用extends關(guān)鍵字表示繼承
*子類(lèi)繼承父類(lèi)的所有屬性
*子類(lèi)繼承父類(lèi)除private(非同包的時(shí)候也除默認(rèn)的方法)外的所有方法
*子類(lèi)對(duì)象擁有super引用,表示父類(lèi)的引用,可以使用super明確的調(diào)用父類(lèi)的方法或?qū)傩?/p>
5.1.3四個(gè)訪問(wèn)級(jí)別,從大到。簆ublic ,protected,默認(rèn),private
*注意訪問(wèn)級(jí)別是針對(duì)類(lèi)來(lái)講的,不是針對(duì)對(duì)象!!!!!!!
*注意類(lèi)的訪問(wèn)修飾符只能使用public 或默認(rèn)
*學(xué)了訪問(wèn)控制后:類(lèi)的屬性都寫(xiě)private,通過(guò)set/get方法對(duì)屬性進(jìn)行賦值,取值
5.2 重載與重寫(xiě)
1.判斷是否是重載,或者是否是重寫(xiě),如果不是重寫(xiě)或者重載,就不受重寫(xiě)重載規(guī)則的約束
5.2.1重載:一個(gè)類(lèi)當(dāng)中,有方法名相同,參數(shù)不同的方法,稱(chēng)為重載
*不能只改返回值:不能根據(jù)方法的返回進(jìn)行重載
5.2.2重寫(xiě):在繼承當(dāng)中,子類(lèi)將父類(lèi)的方法重新寫(xiě)了一遍:重寫(xiě)的方法與被重寫(xiě)的方法擁有相同的方法簽名(返回值類(lèi)型,方法名,參數(shù)列數(shù))
*.重寫(xiě)的方法能夠改變被重寫(xiě)的方法的訪問(wèn)級(jí)別,注意只能是相等或者擴(kuò)大
*.重寫(xiě)的方法不能拋出比被重寫(xiě)方法更多的異常,注意只能縮小異常的范圍
*.如果被重寫(xiě)的方法是具體的,重寫(xiě)之后不能改為abstract
5.3 類(lèi)與對(duì)象的生命周期
5.3.1類(lèi)與對(duì)象的初始化過(guò)程:
*靜態(tài)屬性先初始化,而且僅僅初始化一次
*首先給靜態(tài)屬性進(jìn)行聲明,并賦默認(rèn)值,然后代碼從上往下執(zhí)行靜態(tài)代碼塊或靜態(tài)賦值
*每創(chuàng)建一個(gè)對(duì)象,就先實(shí)例化成員屬性:首先給成員屬性聲明,賦默認(rèn)值,然后.執(zhí)行賦值語(yǔ)句
*成員屬性初始化后再調(diào)用構(gòu)造方法
5.3.2垃圾回收機(jī)制
*java虛擬使用垃圾回收機(jī)制進(jìn)行垃圾回收
*垃圾回收本身是一個(gè)線(xiàn)程(當(dāng)內(nèi)存不夠用的時(shí)候,一般會(huì)進(jìn)行垃圾回收)
*垃圾回收不能通過(guò)程序來(lái)調(diào)用,僅僅能夠通過(guò)System.gc()建議虛擬機(jī)進(jìn)行垃圾回收
*當(dāng)進(jìn)行垃圾回收時(shí),會(huì)調(diào)用對(duì)象的finalize方法
5.4 單例模式:一個(gè)類(lèi)僅僅能有一個(gè)實(shí)例(設(shè)計(jì)模式的一種)
*構(gòu)造方法必須為私有的
*提供靜態(tài)的方法來(lái)獲得對(duì)象
*提供靜態(tài)的屬性,該屬性是該類(lèi)的一個(gè)對(duì)象
6. 繼承,抽象類(lèi),接口
6.1 繼承:
6.1.1 繼承的語(yǔ)法:使用extends關(guān)鍵字表示繼承
*子類(lèi)繼承父類(lèi)所有的屬性
*私有方法不能被繼承
*super關(guān)鍵字表示父類(lèi)的引用,可以用super來(lái)調(diào)用父類(lèi)的方法或?qū)傩?/p>
6.2.2 繼承中的構(gòu)造方法:了解下面的知識(shí)點(diǎn)以及實(shí)例化對(duì)象時(shí)代碼的執(zhí)行過(guò)程
*子類(lèi)的構(gòu)造過(guò)程必須調(diào)用其基類(lèi)的構(gòu)造方法
*子類(lèi)可以在自己的構(gòu)造過(guò)程中使用super (arg_list)來(lái)調(diào)用基類(lèi)的構(gòu)造方法
*如果調(diào)用super,必須寫(xiě)在子類(lèi)構(gòu)造方法的第一行
*可以使用this(argument_list)調(diào)用本類(lèi)的另外的構(gòu)造方法
*如果子類(lèi)的構(gòu)造方法中沒(méi)有顯示的調(diào)用基類(lèi)的構(gòu)造方法,系統(tǒng)默認(rèn)調(diào)用基類(lèi)無(wú)參數(shù)的構(gòu)造方法
*如果子類(lèi)構(gòu)造方法中既沒(méi)有顯式的.調(diào)用基類(lèi)構(gòu)造方法,基類(lèi)中又沒(méi)有無(wú)參數(shù)的構(gòu)造方法,編譯出錯(cuò)
6.3.3 對(duì)象的轉(zhuǎn)型
*一個(gè)基類(lèi)的引用類(lèi)型變量可以指向其子類(lèi)的對(duì)象
*一個(gè)基類(lèi)的引用不可以訪問(wèn)其子類(lèi)對(duì)象新增的成員
*可以使用instanceof 關(guān)鍵字來(lái)判斷一個(gè)引用類(lèi)型變量所指向的對(duì)象是否是制定的類(lèi)型
*子類(lèi)的對(duì)象可以當(dāng)作基類(lèi)的對(duì)象來(lái)使用稱(chēng)作向上轉(zhuǎn)型,反之稱(chēng)為向下轉(zhuǎn)型
*子類(lèi)可以當(dāng)成父類(lèi)來(lái)使用,無(wú)需顯示轉(zhuǎn)換
*父類(lèi)引用轉(zhuǎn)換為子類(lèi)引用要進(jìn)行強(qiáng)制轉(zhuǎn)換
*注意:不兼容的類(lèi)型之間不能進(jìn)行相互轉(zhuǎn)換(只有具有直接或間接父子關(guān)系的類(lèi)才是兼容的類(lèi)型),否則編譯時(shí)會(huì)報(bào)錯(cuò)
*注意:兼容類(lèi)型之間的轉(zhuǎn)換要看對(duì)象的實(shí)際類(lèi)型,因此向下轉(zhuǎn)化時(shí)最好先用instanceof來(lái)判斷是否是某個(gè)類(lèi)型,在轉(zhuǎn)換,以免報(bào)報(bào)錯(cuò)
6.4.4 多態(tài):也稱(chēng)運(yùn)行時(shí)綁定:一般是指父類(lèi)的引用指向子類(lèi)對(duì)象,通過(guò)父類(lèi)的引用調(diào)用被子類(lèi)重寫(xiě)的方法,這個(gè)時(shí)候執(zhí)行的是子類(lèi)的方法
*一句話(huà)總結(jié)多態(tài):對(duì)象實(shí)際是什么類(lèi)型就調(diào)用什么類(lèi)型的方法
*多態(tài)成立的條件:1,要有繼承。2,要有重寫(xiě)。3,必須有父類(lèi)引用指向子類(lèi)對(duì)象。
6.2 抽象類(lèi):用abstract修飾的類(lèi)稱(chēng)為抽象類(lèi)(抽象的本意是不具體)
1.抽象方法不能有方法體
2.抽象類(lèi)不能被實(shí)例化。
3.含有抽象方法的類(lèi)必須被聲明為抽象類(lèi),
4.子類(lèi)繼承抽象類(lèi),必須被重寫(xiě)父類(lèi)的抽象方法,否則本身也必須被聲明為抽象類(lèi)
5.抽象類(lèi)中的方法和屬性沒(méi)有其他規(guī)則來(lái)約束,抽象類(lèi)中沒(méi)有抽象的方法是可以的,抽象類(lèi)中可以有非抽象的方法和屬性
6.3 static :靜態(tài)關(guān)鍵字
6.3.1static屬性:在類(lèi)中,用static申明的成員變量叫靜態(tài)變量,他為該類(lèi)的公用變量,在第一使用時(shí)被初始化,對(duì)于該類(lèi)的所有對(duì)象來(lái)說(shuō),static成員變量只有一份
6.3.2 static方法:用static聲明的方法為靜態(tài)方法,在調(diào)用該方法時(shí),不會(huì)將對(duì)象的引用傳遞給它,所以static方法中不可以訪問(wèn)非static的成員。
*靜態(tài)方法中不能訪問(wèn)非靜態(tài)成員
*靜態(tài)成員方法沒(méi)有this引用
*可以通過(guò)類(lèi)名(不需要實(shí)例化)或?qū)ο笠脕?lái)訪問(wèn)靜態(tài)成員
6.4 final關(guān)鍵字:
final表示最終的意思
*final的變量的值不能夠被改變
*final的成員變量
*final的局部變量(形參)
*final的方法不能夠被重寫(xiě)
*final的類(lèi)不能夠被繼承
6.5 接口:interface
1. 使用interface定義一個(gè)接口,使用implements實(shí)現(xiàn)一個(gè)接口
2. 接口中的屬性只能為public static final類(lèi)型(靜態(tài)常量)
3. 接口中的方法只能為public abstract類(lèi)型
4. 一個(gè)類(lèi)可以實(shí)現(xiàn)多個(gè)接口,但只能繼承一個(gè)類(lèi)
5. 接口也可以繼承接口
7. 異常處理
java的異常處理機(jī)制
異常的關(guān)鍵字Exception
try,catch,finally,throw,throws關(guān)鍵字
7.1什么是異常,為什么要引入異常
*java程序運(yùn)行時(shí)出錯(cuò),java就拋出異常,程序立即終止(也可以說(shuō)程序崩潰)
*java將錯(cuò)誤信息封裝在異常對(duì)象里拋出
*學(xué)會(huì)查看異常的信息:異常的名字,異常的信息,程序拋異常的位置
*java引入異常處理機(jī)制,是防止程序出錯(cuò)崩潰
7.2java的異常的分類(lèi)
*java的拋出的錯(cuò)誤用異常類(lèi)來(lái)表示,java擁有一個(gè)異常體系(有許多異常類(lèi),并且相互之間具有關(guān)系)
*java里面的所有異常都是Throwable的子類(lèi)
*java虛擬機(jī)的異常是Error的子類(lèi),一般不需進(jìn)行處理(因?yàn)闆](méi)法進(jìn)行處理)
*除Error之外還有Exception,Exception分為兩類(lèi):RuntimeException(運(yùn)行時(shí)異常),被檢查異常(除了RuntimeException都是被檢查異常)
*RuntimeException(運(yùn)行時(shí)異常,可以不捕獲或聲明拋出,編譯不會(huì)報(bào)錯(cuò),一般是控制不當(dāng)造成的),可檢查異常(必須捕獲或聲明拋出,這類(lèi)異常通常需要檢測(cè)并處理,一般使用資源時(shí)造成的)
*幾個(gè)常見(jiàn)的異常:NullPointerException(空指針),IndexOutOfBoundsException(索引越界),SQLException(數(shù)據(jù)庫(kù)異常),IOException(文件異常)
7.3異常的處理方式
*使用try,catch,finally進(jìn)行處理
*不處理,使用throws,throw交給別人來(lái)處理
7.4try,catch,finally中程序的運(yùn)行過(guò)程
*嘗試執(zhí)行try里面的語(yǔ)句
*一次運(yùn)行當(dāng)中最多執(zhí)行一個(gè)catch塊,如果沒(méi)有拋出異常,catch塊不執(zhí)行
*finally總會(huì)執(zhí)行,不管有沒(méi)有拋出異常
*如果try塊里面有return語(yǔ)句,finally也會(huì)執(zhí)行
7.5區(qū)分RuntimeException與被檢查異常
*RuntimeException不需要捕獲或聲明拋出(但是如果你捕獲或聲明拋出也不會(huì)有錯(cuò))
*被檢查異常必須要捕獲或者聲明拋出
【Java基礎(chǔ)知識(shí)點(diǎn)總結(jié)】相關(guān)文章:
Java基礎(chǔ)知識(shí)點(diǎn)歸納08-22
java必備基礎(chǔ)知識(shí)點(diǎn)06-01
Java知識(shí)點(diǎn)總結(jié)12-04
JAVA筆試基礎(chǔ)題04-05
Java的基礎(chǔ)知識(shí)07-27
Java知識(shí)點(diǎn)歸納08-16
Java基礎(chǔ)知識(shí)詳解09-02
基礎(chǔ)JAVA筆試題分享06-17