總結(jié):java面試寶典2017版(java基礎(chǔ))

1.&與&&的區(qū)別?

&和&&都可以用作邏輯與的運(yùn)算符,當(dāng)運(yùn)算符兩邊的表達(dá)式的結(jié)果都為 true 時(shí),整個(gè)運(yùn)算結(jié)果才為 true,否則結(jié)果為 false。

&&:具有短路的功能,即如果第一個(gè)表達(dá)式為 false,則不再計(jì)算第二個(gè)表達(dá)式。

&:可以用作位運(yùn)算符,當(dāng)&操作符兩邊的表達(dá)式不是 boolean 類型時(shí),&表示按位與操作。

2.在 JAVA 中如何跳出當(dāng)前的多重嵌套循環(huán)?

(1)在外面的循環(huán)語句前定義一個(gè)標(biāo)號(hào),然后在里層循環(huán)體的代碼中使用帶有標(biāo)號(hào)的 break 語句。

(2)外層的循環(huán)條件表達(dá)式的結(jié)果可以受到里層循環(huán)體代碼的控制。里層循環(huán)(break)的結(jié)果直接不滿足外層循環(huán)的條件,即可跳出多重循環(huán)。

3.switch 語句的作用類型

在 switch(expr1)中,expr1只能是一個(gè)整數(shù)表達(dá)式或者枚舉常量(更大字體),整數(shù)表達(dá)式可以是 int 基本類型或 Integer 包裝類型,由于,byte,short,char 都可以隱含轉(zhuǎn)換為 int,所以,這些類型以及這些類型的包裝類型也是可以的。long 和 String 類型不能作用于 switch 語句中。

4.char 型變量中能不能存貯一個(gè)中文漢字?為什么?

char 型變量是用來存儲(chǔ) Unicode 編碼的字符的,unicode 編碼字符集中包含了漢字,所以,char 型變量中當(dāng)然可以存儲(chǔ)漢字啦。不過,如果某個(gè)特殊的漢字沒有被包含在 unicode 編碼字符集中,那么,這個(gè) char 型變量中就不能存儲(chǔ)這個(gè)特殊漢字。補(bǔ)充說明:unicode 編碼占用兩個(gè)字節(jié),以,char 類型的變量也是占用兩個(gè)字節(jié)。

5.用最有效率的方法算出 2 乘以 8 等于幾?

2 << 3,因?yàn)閷⒁粋€(gè)數(shù)左移 n 位,就相當(dāng)于乘以了2的 n 次方,那么,一個(gè)數(shù)乘以8只要將其左移3位即可,而位運(yùn)算 cpu 直接支持的,效率最高。

6.使用 final 關(guān)鍵字修飾一個(gè)變量時(shí),是引用不能變,還是引用的對(duì)象不能變?

引用變量不能變,引用變量所指向的對(duì)象中的內(nèi)容是可以改變的。

7."=="和 equals 方法究竟有什么區(qū)別?

==操作符:專門用來比較兩個(gè)變量的值是否相等,也就是用于比較變量所對(duì)應(yīng)的內(nèi)存中所存儲(chǔ)的數(shù)值是否相同,要比較兩個(gè)基本類型的數(shù)據(jù)或兩個(gè)引用變量是否相同,只能用==操作符。

equals 方法:是用于比較兩個(gè)獨(dú)立對(duì)象的內(nèi)容是否相同,字符串的比較基本上都是使用 equals 方法。

如果一個(gè)類沒有自己定義 equals 方法,那么它將繼承 Object 類的 equals 方法,Object 類的 equals 方法的實(shí)現(xiàn)代碼如下:??????????????????????????????????????????????????????????????????????????????????????????????????????? boolean equals(Object o){??????????????????????????????????????????????????????????????????????????????????????????????????????????????? return this==o;??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? }????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 這說明,如果一個(gè)類沒有自己定義 equals 方法,它默認(rèn)的 equals 方法(從 Object 類繼承的)就是使用==操作符,也是在比較兩個(gè)變量指向的對(duì)象是否是同一對(duì)象,這時(shí)候使用equals 和使用==會(huì)得到同樣的結(jié)果,如果比較的是兩個(gè)獨(dú)立的對(duì)象則總返回 false。如果你編寫的類希望能夠比較該類創(chuàng)建的兩個(gè)實(shí)例對(duì)象的內(nèi)容是否相同,那么你必須覆蓋 equals方法。

