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