最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

史上最全Java面試題合集400道(面試30k程序員必備)

2021-03-22 13:48 作者:千鋒教育  | 我要投稿

史上最全Java面試題合集400道(面試30k程序員必備)

1. final關鍵字的作用?

被final修飾的類不可以被繼承,被final修飾的方法不可以被重寫,被final修飾的變量不可以被改變.如果修飾引用,那么表示引用不可變,引用指向的內容可變.被final修飾的方法,JVM會嘗試將其內聯(lián),以提高運行效率,被final修飾的常量,在編譯階段會存入常量池中.

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

聲明方法的存在而不去實現(xiàn)它的類被叫做抽象類(abstract class),它用于要創(chuàng)建一個體現(xiàn)某些基本行為的類,并為該類聲明方法,但不能在該類中實現(xiàn)該類的情況。不能創(chuàng)建abstract類的實例。然而可以創(chuàng)建一一個變量, 其類型是-一個抽象類,并讓它指向具體子類的一個實例。不能有抽象構造函數(shù)或抽象靜態(tài)方法。Abstract類的子類為它們父類中的所有抽象方法提供實現(xiàn),否則它們也是抽象類為。取而代之,在子類中實現(xiàn)該方法。知道其行為的其它類可以在類中實現(xiàn)這些方法。

接口(interface)是抽象類的變體。在接口中,所有方法都是抽象的。多繼承性可通過實現(xiàn)這樣的接口而獲得。接口中的所有方法都是抽象的,沒有一個有程序體。接口只可以定義static final 成員變量。接口的實現(xiàn)與子類相似,除了該實現(xiàn)類不能從接口定義中繼承行為。當類實現(xiàn)特殊接口時,它定義(即將程序體給予)所有這種接口的方法。然后,它可以在實現(xiàn)了該接口的類的任何對象上調用接口的方法。由于有抽象類,它允許使用接口名作為引用變量的類型。通常的動態(tài)聯(lián)編將生效。引用可以轉換到接口類型或從接口類型轉換,instanceof運算符可以用來決定某對象的類是否實現(xiàn)了接口。

3. Java 集合類: list、 set、queue、 map、stack 的特點與用法?

Map

Map是鍵值對,鍵Key是唯一不能重復的, -一個鍵對應一一個值, 值可以重復。

TreeMap可以保證順序,HashMap不保證順序,即為無序的,Map 中可以將Key和Value單

獨抽取出來,其中KeySet()方法可以將所有的keys抽取成- -個 Set,而Values() 方法可以

將map中所有的values抽取成一個集合。

Set

不包含重復元素的集合,set 中最多包含一個null元素,只能用Iterator實現(xiàn)單項遍歷,

Set中沒有同步方法。

List

有序的可重復集合,可以在任意位置增加刪除元素,用Iterator實現(xiàn)單向遍歷,也可用

ListIterator實現(xiàn)雙向遍歷。

Queue

Queue遵從先進先出原則,使用時盡量避免add()和remove()方法,而是使用offer ()來添加

元素,使用poll()來移除元素,它的優(yōu)點是可以通過返回值來判斷是否成功,LinkedList

實現(xiàn)了Queue接口,Queue 通常不允許插入null元素。

Stack

Stack遵從后進先出原則,Stack 繼承自Vector,它通過五個操作對類Vector進行擴展,允許將向量視為堆棧,它提供了通常的push和pop操作,以及取堆棧頂點的peek()方法、

測試堆棧是否為空的empty方法等。

用法

如果涉及堆棧,隊列等操作,建議使用List。

對于快速插入和刪除元素的,建議使用LinkedList.

如果需要快速隨機訪問元素的,建議使用ArrayList.

4.說出ArrayList, Vector, LinkedList 的存儲性能和特性?

ArrayList和Vector都是使用數(shù)組方式存儲數(shù)據(jù),此數(shù)組元素數(shù)大于實際存儲的數(shù)據(jù)以便

增加和插入元素,它們都允許直接按序號索引元素,但是插入元素要涉及數(shù)組元素移動等內

存操作,所以索引數(shù)據(jù)快而插入數(shù)據(jù)慢,Vector由于使用了synchronized 方法(線程安全), .

通常性能上較ArrayList差,而LinkedList使用雙向鏈表實現(xiàn)存儲,按序號索引數(shù)據(jù)需要