8.靜態(tài)變量和實(shí)例變量的區(qū)別?

語法定義上的區(qū)別:靜態(tài)變量前要加 static 關(guān)鍵字,而實(shí)例變量前則不加。

程序運(yùn)行時(shí)的區(qū)別:實(shí)例變量屬于某個(gè)對(duì)象的屬性,必須創(chuàng)建了實(shí)例對(duì)象,其中的實(shí)例變量才會(huì)被分配空間,才能使用這個(gè)實(shí)例變量。靜態(tài)變量不屬于某個(gè)實(shí)例對(duì)象,而是屬于類,所以也稱為類變量,只要程序加載了類的字節(jié)碼,不用創(chuàng)建任何實(shí)例對(duì)象,靜態(tài)變量就會(huì)被分配空間,靜態(tài)變量就可以被使用,靜態(tài)變量則可以直接使用類名來引用。

9.是否可以從一個(gè) static 方法內(nèi)部發(fā)出對(duì)非 static 方法的調(diào)用?

不可以,理由見第8條。

10.Integer 與 int 的區(qū)別

int 是 java 提供的8種原始數(shù)據(jù)類型之一。 Java 為每個(gè)原始類型提供了封裝類,Integer 是 java為 int 提供的封裝類。int 的默認(rèn)值為0,而 Integer 的默認(rèn)值為 null,即 Integer 可以區(qū)分出未賦值和值為0的區(qū)別,int 則無法表達(dá)出未賦值的情況。另外, Integer 提供了多個(gè)與整數(shù)相關(guān)的操作方法,例如,將一個(gè)字符串轉(zhuǎn)換成整數(shù), Integer中還定義了表示整數(shù)的最大值和最小值的常量。

11.Math.ceil()、Math.floor()和Math.round()方法。

Math 類中提供了三個(gè)與取整有關(guān)的方法:Math.ceil()、Math.floor()和Math.round()

Math.ceil()表示向上取整;Math.floor()表示向下取整;Math.round()表示“四舍五入”,算法為 Math.floor(x+0.5),即將原來的數(shù)字加上0.5后再向下取整。

12.作用域 public,private,protected,以及不寫時(shí)的區(qū)別

說明:如果在修飾的元素上面沒有寫任何訪問修飾符,則表示 friendly。


13.Overload 和 Override 的區(qū)別

重載 Overload 表示同一個(gè)類中可以有多個(gè)名稱相同的方法,但這些方法的參數(shù)列表各不相同(即參數(shù)個(gè)數(shù)或類型不同)

重寫 Override 表示子類中的方法可以與父類中的某個(gè)方法的名稱和參數(shù)完全相同,通過子類創(chuàng)建的實(shí)例對(duì)象調(diào)用這個(gè)方法時(shí),將調(diào)用子類中的定義方法,這相當(dāng)于把父類中定義的那個(gè)完全相同的方法給覆蓋了,這也是面向?qū)ο缶幊痰亩鄳B(tài)性的一種表現(xiàn)。子類覆蓋父類的方法時(shí),只能比父類拋出更少的異常,或者是拋出父類拋出的異常的子異常,因?yàn)樽宇惪梢越鉀Q父類的一些問題,不能比父類有更多的問題。子類方法的訪問權(quán)限只能比父類的更大,不能更小。如果父類的方法是 private 類型,那么,子類則不存在覆蓋的限制,相當(dāng)于子類中增加了一個(gè)全新的方法。

14.構(gòu)造器 Constructor 是否可被 override?

構(gòu)造器 Constructor 不能被繼承,因此不能重寫 Override ,但可以被重載 Overload 。

15.接口是否可繼承接口?抽象類是否可實(shí)現(xiàn)(implements)接口?抽象類是否可繼承具體類(concrete class)?抽象類中是否可以有靜態(tài)的 main 方法?

接口可以繼承接口。抽象類可以實(shí)現(xiàn)(implements)接口,抽象類可以繼承具體類。抽象類中可以有靜態(tài)的 main 方法。抽象類與普通類的唯一區(qū)別:就是不能創(chuàng)建實(shí)例對(duì)象和允許有 abstract 方法。

16.寫 clone()方法時(shí),通常都有一行代碼,是什么?

clone 有缺省行為, super.clone();因?yàn)槭紫纫迅割愔械某蓡T復(fù)制到位,然后才是復(fù)制自己的成員。

17.abstract class 和 interface 有什么區(qū)別?

