- 相關(guān)推薦
企業(yè)Java面試筆試題范文
在平時(shí)的學(xué)習、工作中,我們都不可避免地要接觸到試題,借助試題可以檢驗考試者是否已經(jīng)具備獲得某種資格的基本能力。什么樣的試題才能有效幫助到我們呢?以下是小編為大家收集的企業(yè)Java面試筆試題范文,希望對大家有所幫助。

企業(yè)Java面試筆試題 1
1、IP地址的編碼分為哪倆部分?
IP地址由兩部分組成,網(wǎng)絡(luò )號和主機號。不過(guò)是要和“子網(wǎng)掩碼”按位與上之后才能區分哪些是網(wǎng)絡(luò )位哪些是主機位。
2、用戶(hù)輸入M,N值,從1至N開(kāi)始順序循環(huán)數數,每數到M輸出該數值,直至全部輸出。寫(xiě)出C程序。
循環(huán)鏈表,用取余操作做
3、不能做switch()的參數類(lèi)型是:
switch的參數不能為實(shí)型。
4、 static有什么用途?(請至少說(shuō)明兩種)
a、限制變量的作用域
b、設置變量的存儲域
7、引用與指針有什么區別?
a、引用必須被初始化,指針不必。
b、引用初始化以后不能被改變,指針可以改變所指的對象。
c、不存在指向空值的`引用,但是存在指向空值的指針。
8、描述實(shí)時(shí)系統的基本特性
在特定時(shí)間內完成特定的任務(wù),實(shí)時(shí)性與可靠性
9、全局變量和局部變量在內存中是否有區別?如果有,是什么區別?
全局變量?jì)Υ嬖陟o態(tài)數據庫,局部變量在堆棧
10、什么是平衡二叉樹(shù)?
左右子樹(shù)都是平衡二叉樹(shù)且左右子樹(shù)的深度差值的絕對值不大于1
11、堆棧溢出一般是由什么原因導致的?
沒(méi)有回收垃圾資源
12、什么函數不能聲明為虛函數?
constructor
13、冒泡排序算法的時(shí)間復雜度是什么?
O(n^2)
14、寫(xiě)出float x與“零值”比較的if語(yǔ)句。
if(x>0.000001&&x<—0.000001)
16、Internet采用哪種網(wǎng)絡(luò )協(xié)議?該協(xié)議的主要層次結構?
tcp/ip應用層/傳輸層/網(wǎng)絡(luò )層/數據鏈路層/物理層
17、Internet物理地址和IP地址轉換采用什么協(xié)議?
ARP(Address Resolution Protocol)(地址解析協(xié)議)
企業(yè)Java面試筆試題 2
1、如果main方法被聲明為private會(huì )怎樣?
能正常編譯,但運行的時(shí)候會(huì )提示”main方法不是public的”。
2、Java里的傳引用和傳值的區別是什么?
傳引用是指傳遞的是地址而不是值本身,傳值則是傳遞值的一份拷貝。
3、如果要重寫(xiě)一個(gè)對象的equals方法,還要考慮什么?
hashCode。
4、Java的”一次編寫(xiě),處處運行”是如何實(shí)現的?
Java程序會(huì )被編譯成字節碼組成的class文件,這些字節碼可以運行在任何平臺,因此Java是平臺的獨立。
經(jīng)典Java基礎面試題
5、說(shuō)明一下public static void main(String args[])這段聲明里每個(gè)關(guān)鍵字的作用。
public:main方法是Java程序運行時(shí)調用的第一個(gè)方法,因此它必須對Java環(huán)境可見(jiàn)。所以可見(jiàn)性設置為pulic。
static:Java平臺調用這個(gè)方法時(shí)不會(huì )創(chuàng )建這個(gè)類(lèi)的一個(gè)實(shí)例,因此這個(gè)方法必須聲明為static。
void:main方法沒(méi)有返回值。
String是命令行傳進(jìn)參數的類(lèi)型,args是指命令行傳進(jìn)的字符串數組。
6、==與equals的區別
==比較兩個(gè)對象在內存里是不是同一個(gè)對象,就是說(shuō)在內存里的存儲位置一致。兩個(gè)String對象存儲的值是一樣的,但有可能在內存里存儲在不同的'地方。
==比較的是引用而equals方法比較的是內容。public boolean equals(Object obj)這個(gè)方法是由Object對象提供的,可以由子類(lèi)進(jìn)行重寫(xiě)。默認的實(shí)現只有當對象和自身進(jìn)行比較時(shí)才會(huì )返回true,這個(gè)時(shí)候和==是等價(jià)的。String,BitSet,Date,和File都對equals方法進(jìn)行了重寫(xiě),對兩個(gè)String對象而言,值相等意味著(zhù)它們包含同樣的字符序列。對于基本類(lèi)型的包裝類(lèi)來(lái)說(shuō),值相等意味著(zhù)對應的基本類(lèi)型的值一樣。
7、如果去掉了main方法的static修飾符會(huì )怎樣?
程序能正常編譯。運行時(shí)會(huì )拋NoSuchMethodError異常。
8、為什么oracle type4驅動(dòng)被稱(chēng)作瘦驅動(dòng)?
oracle提供了一個(gè)type 4 JDBC驅動(dòng),被稱(chēng)為瘦驅動(dòng)。這個(gè)驅動(dòng)包含了一個(gè)oracle自己完全用Java實(shí)現的一個(gè)TCP/IP的Net8的實(shí)現,因此它是平臺的獨立,可以在運行時(shí)由瀏覽器下載,不依賴(lài)任何客戶(hù)端的oracle實(shí)現?蛻(hù)端連接字符串用的是TCP/IP的地址端口,而不是數據庫名的tnsname。
9、介紹一下finalize方法
final:常量聲明。 finally:處理異常。 finalize:幫助進(jìn)行垃圾回收。
接口里聲明的變量默認是final的。final類(lèi)無(wú)法繼承,也就是沒(méi)有子類(lèi)。這么做是出于基礎類(lèi)型的安全考慮,比如String和Integer。這樣也使得編譯器進(jìn)行一些優(yōu)化,更容易保證線(xiàn)程的安全性。final方法無(wú)法重寫(xiě)。final變量的值不能改變。finalize()方法在一個(gè)對象被銷(xiāo)毀和回收前會(huì )被調用。finally,通常用于異常處理,不管有沒(méi)有異常被拋出都會(huì )執行到。比如,關(guān)閉連接通常放到finally塊中完成。
10、什么是Java API?
Java API是大量軟件組件的集合,它們提供了大量有用的功能,比如GUI組件。
11、GregorianCalendar類(lèi)是什么東西?
GregorianCalendar提供了西方傳統日歷的支持。
12、ResourceBundle類(lèi)是什么?
ResourceBundle用來(lái)存儲指定語(yǔ)言環(huán)境的資源,應用程序可以根據運行時(shí)的語(yǔ)言環(huán)境來(lái)加載這些資源,從而提供不同語(yǔ)言的展示。
13、為什么Java里沒(méi)有全局變量?
全局變量是全局可見(jiàn)的,Java不支持全局可見(jiàn)的變量,因為:全局變量破壞了引用透明性原則。全局變量導致了命名空間的沖突。
14、如何將String類(lèi)型轉化成Number類(lèi)型?
Integer類(lèi)的valueOf方法可以將String轉成Number。
15、SimpleTimeZone類(lèi)是什么?
SimpleTimeZone提供公歷日期支持。
16、while循環(huán)和do循環(huán)有什么不同?
while結構在循環(huán)的開(kāi)始判斷下一個(gè)迭代是否應該繼續。do/while結構在循環(huán)的結尾來(lái)判斷是否將繼續下一輪迭代。do結構至少會(huì )執行一次循環(huán)體。
17、Locale類(lèi)是什么?
Locale類(lèi)用來(lái)根據語(yǔ)言環(huán)境來(lái)動(dòng)態(tài)調整程序的輸出。
18、面向對象編程的原則是什么?
主要有三點(diǎn),多態(tài),繼承和封裝。
19、介紹下繼承的原則
繼承使得一個(gè)對象可以獲取另一個(gè)對象的屬性。使用繼承可以讓已經(jīng)測試完備的功能得以復用,并且可以一次修改,所有繼承的地方都同時(shí)生效。
20、什么是隱式的類(lèi)型轉化?
隱式的類(lèi)型轉化就是簡(jiǎn)單的一個(gè)類(lèi)型賦值給另一個(gè)類(lèi)型,沒(méi)有顯式的告訴編譯器發(fā)生了轉化。并不是所有的類(lèi)型都支持隱式的類(lèi)型轉化。
21、sizeof是Java的關(guān)鍵字嗎?
不是。
22、native方法是什么?
native方法是非Java代碼實(shí)現的方法。
23、在System。out。println()里面,System,out,println分別是什么?
System是系統提供的預定義的final類(lèi),out是一個(gè)PrintStream對象,println是out對象里面一個(gè)重載的方法。
24、封裝,繼承和多態(tài)是什么?
簡(jiǎn)單來(lái)說(shuō),多態(tài)是指一個(gè)名字多種實(shí)現。多態(tài)使得一個(gè)實(shí)體通過(guò)一個(gè)通用的方式來(lái)實(shí)現不同的操作。具體的操作是由實(shí)際的實(shí)現來(lái)決定的。
多態(tài)在Java里有三種表現方式:方法重載通過(guò)繼承實(shí)現方法重寫(xiě)通過(guò)Java接口進(jìn)行方法重寫(xiě)。
25、顯式的類(lèi)型轉化是什么?
顯式的類(lèi)型轉化是明確告訴了編譯器來(lái)進(jìn)行對象的轉化。
26、什么是Java虛擬機?
Java虛擬機是能移植到不同硬件平臺上的軟件系統。
27、類(lèi)型向下轉換是什么?
向下轉換是指由一個(gè)通用類(lèi)型轉換成一個(gè)具體的類(lèi)型,在繼承結構上向下進(jìn)行。
28、Java的訪(fǎng)問(wèn)修飾符是什么?
訪(fǎng)問(wèn)權限修飾符是表明類(lèi)成員的訪(fǎng)問(wèn)權限類(lèi)型的關(guān)鍵字。使用這些關(guān)鍵字來(lái)限定程序的方法或者變量的訪(fǎng)問(wèn)權限。它們包含:
public:所有類(lèi)都可以訪(fǎng)問(wèn)protected:同一個(gè)包內以及所有子類(lèi)都可以訪(fǎng)問(wèn)private:只有歸屬的類(lèi)才能訪(fǎng)問(wèn)默認:歸屬類(lèi)及相同包下的子類(lèi)可以訪(fǎng)問(wèn)。
29、所有類(lèi)的父類(lèi)是什么?
Object。
30、Java的基本類(lèi)型有哪些?
byte,char,short,int,long,float,double,boolean。
企業(yè)Java面試筆試題 3
1、Java集合框架是什么?說(shuō)出一些集合框架的優(yōu)點(diǎn)?
每種編程語(yǔ)言中都有集合,最初的Java版本包含幾種集合類(lèi):Vector、Stack、HashTable和Array。
隨著(zhù)集合的廣泛使用,Java1.2提出了囊括所有集合接口、實(shí)現和算法的集合框架。在保證線(xiàn)程安全的情況下使用泛型和并發(fā)集合類(lèi),Java已經(jīng)經(jīng)歷了很久。它還包括在Java并發(fā)包中,阻塞接口以及它們的實(shí)現。
集合框架的部分優(yōu)點(diǎn)如下:
。1)使用核心集合類(lèi)降低開(kāi)發(fā)成本,而非實(shí)現我們自己的集合類(lèi)。
。2)隨著(zhù)使用經(jīng)過(guò)嚴格測試的集合框架類(lèi),代碼質(zhì)量會(huì )得到提高。
。3)通過(guò)使用JDK附帶的集合類(lèi),可以降低代碼維護成本。
。4)復用性和可操作性。
2、集合框架中的泛型有什么優(yōu)點(diǎn)?
Java1.5引入了泛型,所有的集合接口和實(shí)現都大量地使用它。泛型允許我們?yōu)榧咸峁┮粋(gè)可以容納的對象類(lèi)型,因此,如果你添加其它類(lèi)型的任何元素,它會(huì )在編譯時(shí)報錯。這避免了在運行時(shí)出現ClassCastException,因為你將會(huì )在編譯時(shí)得到報錯信息。
泛型也使得代碼整潔,我們不需要使用顯式轉換和instanceOf操作符。它也給運行時(shí)帶來(lái)好處,因為不會(huì )產(chǎn)生類(lèi)型檢查的字節碼指令。
3、Java集合框架的基礎接口有哪些?
Collection為集合層級的根接口。一個(gè)集合代表一組對象,這些對象即為它的元素。Java平臺不提供這個(gè)接口任何直接的實(shí)現。
Set是一個(gè)不能包含重復元素的集合。這個(gè)接口對數學(xué)集合抽象進(jìn)行建模,被用來(lái)代表集合,就如一副牌。
List是一個(gè)有序集合,可以包含重復元素。你可以通過(guò)它的索引來(lái)訪(fǎng)問(wèn)任何元素。List更像長(cháng)度動(dòng)態(tài)變換的數組。
Map是一個(gè)將key映射到value的對象。一個(gè)Map不能包含重復的key:每個(gè)key最多只能映射一個(gè)value。
一些其它的接口有Queue、Dequeue、SortedSet、SortedMap和ListIterator。
4、為何Collection不從Cloneable和Serializable接口繼承?
Collection接口指定一組對象,對象即為它的元素。如何維護這些元素由Collection的具體實(shí)現決定。
例如,一些如List的Collection實(shí)現允許重復的元素,而其它的如Set就不允許。很多Collection實(shí)現有一個(gè)公有的clone方法。然而,把它放到集合的所有實(shí)現中也是沒(méi)有意義的。這是因為Collection是一個(gè)抽象表現。重要的是實(shí)現。
當與具體實(shí)現打交道的時(shí)候,克隆或序列化的語(yǔ)義和含義才發(fā)揮作用。所以,具體實(shí)現應該決定如何對它進(jìn)行克隆或序列化,或它是否可以被克隆或序列化。
在所有的`實(shí)現中授權克隆和序列化,最終導致更少的靈活性和更多的限制。特定的實(shí)現應該決定它是否可以被克隆和序列化。
5、為何Map接口不繼承Collection接口?
盡管Map接口和它的實(shí)現也是集合框架的一部分,但Map不是集合,集合也不是Map。因此,Map繼承Collection毫無(wú)意義,反之亦然。
如果Map繼承Collection接口,那么元素去哪兒?Map包含key—value對,它提供抽取key或value列表集合的方法,但是它不適合“一組對象”規范。
6、Iterator是什么?
Iterator接口提供遍歷任何Collection的接口。我們可以從一個(gè)Collection中使用迭代器方法來(lái)獲取迭代器實(shí)例。迭代器取代了Java集合框架中的Enumeration。迭代器允許調用者在迭代過(guò)程中移除元素。
7、Enumeration和Iterator接口的區別?
Enumeration的速度是Iterator的兩倍,也使用更少的內存。Enumeration是非;A的,也滿(mǎn)足了基礎的需要。但是,與Enumeration相比,Iterator更加安全,因為當一個(gè)集合正在被遍歷的時(shí)候,它會(huì )阻止其它線(xiàn)程去修改集合。
迭代器取代了Java集合框架中的Enumeration。迭代器允許調用者從集合中移除元素,而Enumeration不能做到。為了使它的功能更加清晰,迭代器方法名已經(jīng)經(jīng)過(guò)改善。
8、為何沒(méi)有像Iterator。add()這樣的方法,向集合中添加元素?
語(yǔ)義不明,已知的是,Iterator的協(xié)議不能確保迭代的次序。然而要注意,ListIterator沒(méi)有提供一個(gè)add操作,它要確保迭代的順序。
9、為何迭代器沒(méi)有一個(gè)方法可以直接獲取下一個(gè)元素,而不需要移動(dòng)游標?
它可以在當前Iterator的頂層實(shí)現,但是它用得很少,如果將它加到接口中,每個(gè)繼承都要去實(shí)現它,這沒(méi)有意義。
10、Iterater和ListIterator之間有什么區別?
。1)我們可以使用Iterator來(lái)遍歷Set和List集合,而ListIterator只能遍歷List。
。2)Iterator只可以向前遍歷,而LIstIterator可以雙向遍歷。
。3)ListIterator從Iterator接口繼承,然后添加了一些額外的功能,比如添加一個(gè)元素、替換一個(gè)元素、獲取前面或后面元素的索引位置。
企業(yè)Java面試筆試題 4
1、Collection 和 Collections的區別?
Collection是集合的根接口,其下有set及l(fā)ist
Collections是集合的算法。
2、Set里的元素是不能重復的,那么用什么方法來(lái)區分重復與否呢? 是用==還是equals()? 它們有何區別?用contains來(lái)區分是否有重復的對象。還是都不用?
在比較時(shí)先調用hashCode方法,如果不相同,證明不相等。
如果相同,再調用equals方法,如果equals方法相同,證明相等,不相同,證明不相等。
==:主要用在基本數據類(lèi)型及引用
equals:主要是對象或對象引用的比較。
集合中是否包含某一個(gè)元素用contains來(lái)判斷。
3、List,Set,Map是否繼承自Collection接口?
List,set繼承于Collection
Map沒(méi)有繼承于Collection,其相對是獨立的。
屬于Collection類(lèi)型的對象,可以通過(guò)構造函數將一個(gè)集合構造成另外一個(gè)集合。
4、面向對象的特征有哪些方面?
1.抽象:
找共性,將共有的屬性、方法放到父類(lèi)中
2.繼承:
子類(lèi)繼承于父類(lèi),具有父類(lèi)的所有屬性與方法,可以重用,也可以覆蓋。
3.封裝:
一個(gè)類(lèi)包括多個(gè)屬性及方法。
4. 多態(tài)性:
5、String是最基本的數據類(lèi)型嗎?
基本數據類(lèi)型包括byte、int、char、long、float、double、boolean和short。
java.lang.String類(lèi)是final類(lèi)型的,因此不可以繼承這個(gè)類(lèi)、不能修改這個(gè)類(lèi)。為了提高效率節省空間,我們應該用StringBuffer類(lèi)
6、int 和 Integer 有什么區別?
int 是基本數據類(lèi)型,不是對象,占一個(gè)內存空間,沒(méi)有方法。與其同類(lèi)的有long,char,doble
Integer是封裝類(lèi),具有方法及屬性。與其同類(lèi)的有Long,Double.Float
7、運行時(shí)異常與一般異常有何異同?
運行時(shí)異常:JVM拋出的異常,代碼中不用處理。
一般異常:用戶(hù)拋出的異常,如果用throws 聲明了,調用這個(gè)方法的代碼必須對其處理。
8、&和&&的區別?
&:與: 左邊若為false右邊還執行。
&&:短路與,左邊若為false右邊不執行。
9、final,finally,finalize的區別?
final 用于聲明屬性,方法和類(lèi),分別表示屬性不可變,方法不可覆蓋,類(lèi)不可繼承。
finally是異常處理語(yǔ)句結構的一部分,表示總是執行。
finalize是Object類(lèi)的.一個(gè)方法,在垃圾收集器執行的時(shí)候會(huì )調用被回收對象的此方法,可以覆蓋此方法提供垃圾收集時(shí)的其他資源回收,例如關(guān)閉文件等。
10、heap和stack有什么區別?
棧是一種線(xiàn)形集合,其添加和刪除元素的操作應在同一段完成。棧按照后進(jìn)先出的方式進(jìn)行處理。堆是棧的一個(gè)組成元素
11、Static Nested Class 和 Inner Class的不同?
Static Nested Class是被聲明為靜態(tài)(static)的內部類(lèi),它可以不依賴(lài)于外部類(lèi)實(shí)例被實(shí)例化。而通常的內部類(lèi)需要在外部類(lèi)實(shí)例化后才能實(shí)例化。
12、GC是什么? 為什么要有GC?
GC是垃圾收集的意思(Gabage Collection),內存處理是編程人員容易出現問(wèn)題的地方,忘記或者錯誤的內存回收會(huì )導致程序或系統的不穩定甚至崩潰,Java提供的GC功能可以自動(dòng)監測對象是否超過(guò)作用域從而達到自動(dòng)回收內存的目的,Java語(yǔ)言沒(méi)有提供釋放已分配內存的顯示操作方法。
【企業(yè)Java面試筆試題】相關(guān)文章:
JAVA面試筆試題11-15
java英文面試筆試題11-22
java面試筆試題分享11-18
SUN等公司的Java面試題集11-06
IBM、SUN等公司的Java面試題集11-06
Java程序員求職面試題詳解11-06
迅雷JAVA廣州站二筆筆試題目分享11-21
java筆試題及答案08-20