更新時(shí)間:2022-06-07 11:12:04 來源:動(dòng)力節(jié)點(diǎn) 瀏覽1368次
動(dòng)力節(jié)點(diǎn)小編來給大家進(jìn)行Java基礎(chǔ)教程部分知識(shí)點(diǎn)總結(jié)。
基本類型:基本類型的變量“持有”一個(gè)值;引用類型:引用類型的變量“指向”一個(gè)對(duì)象。
基本數(shù)據(jù)類型是CPU可以直接進(jìn)行運(yùn)算的類型。Java中的基本數(shù)據(jù)類型有:
整數(shù)類型:byte short int long
浮點(diǎn)類型:浮點(diǎn)雙
字符類型:字符
布爾類型:布爾
==判斷兩個(gè)變量或?qū)嵗欠裰赶蛲粋€(gè)內(nèi)存空間,equals判斷兩個(gè)變量或?qū)嵗欠裰赶蛲粋€(gè)內(nèi)存空間
==比較內(nèi)存地址并等于內(nèi)容
跳出當(dāng)前循環(huán),繼續(xù)提前結(jié)束這個(gè)循環(huán),繼續(xù)執(zhí)行下一個(gè)循環(huán)。
面向?qū)ο?/p>
面向?qū)ο缶幊淌且环N通過對(duì)象的方式將現(xiàn)實(shí)世界映射到計(jì)算機(jī)模型的編程方法。
類是一個(gè)對(duì)象模板,它定義了如何創(chuàng)建一個(gè)實(shí)例。Instance是一個(gè)對(duì)象實(shí)例,是根據(jù)類創(chuàng)建的。
基本類型的參數(shù)傳遞是指調(diào)用者的值的拷貝,雙方后續(xù)修改互不影響;引用類型的參數(shù)傳遞指的是同一個(gè)對(duì)象,任何一方修改該對(duì)象都會(huì)影響另一方。
構(gòu)造函數(shù)用于初始化實(shí)例。如果一個(gè)類沒有定義構(gòu)造函數(shù),編譯器會(huì)自動(dòng)為我們生成一個(gè)默認(rèn)構(gòu)造函數(shù)。如果定義了構(gòu)造函數(shù),編譯器將不再自動(dòng)創(chuàng)建默認(rèn)構(gòu)造函數(shù)。注意:在Java中,對(duì)于任何類的構(gòu)造函數(shù),第一行語句必須是調(diào)用父類的構(gòu)造函數(shù)。如果父類的構(gòu)造函數(shù)沒有顯式調(diào)用,編譯器會(huì)自動(dòng)為我們添加一個(gè)super()。
方法名相同,但參數(shù)不同,稱為方法重載。方法重載的目的是功能相似的方法使用相同的名稱,這樣更容易記憶,更容易調(diào)用。
在繼承關(guān)系中,如果子類定義了與父方法簽名相同的方法,則稱為override。
繼承是面向?qū)ο缶幊讨幸环N非常強(qiáng)大的機(jī)制,可以重用代碼。Java只允許一個(gè)類繼承一個(gè)類,所以一個(gè)類只有一個(gè)父類。只有對(duì)象是特殊的。它沒有父類。子類不能訪問父類的私有字段或私有方法。子類不會(huì)繼承父類的任何構(gòu)造方法。子類的默認(rèn)構(gòu)造方法是編譯器自動(dòng)生成的,不是繼承的。
多態(tài)性意味著對(duì)于一種方法調(diào)用,它執(zhí)行的真正方法取決于運(yùn)行時(shí)方法的實(shí)際類型。多態(tài)有一個(gè)非常強(qiáng)大的功能,就是在不修改父類的代碼的情況下,允許添加更多類型的子類來實(shí)現(xiàn)功能擴(kuò)展。
用 abstract 裝飾的類是抽象類。無法實(shí)例化抽象類。將方法聲明為抽象意味著它是一個(gè)抽象方法,并且不實(shí)現(xiàn)任何方法語句。抽象類本身被設(shè)計(jì)為僅用于繼承。抽象類可以強(qiáng)制子類實(shí)現(xiàn)其定義的抽象方法,否則編譯會(huì)報(bào)錯(cuò)。因此,一個(gè)抽象的方法實(shí)際上相當(dāng)于定義一個(gè)“規(guī)范”。
非抽象方法可以定義在抽象類中。
如果抽象類沒有字段且所有方法都是抽象方法,則可以將其重寫為接口。所謂接口就是比抽象類更抽象的純抽象接口,因?yàn)樗踔敛荒苡凶侄?。因?yàn)榻涌诙x的所有方法默認(rèn)都是public abstract,所以這兩個(gè)修飾符不需要寫出來。
一個(gè)類可以實(shí)現(xiàn)多個(gè)接口。
在接口中可以定義默認(rèn)方法,實(shí)現(xiàn)類不能覆蓋默認(rèn)方法。默認(rèn)方法的目的是當(dāng)你需要向接口添加方法時(shí),它涉及到修改所有子類。如果添加了默認(rèn)方法,那么子類不需要完全修改,只需要在需要重寫的地方重寫新方法。
final修飾類可以防止繼承;
final修飾的方法可以防止被重寫;
最終的裝飾屬性必須在創(chuàng)建對(duì)象時(shí)初始化,以后不能修改。
靜態(tài)修飾的成員變量和方法,從屬于類
公共變量和方法從屬于對(duì)象
靜態(tài)方法不能調(diào)用非靜態(tài)成員,編譯會(huì)報(bào)錯(cuò)
實(shí)例對(duì)象之所以可以訪問靜態(tài)字段,只是因?yàn)榫幾g器可以根據(jù)實(shí)例類型自動(dòng)將其轉(zhuǎn)換為類名和靜態(tài)字段。建議使用類名訪問靜態(tài)字段。
方法中定義的變量稱為局部變量,局部變量的作用域從變量聲明開始,到對(duì)應(yīng)的塊結(jié)束。方法參數(shù)也是局部變量。
字符串由字符串內(nèi)部的 char [] 數(shù)組表示,
Java 字符串的一個(gè)重要特性是它們是不可變的。
public class Main {
public static void main(String[] args) {
String s1 = "hello";
String s2 = "hello";
System.out.println(s1 == s2);
System.out.println(s1.equals(s2));
}
}
從比較結(jié)果來看,兩者都是正確的。這是因?yàn)閖ava編譯器在編譯時(shí)會(huì)自動(dòng)將所有相同的字符串作為對(duì)象放入常量池中。當(dāng)然,S1 和 S2 的引用是相同的。
所以這個(gè) = = 比較返回 true 是一個(gè)巧合。換一種方式, = = 比較會(huì)失?。?/p>
public class Main {
public static void main(String[] args) {
String s1 = "hello";
String s2 = "HELLO".toLowerCase();
System.out.println(s1 == s2);
System.out.println(s1.equals(s2));
}
}
為什么是真假?原因是 to lowercase(),它將 S2 指向一個(gè)變?yōu)樾懙淖址?/p>
StringBuilder 是一個(gè)變量對(duì)象,可以預(yù)先分配緩沖區(qū),這樣在 StringBuilder 中添加字符時(shí),不會(huì)創(chuàng)建新的臨時(shí)對(duì)象。
StringBuffer 是 Java 早期 StringBuilder 的線程安全版本。它通過同步保證了多線程操作StringBuffer是安全的,但是同步會(huì)導(dǎo)致執(zhí)行速度的下降。
自動(dòng)裝箱和拆箱只發(fā)生在編譯階段,以減少代碼編寫;
裝箱和拆箱會(huì)影響代碼的執(zhí)行效率,因?yàn)榫幾g出來的類代碼嚴(yán)格區(qū)分了基本類型和引用類型。此外,在自動(dòng)拆箱過程中可能會(huì)報(bào)告 NullPointerException。
Java使用enum定義枚舉類型,編譯器編譯為final class XXX extends enum { }
enum枚舉類型是引用類型;
每個(gè)枚舉類型的常量在JVM中只有一個(gè)唯一的實(shí)例,所以可以直接用==來比較。
定義的枚舉類型總是繼承自java.lang.enum,不能被繼承;
只能定義 enum 的實(shí)例,但不能通過 new 運(yùn)算符創(chuàng)建 enum 的實(shí)例;
Throwable是異常系統(tǒng)的根,繼承自object。Throwable 有兩個(gè)系統(tǒng):錯(cuò)誤和異常。Error表示嚴(yán)重錯(cuò)誤,程序一般無能為力。異常是運(yùn)行時(shí)錯(cuò)誤,可以被捕獲和處理。
Java的反射意味著程序可以在運(yùn)行時(shí)獲取一個(gè)對(duì)象的所有信息。因?yàn)镴VM會(huì)為每個(gè)加載的類創(chuàng)建一個(gè)對(duì)應(yīng)的類實(shí)例,并在實(shí)例中保存該類的所有信息,包括類名、包名、父類、實(shí)現(xiàn)的接口、所有方法、字段等,如果我們得到一個(gè)類實(shí)例,我們可以通過這個(gè)類實(shí)例獲取該實(shí)例對(duì)應(yīng)的類的所有信息。這種通過類實(shí)例獲取類信息的方法稱為反射。
注釋是一種用作注釋的“元數(shù)據(jù)”。注解的本質(zhì)是一個(gè)繼承注解接口的接口。
泛型的本質(zhì)是對(duì)類型進(jìn)行參數(shù)化(不創(chuàng)建新類型,通過泛型指定的不同類型來控制參數(shù)具體限制的類型)。也就是說,在使用泛型的過程中,將操作的數(shù)據(jù)類型指定為參數(shù)。這種參數(shù)類型可以用在類、接口和方法中,分別稱為泛型類、泛型接口和泛型方法。
以上就是關(guān)于“Java基礎(chǔ)部分知識(shí)點(diǎn)總結(jié)”的介紹,大家如果想了解更多相關(guān)知識(shí),可以關(guān)注一下動(dòng)力節(jié)點(diǎn)的Java在線學(xué)習(xí),里面的課程內(nèi)容從入門到精通,細(xì)致全面,很適合沒有基礎(chǔ)的小伙伴學(xué)習(xí),希望對(duì)大家能夠有所幫助。
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743