abstract class:abstract 類不能創(chuàng)建的實(shí)例對(duì)象。含有 abstract方法的類必須定義為 abstract class,abstract class 類中的方法不必是抽象的。abstract class類中定義抽象方法必須在具體子類中實(shí)現(xiàn),所以,不能有抽象構(gòu)造方法或抽象靜態(tài)方法。如果的子類沒有實(shí)現(xiàn)抽象父類中的所有抽象方法,那么子類也必須定義為 abstract類型。

接口(interface):可以說成是抽象類的一種特例,接口中的所有方法都必須是抽象的。接口中的方法定義默認(rèn)為 public abstract 類型,接口中的成員變量類型默認(rèn)為 public static final。

兩者的語法區(qū)別:

1.抽象類可以有構(gòu)造方法,接口中不能有構(gòu)造方法。

2.抽象類中可以有普通成員變量,接口中沒有普通成員變量

3.抽象類中可以包含非抽象的普通方法,接口中的所有方法必須都是抽象的,不能有非抽象的普通方法。

4. 抽象類中的抽象方法的訪問類型可以是 public,protected,但接口中的抽象方法只能是 public 類型的,并且默認(rèn)為 public abstract 類型。

5. 抽象類中可以包含靜態(tài)方法,接口中不能包含靜態(tài)方法

6. 抽象類和接口中都可以包含靜態(tài)成員變量,抽象類中的靜態(tài)成員變量的訪問類型可以任意,但接口中定義的變量只能是 public static final 類型,并且默認(rèn)為 public static final 類型。

7. 一個(gè)類可以實(shí)現(xiàn)多個(gè)接口,但只能繼承一個(gè)抽象類。

18.abstract 的 method 是否可同時(shí)是 static?

abstract 的 method 不可以是 static 的,因?yàn)槌橄蟮姆椒ㄊ且蛔宇悓?shí)現(xiàn)的

19.什么是內(nèi)部類?

內(nèi)部類就是在一個(gè)類的內(nèi)部定義的類,內(nèi)部類中不能定義靜態(tài)成員,內(nèi)部類可以直接訪問外部類中的成員變量,內(nèi)部類可以定義在外部類的方法外面,也可以定義在外部類的方法體中。

在方法體外面定義的內(nèi)部類:訪問類型可以是 public,protecte,默認(rèn)的,private 等4種類型,這就好像類中定義的成員變量有4種訪問類型一樣,它們決定這個(gè)內(nèi)部類的定義對(duì)其他類是否可見;對(duì)于這種情況,我們也可以在外面創(chuàng)建內(nèi)部類的實(shí)例對(duì)象,創(chuàng)建內(nèi)部類的實(shí)例對(duì)象時(shí),一定要先創(chuàng)建外部類的實(shí)例對(duì)象,然后用這個(gè)外部類的實(shí)例對(duì)象去創(chuàng)建內(nèi)部類的實(shí)例對(duì)象,代碼如下:????????????????????? Outer outer = new Outer();???????????????????????????????????????????????????????????????????????????????????????????????????????????? Outer.Inner1 inner1 = outer.new Innner1();

在方法內(nèi)部定義的內(nèi)部類前面不能有訪問類型修飾符,就好像方法中定義的局部變量一樣,但這種內(nèi)部類的前面可以使用 final 或 abstract 修飾符。這種內(nèi)部類對(duì)其他類是不可見的其他類無法引用這種內(nèi)部類,但是這種內(nèi)部類創(chuàng)建的實(shí)例對(duì)象可以傳遞給其他類訪問。這種內(nèi)部類必須是先定義,后使用,即內(nèi)部類的定義代碼必須出現(xiàn)在使用該類之前,這與方法中的局部變量必須先定義后使用的道理也是一樣的。這種內(nèi)部類可以訪問方法體中的局部變量,但是,該局部變量前必須加 final 修飾符。

20.String 是最基本的數(shù)據(jù)類型嗎?

基本數(shù)據(jù)類型包括 byte、int、char、long、float、double、boolean 和 short。????????? java.lang.String 類是 final 類型的,因此不可以繼承這個(gè)類、不能修改這個(gè)類。為了提高效率節(jié)省空間,我們應(yīng)該用 StringBuffer 類

21.String 和 StringBuffer 的區(qū)別