進行前向或后向遍歷,但是插入數(shù)據(jù)時只需要記錄本項的前后項即可,所以插入速度較快。.

5.內存泄漏和內存溢出?

內存泄漏(memoryleak),是指應用程序在申請內存后,無法釋放已經申請的內存空間,一

次內存泄漏危害可以忽略,但如果任其發(fā)展最終會導致內存溢出Coutofmemory) 。如讀取

文件后流要進行及時的關閉以及對數(shù)據(jù)庫連接的釋放。

內存溢出(outofmemory)是指應用程序在申請內存時,沒有足夠的內存空間供其使用。如我

們在項目中對于大批量數(shù)據(jù)的導入,采用分批量提交的方式。

6.反射中,Class. forName ()和ClassLoader. loadClass ()的區(qū)別?

lass.forName(lassName)方法,

內.部實際調用的方法是

Class.forName(className,true,lassloader);

第2個boolean參數(shù)表示類是否需要初始化,Class.forNamel(lassName)默認 是需要初始化,

一旦初始化,就會觸發(fā)目標對象的static 塊代碼執(zhí)行,static 參數(shù)也也會被再次初始

化,CassaderladlasslassName) 方法,內部實際調用的方法是

Classloader.loadClass(className,false);第2個boolean 參數(shù),表示目標對象是否進行鏈接,

false表示不進行鏈接,由上面介紹可以,不進行鏈接意味著不進行包括初始化等一- 些列步

驟,那么靜態(tài)塊和靜態(tài)對象就不會得到執(zhí)行

7. Int 和Integer的區(qū)別?

Integer是int的包裝類型,在拆箱和裝箱中,二者自動轉換. int是基本類型,直接存數(shù)值;

而integer是對象;用一個引用指向這個對象.由于Integer 是一一個對象, 在JVM中對象需要

一定的數(shù)據(jù)結構進行描述,相比int而言,其占用的內存更大- -些.

8. String、 StringBuilder、 StringBuffer 區(qū)別?

String? ?字符串常量? 不可變? ?使用字符串 拼接時是不同的2個空間

StringBuffer?字 符串變量??可變.? ?線程安全字 符串拼接直接在字符串后追加

StringBuilder?字符串變量??可變? ?非線程安全字符串拼接直接在字符申后追加

1.StringBuilder執(zhí)行效率高于StringBuffer高于String.

2.String是一個常量,是不可變的,所以對于每一次+ =賦值都會創(chuàng)建一個新的對象,

StringBuffer和StringBuilder都是可變的,當進行字符串拼接時采用append方

法,在原來的基礎上進行追加,所以性能比String要高,又因為StringBuffer是

線程安全的而StringBuilder是線程非安全的,所以StringBuilder的效率高于

StringBuffer.

3.對于大數(shù)據(jù)量的字符串的拼接,采用StringBuffer ,StringBuilder.

9. Hashtable 和Hashmap的區(qū)別?

1、HashTable 線程安全,HashMap 非線程安全

2、Hashtable 不允許null 值(key 和value 都不可以),HashMap 允許null 值(key和

value都可以)。

3、兩者的遍歷方式大同小異,Hashtable僅僅比HashMap多-一個elements方法。

10.說幾個常見的編譯時異常?

SQLException提供有關數(shù)據(jù)庫訪問錯誤或其他錯誤的信息的異常。

I0exception表示發(fā)生了某種I / 0異常的信號。此類是由失敗或中斷的1 / 0操作產生的

一般異常類

FileNotFoundException當試圖打開指定路徑名表示的文件失敗時,拋出此異常。

ClassNotFoundException找不到具有指定名稱的類的定義。

EOFException當輸入過程中意外到達文件或流的末尾時,拋出此異常。


史上最全Java面試題合集400道(面試30k程序員必備)的評論 (共 條)

分享到微博請遵守國家法律
富民县| 朝阳县| 湘潭县| 手游| 延长县| 张掖市| 泰来县| 清原| 廊坊市| 阳朔县| 石狮市| 济南市| 丰都县| 博罗县| 德令哈市| 秭归县| 九江县| 剑川县| 衢州市| 镇平县| 南宁市| 商城县| 永福县| 黄平县| 于都县| 三台县| 威信县| 班戈县| 武冈市| 依安县| 浙江省| 怀化市| 正阳县| 佳木斯市| 九龙坡区| 台南县| 化德县| 萨迦县| 洛阳市| 安塞县| 延安市|