100道Java基础面试题收集整理(附答案)
不積跬步無以至千里,這里會(huì)不斷收集和更新Java基礎(chǔ)相關(guān)的面試題,目前已收集100題。
1.什么是B/S架構(gòu)?什么是C/S架構(gòu)
C/S(Client/Server),客戶端/服務(wù)端,桌面應(yīng)用程序
2.你所知道網(wǎng)絡(luò)協(xié)議有那些?
HTTP:超文本傳輸協(xié)議
FTP:文件傳輸協(xié)議
SMPT:簡單郵件協(xié)議
TELNET:遠(yuǎn)程終端協(xié)議
POP3:郵件讀取協(xié)議
3.Java都有那些開發(fā)平臺(tái)?
JAVA SE:主要用在客戶端開發(fā) JAVA EE:主要用在web應(yīng)用程序開發(fā) JAVA ME:主要用在嵌入式應(yīng)用程序開發(fā)4.什么是JVM?java虛擬機(jī)包括什么?
JVM:java虛擬機(jī),運(yùn)用硬件或軟件手段實(shí)現(xiàn)的虛擬的計(jì)算機(jī),Java虛擬機(jī)包括:寄存器,堆棧,處理器
5.Java是否需要開發(fā)人員回收內(nèi)存垃圾嗎?
大多情況下是不需要的。Java提供了一個(gè)系統(tǒng)級的線程來跟蹤內(nèi)存分配,不再使用的內(nèi)存區(qū)將會(huì)自動(dòng)回收
6.什么是JDK?什么是JRE?
JDK:java development kit:java開發(fā)工具包,是開發(fā)人員所需要安裝的環(huán)境
JRE:java runtime environment:java運(yùn)行環(huán)境,java程序運(yùn)行所需要安裝的環(huán)境
7.什么是數(shù)據(jù)結(jié)構(gòu)?
計(jì)算機(jī)保存,組織數(shù)據(jù)的方式
8.Java的數(shù)據(jù)結(jié)構(gòu)有那些?
線性表(ArrayList) 鏈表(LinkedList) 棧(Stack) 隊(duì)列(Queue) 圖(Map) 樹(Tree)9.什么是OOP?
面向?qū)ο缶幊?/p>
10.什么是面向?qū)ο?#xff1f;
世間萬物都可以看成一個(gè)對象。每個(gè)物體包括動(dòng)態(tài)的行為和靜態(tài)的屬性,這些就構(gòu)成了一個(gè)對象。
11.類與對象的關(guān)系?
類是對象的抽象,對象是類的具體,類是對象的模板,對象是類的實(shí)例
12.Java中有幾種數(shù)據(jù)類型
整形:byte,short,int,long 浮點(diǎn)型:float,double 字符型:char 布爾型:boolean13.什么是隱式轉(zhuǎn)換,什么是顯式轉(zhuǎn)換
顯示轉(zhuǎn)換就是類型強(qiáng)轉(zhuǎn),把一個(gè)大類型的數(shù)據(jù)強(qiáng)制賦值給小類型的數(shù)據(jù);隱式轉(zhuǎn)換就是大范圍的變量能夠接受小范圍的數(shù)據(jù);隱式轉(zhuǎn)換和顯式轉(zhuǎn)換其實(shí)就是自動(dòng)類型轉(zhuǎn)換和強(qiáng)制類型轉(zhuǎn)換。
14.Char類型能不能轉(zhuǎn)成int類型?能不能轉(zhuǎn)化成string類型,能不能轉(zhuǎn)成double類型
Char在java中也是比較特殊的類型,它的int值從1開始,一共有2的16次方個(gè)數(shù)據(jù);Char<int<long<float<double;Char類型可以隱式轉(zhuǎn)成int,double類型,但是不能隱式轉(zhuǎn)換成string;如果char類型轉(zhuǎn)成byte,short類型的時(shí)候,需要強(qiáng)轉(zhuǎn)。
15.什么是拆裝箱?
拆箱:把包裝類型轉(zhuǎn)成基本數(shù)據(jù)類型 裝箱:把基本數(shù)據(jù)類型轉(zhuǎn)成包裝類型16.Java中的包裝類都是那些?
byte:Byte short:Short int:Integer long:Long float:Float double:Double char:Character boolean:Boolean17.一個(gè)java類中包含那些內(nèi)容?
屬性、方法、內(nèi)部類、構(gòu)造方法、代碼塊。
18.例如: if(a+1.0=4.0),這樣做好嗎?
不好,因?yàn)橛?jì)算機(jī)在浮點(diǎn)型數(shù)據(jù)運(yùn)算的時(shí)候,會(huì)有誤差,盡量在布爾表達(dá)式中不使用浮點(diǎn)型數(shù)據(jù)(if,while,switch中判斷條件不使用浮點(diǎn)型)
19.那針對浮點(diǎn)型數(shù)據(jù)運(yùn)算出現(xiàn)的誤差的問題,你怎么解決?
使用Bigdecimal類進(jìn)行浮點(diǎn)型數(shù)據(jù)的運(yùn)算
20.++i與i++的區(qū)別
++i:先賦值,后計(jì)算 i++:先計(jì)算,后賦值21.程序的結(jié)構(gòu)有那些?
順序結(jié)構(gòu) 選擇結(jié)構(gòu) 循環(huán)結(jié)構(gòu)22.數(shù)組實(shí)例化有幾種方式?
靜態(tài)實(shí)例化:創(chuàng)建數(shù)組的時(shí)候已經(jīng)指定數(shù)組中的元素,
int[] a=new int[]{1,3,3}動(dòng)態(tài)實(shí)例化:實(shí)例化數(shù)組的時(shí)候,只指定了數(shù)組程度,數(shù)組中所有元素都是數(shù)組類型的默認(rèn)值
23.Java中各種數(shù)據(jù)默認(rèn)值
Byte,short,int,long默認(rèn)是都是0 Boolean默認(rèn)值是false Char類型的默認(rèn)值是’’ Float與double類型的默認(rèn)是0.0 對象類型的默認(rèn)值是null24.Java常用包有那些?
Java.lang Java.io Java.sql Java.util Java.awt Java.net Java.math25.Java最頂級的父類是哪個(gè)?
Object
26.Object類常用方法有那些?
Equals Hashcode toString wait notify clone getClass27.java中有沒有指針?
有指針,但是隱藏了,開發(fā)人員無法直接操作指針,由jvm來操作指針
28.java中是值傳遞引用傳遞?
理論上說,java都是引用傳遞,對于基本數(shù)據(jù)類型,傳遞是值的副本,而不是值本身。對于對象類型,傳遞是對象的引用,當(dāng)在一個(gè)方法操作操作參數(shù)的時(shí)候,其實(shí)操作的是引用所指向的對象。
29.假設(shè)把實(shí)例化的數(shù)組的變量當(dāng)成方法參數(shù),當(dāng)方法執(zhí)行的時(shí)候改變了數(shù)組內(nèi)的元素,那么在方法外,數(shù)組元素有發(fā)生改變嗎?
改變了,因?yàn)閭鬟f是對象的引用,操作的是引用所指向的對象
30.實(shí)例化數(shù)組后,能不能改變數(shù)組長度呢?
不能,數(shù)組一旦實(shí)例化,它的長度就是固定的
31.假設(shè)數(shù)組內(nèi)有5個(gè)元素,如果對數(shù)組進(jìn)行反序,該如何做?
創(chuàng)建一個(gè)新數(shù)組,從后到前循環(huán)遍歷每個(gè)元素,將取出的元素依次順序放入新數(shù)組中
32.形參與實(shí)參
形參:全稱為“形式參數(shù)”,是在定義方法名和方法體的時(shí)候使用的參數(shù),用于接收調(diào)用該方法時(shí)傳入的實(shí)際值;實(shí)參:全稱為“實(shí)際參數(shù)”,是在調(diào)用方法時(shí)傳遞給該方法的實(shí)際值。
33.構(gòu)造方法能不能顯式調(diào)用?
不能構(gòu)造方法當(dāng)成普通方法調(diào)用,只有在創(chuàng)建對象的時(shí)候它才會(huì)被系統(tǒng)調(diào)用
34.構(gòu)造方法能不能重寫?能不能重載?
可以重寫,也可以重載
35.什么是方法重載?
方法的重載就是在同一個(gè)類中允許同時(shí)存在一個(gè)以上的同名方法,只要它們的參數(shù)個(gè)數(shù)或者類型不同即可。在這種情況下,該方法就叫被重載了,這個(gè)過程稱為方法的重載(override)
36.內(nèi)部類與靜態(tài)內(nèi)部類的區(qū)別?
靜態(tài)內(nèi)部類相對與外部類是獨(dú)立存在的,在靜態(tài)內(nèi)部類中無法直接訪問外部類中變量、方法。如果要訪問的話,必須要new一個(gè)外部類的對象,使用new出來的對象來訪問。但是可以直接訪問靜態(tài)的變量、調(diào)用靜態(tài)的方法;
普通內(nèi)部類作為外部類一個(gè)成員而存在,在普通內(nèi)部類中可以直接訪問外部類屬性,調(diào)用外部類的方法。
如果外部類要訪問內(nèi)部類的屬性或者調(diào)用內(nèi)部類的方法,必須要?jiǎng)?chuàng)建一個(gè)內(nèi)部類的對象,使用該對象訪問屬性或者調(diào)用方法。
如果其他的類要訪問普通內(nèi)部類的屬性或者調(diào)用普通內(nèi)部類的方法,必須要在外部類中創(chuàng)建一個(gè)普通內(nèi)部類的對象作為一個(gè)屬性,外同類可以通過該屬性調(diào)用普通內(nèi)部類的方法或者訪問普通內(nèi)部類的屬性
如果其他的類要訪問靜態(tài)內(nèi)部類的屬性或者調(diào)用靜態(tài)內(nèi)部類的方法,直接創(chuàng)建一個(gè)靜態(tài)內(nèi)部類對象即可。
37.Static關(guān)鍵字有什么作用?
Static可以修飾內(nèi)部類、方法、變量、代碼塊
Static修飾的類是靜態(tài)內(nèi)部類
Static修飾的方法是靜態(tài)方法,表示該方法屬于當(dāng)前類的,而不屬于某個(gè)對象的,靜態(tài)方法也不能被重寫,可以直接使用類名來調(diào)用。在static方法中不能使用this或者super關(guān)鍵字。
Static修飾變量是靜態(tài)變量或者叫類變量,靜態(tài)變量被所有實(shí)例所共享,不會(huì)依賴于對象。靜態(tài)變量在內(nèi)存中只有一份拷貝,在JVM加載類的時(shí)候,只為靜態(tài)分配一次內(nèi)存。
Static修飾的代碼塊叫靜態(tài)代碼塊,通常用來做程序優(yōu)化的。靜態(tài)代碼塊中的代碼在整個(gè)類加載的時(shí)候只會(huì)執(zhí)行一次。靜態(tài)代碼塊可以有多個(gè),如果有多個(gè),按照先后順序依次執(zhí)行。
38.Final在java中的作用
Final可以修飾類,修飾方法,修飾變量。 修飾的類叫最終類。該類不能被繼承。 修飾的方法不能被重寫。 修飾的變量叫常量,常量必須初始化,一旦初始化后,常量的值不能發(fā)生改變。39.Java中操作字符串使用哪個(gè)類?
String,StringBuffer,StringBuilder
40.StringBuffer,Stringbuilder有什么區(qū)別?
StringBuffer與StringBuilder都繼承了AbstractStringBulder類,而AbtractStringBuilder又實(shí)現(xiàn)了CharSequence接口,兩個(gè)類都是用來進(jìn)行字符串操作的。
在做字符串拼接修改刪除替換時(shí),效率比string更高。
StringBuffer是線程安全的,Stringbuilder是非線程安全的。所以Stringbuilder比stringbuffer效率更高,StringBuffer的方法大多都加了synchronized關(guān)鍵字
41.String str=”aaa”,與String str=new String(“aaa”)一樣嗎?
不一樣的。因?yàn)閮?nèi)存分配的方式不一樣。 第一種,創(chuàng)建的”aaa”是常量,jvm都將其分配在常量池中。 第二種創(chuàng)建的是一個(gè)對象,jvm將其值分配在堆內(nèi)存中。42.String str=”aa”,String s=”bb”,String aa=aa+s;一種創(chuàng)建了幾個(gè)對象?
一共有兩個(gè)引用,三個(gè)對象。因?yàn)椤盿a”與”bb”都是常量,常量的值不能改變,當(dāng)執(zhí)行字符串拼接時(shí)候,會(huì)創(chuàng)建一個(gè)新的常量是” aabbb”,有將其存到常量池中。
43.將下java中的math類有那些常用方法?
Pow():冪運(yùn)算 Sqrt():平方根 Round():四舍五入 Abs():求絕對值 Random():生成一個(gè)0-1的隨機(jī)數(shù),包括0不包括144.String類的常用方法有那些?
charAt:返回指定索引處的字符 indexOf():返回指定字符的索引 replace():字符串替換 trim():去除字符串兩端空白 split():分割字符串,返回一個(gè)分割后的字符串?dāng)?shù)組 getBytes():返回字符串的byte類型數(shù)組 length():返回字符串長度 toLowerCase():將字符串轉(zhuǎn)成小寫字母 toUpperCase():將字符串轉(zhuǎn)成大寫字符 substring():截取字符串 format():格式化字符串 equals():字符串比較45.判斷兩個(gè)對象是否相同,能使用equlas比較嗎?
不能。Equlas大多用來做字符串比較,要判斷基本數(shù)據(jù)類型或者對象類型,需要使用==
46.==與equlas有什么區(qū)別?
==可以判斷基本數(shù)據(jù)類型值是否相等,也可以判斷兩個(gè)對象指向的內(nèi)存地址是否相同,也就是說判斷兩個(gè)對象是否是同一個(gè)對象,Equlas通常用來做字符串比較。
47.如何將字符串反轉(zhuǎn)?
Stringbuilder或者stringbuffer的reverse方法
48.面向?qū)ο蟮恼Z言有那些特征?
封裝、繼承、多態(tài)
49.Java中的繼承是單繼承還是多繼承
Java中既有單繼承,又有多繼承。對于java類來說只能有一個(gè)父類,對于接口來說可以同時(shí)繼承多個(gè)接口
50.什么是重寫?什么是重載?
重載和重寫都是java多態(tài)的表現(xiàn)。
重載叫override,在同一個(gè)類中多態(tài)的表現(xiàn)。當(dāng)一個(gè)類中出現(xiàn)了多個(gè)相同名稱的方法,但參數(shù)個(gè)數(shù)和參數(shù)類型不同,方法重載與返回值無關(guān)
重寫叫overwrite,是字符類中多態(tài)的表現(xiàn)。當(dāng)子類出現(xiàn)與父類相同的方法,那么這就是方法重寫。方法重寫時(shí),子類的返回值必須與父類的一致。如果父類方法拋出一個(gè)異常,子類重寫的方法拋出的異常類型不能小于父類拋出的異常類型。
51.構(gòu)造方法能不能重載?能不能重寫?
可以重載,必須重寫
52.如果父類只有有參構(gòu)造方法,那么子類必須要重寫父類的構(gòu)造方法嗎?
必須重寫
53.創(chuàng)建一個(gè)子類對象的時(shí)候,那么父類的構(gòu)造方法會(huì)執(zhí)行嗎?
會(huì)執(zhí)行。當(dāng)創(chuàng)建一個(gè)子類對象,調(diào)用子類構(gòu)造方法的時(shí)候,子類構(gòu)造方法會(huì)默認(rèn)調(diào)用父類的構(gòu)造方法。
54.什么是父類引用指向子類對象?
是java多態(tài)一種特殊的表現(xiàn)形式。創(chuàng)建父類引用,讓該引用指向一個(gè)子類的對象
55.當(dāng)父類引用指向子類對象的時(shí)候,子類重寫了父類方法和屬性,那么當(dāng)訪問屬性的時(shí)候,訪問是誰的屬性?調(diào)用方法時(shí),調(diào)用的是誰的方法?
子類重寫了父類方法和屬性,訪問的是父類的屬性,調(diào)用的是子類的方法
56.Super與this表示什么?
Super表示當(dāng)前類的父類對象 This表示當(dāng)前類的對象57.抽象的關(guān)鍵字是什么?
Abstract
58.抽象類必須要有抽象方法嗎
不是必須。抽象類可以沒有抽象方法。
59.如果一個(gè)類中有抽象方法,那么這個(gè)一定是抽象類?
包含抽象方法的類一定是抽象類
60.抽象類可以使用final修飾嗎?
不可以。定義抽象類就是讓其他繼承的,而final修飾類表示該類不能被繼承,與抽象類的理念違背了
61.普通類與抽象類有什么區(qū)別?
普通類不能包含抽象方法,抽象類可以包含抽象方法 抽象類不能直接實(shí)例化,普通類可以直接實(shí)例化62.什么是接口?
接口就是某個(gè)事物對外提供的一些功能的聲明,是一種特殊的java類
63.JAVA為什么需要接口?
接口彌補(bǔ)了java單繼承的缺點(diǎn)
64.接口有什么特點(diǎn)?
接口中聲明全是public static final修飾的常量 接口中所有方法都是抽象方法 接口是沒有構(gòu)造方法的 接口也不能直接實(shí)例化 接口可以多繼承65.接口與抽象類有什么區(qū)別?
抽象類有構(gòu)造方法,接口沒有構(gòu)造方法 抽象類只能單繼承,接口可以多繼承 抽象類可以有普通方法,接口中的所有方法都是抽象方法 接口的屬性都是public static final修飾的,而抽象的不是66.Java中異常分為哪兩種?
編譯時(shí)異常 運(yùn)行時(shí)異常67.說幾個(gè)常見的編譯時(shí)異常類?
NullPointerException:空指針異常 ArrayIndexOutOfBoundsException:數(shù)組下標(biāo)越界 NumberFormatException:數(shù)字轉(zhuǎn)換異常 IllegalArgumentException:參數(shù)不匹配異常 InstantiationException:對象初始化異常 ArithmeticException:算術(shù)異常68.異常的處理機(jī)制有幾種?
異常捕捉:try…catch…finally,異常拋出:throws。
69.如何自定義一個(gè)異常
繼承一個(gè)異常類,通常是RumtimeException或者Exception
70.在異常捕捉時(shí),如果發(fā)生異常,那么try.catch.finally塊外的return語句會(huì)執(zhí)行嗎?
會(huì)執(zhí)行,如果有finally,在finally之后被執(zhí)行,如果沒有finally,在catch之后被執(zhí)行
71.Try.catch.finally是必須要存在的嗎?
Try塊必須存在,catch和finally可以不存在,但不能同時(shí)不存在
72.Thow與thorws區(qū)別
Throw寫在代碼塊內(nèi),throw后面跟的是一個(gè)具體的異常實(shí)例 Throw寫在方法前面后面,throws后面跟的是異常類,異常類可以出現(xiàn)多個(gè)73.Error與Exception區(qū)別?
Error和Exception都是java錯(cuò)誤處理機(jī)制的一部分,都繼承了Throwable類。
Exception表示的異常,異常可以通過程序來捕捉,或者優(yōu)化程序來避免。
Error表示的是系統(tǒng)錯(cuò)誤,不能通過程序來進(jìn)行錯(cuò)誤處理。
74.使用Log4j對程序有影響嗎?
有,log4j是用來日志記錄的,記錄一些關(guān)鍵敏感的信息,通常會(huì)將日志記錄到本地文件或者數(shù)據(jù)庫中。記錄在本地文件中,會(huì)有頻繁的io操作,會(huì)耗費(fèi)一些系統(tǒng)資源。記錄在數(shù)據(jù)庫中,會(huì)頻繁地操作數(shù)據(jù)庫表,對系統(tǒng)性能也有一定的影響。但是為了程序安全以及數(shù)據(jù)的恢復(fù)或者bug的跟蹤,這點(diǎn)資源消耗是可以承受的。
75.Log4j日志有幾個(gè)級別?
由低到高:debug、info、wran、error
76.除了使用new創(chuàng)建對象之外,還可以用什么方法創(chuàng)建對象?
Java反射
77.Java反射創(chuàng)建對象效率高還是通過new創(chuàng)建對象的效率高?
通過new創(chuàng)建對象的效率比較高。通過反射時(shí),先找查找類資源,使用類加載器創(chuàng)建,過程比較繁瑣,所以效率較低
78.Java中集合框架的有幾個(gè)?
Coillection、Map。
79.Collection接口下有那些集合框架?
List:線性表、Set:無序集合。
80.List接口有什么特點(diǎn)?
順序存儲(chǔ)、可以有重復(fù)值。
81.Set接口有什么特點(diǎn)
無須存儲(chǔ)、不能有重復(fù)值。
82.ArrayList與LinkedList有什么區(qū)別?
ArrayList與LinkedList都實(shí)現(xiàn)了List接口。 ArrayList是線性表,底層是使用數(shù)組實(shí)現(xiàn)的,它在尾端插入和訪問數(shù)據(jù)時(shí)效率較高, Linked是雙向鏈表,他在中間插入或者頭部插入時(shí)效率較高,在訪問數(shù)據(jù)時(shí)效率較低83.Array與ArrayList有什么不一樣?
Array與ArrayList都是用來存儲(chǔ)數(shù)據(jù)的集合。ArrayList底層是使用數(shù)組實(shí)現(xiàn)的,但是arrayList對數(shù)組進(jìn)行了封裝和功能擴(kuò)展,擁有許多原生數(shù)組沒有的一些功能。我們可以理解成ArrayList是Array的一個(gè)升級版。
84.Map有什么特點(diǎn)
以鍵值對存儲(chǔ)數(shù)據(jù) 元素存儲(chǔ)循序是無須的 不允許出現(xiàn)重復(fù)鍵85.JDBC操作的步驟
加載數(shù)據(jù)庫驅(qū)動(dòng)類 打開數(shù)據(jù)庫連接 執(zhí)行sql語句 處理返回結(jié)果 關(guān)閉資源86.在使用jdbc的時(shí)候,如何防止出現(xiàn)sql注入的問題。
使用PreparedStatement類,而不是使用Statement類
87.怎么在JDBC內(nèi)調(diào)用一個(gè)存儲(chǔ)過程
使用CallableStatement
88.是否了解連接池,使用連接池有什么好處?
數(shù)據(jù)庫連接是非常消耗資源的,影響到程序的性能指標(biāo)。連接池是用來分配、管理、釋放數(shù)據(jù)庫連接的,可以使應(yīng)用程序重復(fù)使用同一個(gè)數(shù)據(jù)庫連接,而不是每次都創(chuàng)建一個(gè)新的數(shù)據(jù)庫連接。通過釋放空閑時(shí)間較長的數(shù)據(jù)庫連接避免數(shù)據(jù)庫因?yàn)閯?chuàng)建太多的連接而造成的連接遺漏問題,提高了程序性能。
89.你所了解的數(shù)據(jù)源技術(shù)有那些?使用數(shù)據(jù)源有什么好處?
Dbcp,c3p0等,用的最多還是c3p0,因?yàn)閏3p0比dbcp更加穩(wěn)定,安全;通過配置文件的形式來維護(hù)數(shù)據(jù)庫信息,而不是通過硬編碼。當(dāng)連接的數(shù)據(jù)庫信息發(fā)生改變時(shí),不需要再更改程序代碼就實(shí)現(xiàn)了數(shù)據(jù)庫信息的更新。
90.Java的io流分為哪兩種?
按功能來分
輸入流(input),輸出流(output)按類型來分
字節(jié)流,字符流91.常用io類有那些?
File FileInputSteam,FileOutputStream BufferInputStream,BufferedOutputSream PrintWrite FileReader,FileWriter BufferReader,BufferedWriter ObjectInputStream,ObjectOutputSream92.字節(jié)流與字符流的區(qū)別
以字節(jié)為單位輸入輸出數(shù)據(jù),字節(jié)流按照8位傳輸 以字符為單位輸入輸出數(shù)據(jù),字符流按照16位傳輸93.final、finalize()、finally
性質(zhì)不同
作用
94.抽象類和接口的區(qū)別?
抽象類:
接口:
95.線程同步的方法
96.線程與進(jìn)程的區(qū)別
進(jìn)程是系統(tǒng)進(jìn)行資源分配和調(diào)度的一個(gè)獨(dú)立單位,線程是CPU調(diào)度和分派的基本單位
進(jìn)程和線程的關(guān)系:
線程與進(jìn)程的區(qū)別:
97.&和&&的區(qū)別
&是位運(yùn)算符。&&是布爾邏輯運(yùn)算符,在進(jìn)行邏輯判斷時(shí)用&處理的前面為false后面的內(nèi)容仍需處理,用&&處理的前面為false不再處理后面的內(nèi)容。
98.重載與重寫
重載的方法是可以改變返回值的類型。
99.如果對象的引用被置為null,垃圾收集器是否會(huì)立即釋放對象占用的內(nèi)存?
不會(huì),在下一個(gè)垃圾回收周期中,這個(gè)對象將是可被回收的。
100.串行(serial)收集器和吞吐量(throughput)收集器的區(qū)別是什么?
吞吐量收集器使用并行版本的新生代垃圾收集器,它用于中等規(guī)模和大規(guī)模數(shù)據(jù)的應(yīng)用程序。而串行收集器對大多數(shù)的小應(yīng)用(在現(xiàn)代處理器上需要大概100M左右的內(nèi)存)就足夠了。
?
?
我有一個(gè)微信公眾號,經(jīng)常會(huì)分享一些Java技術(shù)相關(guān)的干貨;如果你喜歡我的分享,可以用微信搜索“Java團(tuán)長”或者“javatuanzhang”關(guān)注。
?
參考:
- 收集了50道基礎(chǔ)的java面試題
- JAVA基礎(chǔ)面試題(經(jīng)典)
- 2017常見的50道java基礎(chǔ)面試題整理(附答案)
轉(zhuǎn)載于:https://www.cnblogs.com/java1024/p/8608063.html
總結(jié)
以上是生活随笔為你收集整理的100道Java基础面试题收集整理(附答案)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 分布式理论:CAP是三选二吗?
- 下一篇: Java面试要点