JAVA 平臺(tái)提供了兩個(gè)類:String 和 StringBuffer,它們可以儲(chǔ)存和操作字符串,String 類提供了數(shù)值不可改變的字符串。而 StringBuffer 類提供的字符串進(jìn)行修改。當(dāng)知道字符數(shù)據(jù)要改變的時(shí)候就可以使用 StringBuffer來動(dòng)態(tài)構(gòu)造字符數(shù)據(jù)。另外,String 實(shí)現(xiàn)了 equals 方法,newString(“abc”).equals(newString(“abc”)的結(jié)果為 true,而 StringBuffer 沒有實(shí)現(xiàn) equals 法,所以,new StringBuffer(“abc”).equals(newStringBuffer(“abc”)的結(jié)果為 false。String 覆蓋了 equals 方法和 hashCode 方法,而 StringBuffer 沒有覆蓋 equals 方法和hashCode 方法,所以,將 StringBuffer 對(duì)象存儲(chǔ)進(jìn) Java 集合類中時(shí)會(huì)出現(xiàn)問題。

 StringBuilder:適用于單線程下在字符緩沖區(qū)進(jìn)行大量操作的情況,線程不安全的

 StringBuffer:適用多線程下在字符緩沖區(qū)進(jìn)行大量操作的情況,線程安全的

22.數(shù)組有沒有 length()這個(gè)方法? String 有沒有 length()這個(gè)方法?

數(shù)組沒有 length()這個(gè)方法,有 length 的屬性。String 有有 length()這個(gè)方法。

23.Java 中的異常處理機(jī)制的簡單原理和應(yīng)用

異常是指 java 程序運(yùn)行時(shí)(非編譯)所發(fā)生的非正常情況或錯(cuò)誤,Java 對(duì)異常進(jìn)行了分類,不同類型的異常分別用不同的 Java 類表示,所有異常的根類為java.lang.Throwable,Throwable 下面又派生了兩個(gè)子類:Error 和 Exception,Error 表示應(yīng)用程序本身無法克服和恢復(fù)的一種嚴(yán)重問題,程序只有死的份了,例如,說內(nèi)存溢出和線程死鎖等系統(tǒng)問題。Exception 表示程序還能夠克服和恢復(fù)的問題,其中又分為系統(tǒng)異常和普通異常,系統(tǒng)異常是軟件本身缺陷所導(dǎo)致的問題,也就是軟件開發(fā)人員考慮不周所導(dǎo)致的問題,軟件使用者無法克服和恢復(fù)這種問題,但在這種問題下還可以讓軟件系統(tǒng)繼續(xù)運(yùn)行或者讓軟件死掉,例如,數(shù)組腳本越界(ArrayIndexOutOfBoundsException),空指針異常(NullPointerException)、類轉(zhuǎn)換異常(ClassCastException);普通異常是運(yùn)行環(huán)境的變化或異常所導(dǎo)致的問題,是用戶能夠克服的問題,例如,網(wǎng)絡(luò)斷線,硬盤空間不夠,發(fā)生這樣的異常后,程序不應(yīng)該死掉。編譯器強(qiáng)制普通異常必須 try..catch 處理或用 throws 聲明繼續(xù)拋給上層調(diào)用方法處理,所以普通異常也稱為 checked 異常,而系統(tǒng)異??梢蕴幚硪部梢圆惶幚?所以,編譯器不強(qiáng)制用 try..catch 處理或用 throws 聲明,所以系統(tǒng)異常也稱為 unchecked 異常。

24.sleep()和 wait()有什么區(qū)別?

sleep 是線程類(Thread)的方法,導(dǎo)致此線程暫停執(zhí)行指定時(shí)間,給執(zhí)行機(jī)會(huì)給其他線程,但是監(jiān)控狀態(tài)依然保持,到時(shí)后會(huì)自動(dòng)恢復(fù)。調(diào)用 sleep 不會(huì)釋放對(duì)象鎖。 wait 是 Object 類的方法,對(duì)此對(duì)象調(diào)用 wait 方法導(dǎo)致本線程放棄對(duì)象鎖,進(jìn)入等待此對(duì)象的等待鎖定池,只有針對(duì)此對(duì)象發(fā)出 notify 方法(或 notifyAll)后本線程才進(jìn)入對(duì)象鎖定池準(zhǔn)備獲得對(duì)象鎖進(jìn)入運(yùn)行狀態(tài)。

sleep 就是正在執(zhí)行的線程主動(dòng)讓出 cpu,cpu 去執(zhí)行其他線程,在 sleep 指定的時(shí)間過后,cpu 才會(huì)回到這個(gè)線程上繼續(xù)往下執(zhí)行,如果當(dāng)前線程進(jìn)入了同步鎖,sleep 方法并不會(huì)釋放鎖,即使當(dāng)前線程使用 sleep 方法讓出了 cpu,但其他被同步鎖擋住了的線程也無法得到執(zhí)行。wait 是指在一個(gè)已經(jīng)進(jìn)入了同步鎖的線程內(nèi),讓自己暫時(shí)讓出同步鎖,以便其他正在等待此鎖的線程可以得到同步鎖并運(yùn)行,只有其他線程調(diào)用了 notify 方法(notify 并不釋放鎖,只是告訴調(diào)用過 wait 方法的線程可以去參與獲得鎖的競爭了。

25.同步和異步有何異同,在什么情況下分別使用他們?

如果數(shù)據(jù)將在線程間共享。例如正在寫的數(shù)據(jù)以后可能被另一個(gè)線程讀到,或者正在讀的數(shù)據(jù)可能已經(jīng)被另一個(gè)線程寫過了,那么這些數(shù)據(jù)就是共享數(shù)據(jù),必須進(jìn)行同步存取。當(dāng)應(yīng)用程序在對(duì)象上調(diào)用了一個(gè)需要花費(fèi)很長時(shí)間來執(zhí)行的方法,并且不希望讓程序等待方法的返回時(shí),就應(yīng)該使用異步編程,在很多情況下采用異步途徑往往更有效率。

26.啟動(dòng)一個(gè)線程是用 run()還是 start()??

啟動(dòng)一個(gè)線程是調(diào)用 start()方法,使線程就緒狀態(tài),以后可以被調(diào)度為運(yùn)行狀態(tài),一個(gè)線程必須關(guān)聯(lián)一些具體的執(zhí)行代碼,run()方法是該線程所關(guān)聯(lián)的執(zhí)行代碼。

27.synchronized 和 java.util.concurrent.locks.Lock 的異同?

主要相同點(diǎn):Lock 能完成 synchronized 所實(shí)現(xiàn)的所有功能

主要不同點(diǎn):Lock 有比 synchronized 更精確的線程語義和更好的性能。synchronized 會(huì)自動(dòng)釋放鎖,而 Lock 一定要求程序員手工釋放,并且必須在 finally 從句中釋放。Lock 還有更強(qiáng)大的功能,例如,它的 tryLock 方法可以非阻塞方式去拿鎖。

28.Collection和Map 框架的結(jié)構(gòu)

Collection有兩個(gè)子接口:List 、Set

List三個(gè)實(shí)現(xiàn)類:? ArrayList 的底層是數(shù)組,查詢快,增刪慢;LinkedList 的底層是雙向鏈表,增刪快,查詢慢;Vector 的底層是數(shù)組,線程安全的。

Set有一個(gè)實(shí)現(xiàn)類HashSet以及一個(gè)子接口(SortedSet)。SortedSet有一個(gè)實(shí)現(xiàn)類TreeSet,底層實(shí)現(xiàn)是二叉樹,實(shí)現(xiàn)了Comparable接口,按元素大小自動(dòng)排序。

Map有兩個(gè)實(shí)現(xiàn)類HashMap、HashTable,以及一個(gè)子接口SortedMap。SortedMap有一個(gè)實(shí)現(xiàn)類TreeMap。

29.ArrayList 和 Vector 的區(qū)別

這兩個(gè)類都實(shí)現(xiàn)了 List 接口(List 接口繼承了 Collection 接口),他們都是有序集合,即存儲(chǔ)在這兩個(gè)集合中的元素的位置都是確定的,相當(dāng)于一種動(dòng)態(tài)的數(shù)組,我們以后可以按位置索引號(hào)取出某個(gè)元素,并且其中的數(shù)據(jù)是允許重復(fù)的。

同步性:Vector 是線程安全的,也就是說是它的方法之間是線程同步的,而 ArrayList 是線程序不安全的,它的方法之間是線程不同步的。如果只有一個(gè)線程會(huì)訪問到集合,那最好是使用ArrayList,因?yàn)樗豢紤]線程安全,效率會(huì)高些;如果有多個(gè)線程會(huì)訪問到集合,那最好是使用 Vector,因?yàn)椴恍枰覀冏约涸偃タ紤]和編寫線程安全的代碼。

數(shù)據(jù)增長:ArrayList 與 Vector 都有一個(gè)初始的容量大小,當(dāng)存儲(chǔ)進(jìn)它們里面的元素的個(gè)數(shù)超過了容量時(shí),就需要增加 ArrayList 與 Vector 的存儲(chǔ)空間,每次增加的存儲(chǔ)單元的個(gè)數(shù)在內(nèi)存空間利用與程序效率之間要取得一定的平衡。Vector 默認(rèn)增長為原來兩倍,而 ArrayList 的增長為原來的1.5倍。ArrayList 與 Vector 都可以設(shè)置初始的空間大小,Vector 還可以設(shè)置增長的空間大小,而 ArrayList 沒有提供設(shè)置增長空間的方法。

30.HashMap 和 Hashtable 的區(qū)別

HashMap 是 Hashtable 的輕量級(jí)實(shí)現(xiàn)(非線程安全的實(shí)現(xiàn)),他們都完成了 Map 接口,主要區(qū)別在于 HashMap 允許空(null)鍵值(key)。Hashtable 的方法是 Synchronize 的,而 HashMap 不是,在多個(gè)線程訪問Hashtable 時(shí),不需要自己為它的方法實(shí)現(xiàn)同步,而 HashMap 就必須為之提供外同步,由于非線程安全,在只有一個(gè)線程訪問的情況下,效率要高于 Hashtable。

31.Collection 和 Collections 的區(qū)別

Collection 是集合類的上級(jí)接口,繼承與他的接口主要有 Set 和 List。Collections 是針對(duì)集合類的一個(gè)幫助類,他提供一系列靜態(tài)方法實(shí)現(xiàn)對(duì)各種集合的搜索、排序、線程安全化等操作。

32.序列化接口Serializable

要將 java 對(duì)象存儲(chǔ)到硬盤或者傳送給網(wǎng)絡(luò)上的其他計(jì)算機(jī),這個(gè)過程我們可以自己寫代碼去把一個(gè) java 對(duì)象變成某個(gè)格式的字節(jié)流再傳輸,jre 本身就提供了這種支持,我們可以調(diào)用OutputStream 的 writeObject 方法來做,如果要讓 java 幫我們做,要被傳輸?shù)膶?duì)象必須實(shí)現(xiàn) serializable 接口,這樣,javac 編譯時(shí)就會(huì)進(jìn)行特殊處理,編譯的類才可以被 writeObject 方法操作,這就是所謂的序列化。需要被序列化的類必須實(shí)現(xiàn)Serializable 接口,該接口是一個(gè) mini 接口,其中沒有需要實(shí)現(xiàn)的方法,implements Serializable 只是為了標(biāo)注該對(duì)象是可被序列化的。

33.assert

assertion(斷言)在軟件開發(fā)中是一種常用的調(diào)試方式,很多開發(fā)語言中都支持這種機(jī)制。在實(shí)現(xiàn)中,assertion 就是在程序中的一條語句,它對(duì)一個(gè) boolean 表達(dá)式進(jìn)行檢查,一個(gè)正確程序必須保證這個(gè) boolean 表達(dá)式的值為 true;如果該值為 false,說明程序已經(jīng)處于不正確的狀態(tài)下,assert 將給出警告或退出。一般來說,assertion 用于保證程序最基本、關(guān)鍵的正確性。assertion 檢查通常在開發(fā)和測試時(shí)開啟。為了提高性能,在軟件發(fā)布后,assertion 檢查通常是關(guān)閉的。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,740評(píng)論 18 399
  • (一)Java部分 1、列舉出JAVA中6個(gè)比較常用的包【天威誠信面試題】 【參考答案】 java.lang;ja...
    獨(dú)云閱讀 7,265評(píng)論 0 62
  • 一:java概述:1,JDK:Java Development Kit,java的開發(fā)和運(yùn)行環(huán)境,java的開發(fā)工...
    ZaneInTheSun閱讀 2,815評(píng)論 0 11
  • 一:java概述: 1,JDK:Java Development Kit,java的開發(fā)和運(yùn)行環(huán)境,java的開發(fā)...
    慕容小偉閱讀 1,948評(píng)論 0 10
  • 上一章 目錄 夫人便命身邊的丫頭香茗帶盈盈走。香茗是個(gè)十六七歲的姑娘,長相十分俊俏討喜,平日在夫人面前很...
    巴迪CAT閱讀 1,005評(píng)論 0 3

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