日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

一些java面试高频题

發布時間:2025/4/16 编程问答 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一些java面试高频题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.說出ArrayList,Vector, LinkedList的存儲性能和特性?
答案:ArrayList和Vector都是使用數組方式存儲數據,此數組元素數大于實際存儲的數據以便增加和插入元素,它們都允許直接按序號索引元素,但是插入元素要涉及數組元素移動等內存操作,所以索引數據快而插入數據慢,Vector由于使用了synchronized方法(線程安全),通常性能上較ArrayList差,而LinkedList使用雙向鏈表實現存儲,按序號索引數據需要進行前向或后向遍歷,但是插入數據時只需要記錄本項的前后項即可,所以插入速度較快。

2.errorpage的作用
errorPage作用:當JSP頁面可能出現異常時,可以告知容器將出現的異常拋到errorPage指定的頁面進行處理。
errorPage應用
在某一個可能出現異常的頁面,通過page指令設置errorPage屬性。如下:
1
<%@ page errorPage=“a.jsp”%>
然后在a.jsp文件中,添加isErrorPage屬性,并且設置屬性值為true,進行異常的處理:
1
<%@ page isErrorPage=“true”%>
最后在a.jsp文件中就可以使用隱含對象exception進行異常的處理啦。

3.Java中sleep()與wait()區別
1、每個對象都有一個鎖來控制同步訪問,Synchronized關鍵字可以和對象的鎖交互,來實現同步方法或同步塊。sleep()方法正在執行的線程主動讓出CPU(然后CPU就可以去執行其他任務),在sleep指定時間后CPU再回到該線程繼續往下執行(注意:sleep方法只讓出了CPU,而并不會釋放同步資源鎖!!!);wait()方法則是指當前線程讓自己暫時退讓出同步資源鎖,以便其他正在等待該資源的線程得到該資源進而運行,只有調用了notify()方法,之前調用wait()的線程才會解除wait狀態,可以去參與競爭同步資源鎖,進而得到執行。(注意:notify的作用相當于叫醒睡著的人,而并不會給他分配任務,就是說notify只是讓之前調用wait的線程有權利重新參與線程的調度);

2、sleep()方法可以在任何地方使用;wait()方法則只能在同步方法或同步塊中使用;

3、sleep()是線程線程類(Thread)的方法,調用會暫停此線程指定的時間,但監控依然保持,不會釋放對象鎖,到時間自動恢復;wait()是Object的方法,調用會放棄對象鎖,進入等待隊列,待調用notify()/notifyAll()喚醒指定的線程或者所有線程,才會進入鎖池,再次獲得對象鎖才會進入運行狀態;
原文:https://blog.csdn.net/u012050154/article/details/50903326

4.哈希表
設哈希表長為11,哈希函數為Hash (key)=key%11。存在關鍵碼{7,29,22,16,92,44,8,19},采用線性探測法處理沖突,建立的hash表為
采用開放定址法處理沖突中的二次探測再散列(也即是題目中的二元探測法),哈希函數變為

對于43,代入公式為Hash(43) = 43 % 11 = 10, 則地址為10;

對于7,代入公式為Hash(7) = 7 % 11 = 7,則地址為7;

對于29,代入公式為Hash(29) = 29 % 11 = 7, 與7沖突,則采用二次探測進行消除沖突, 繼續(7 + 1) % 11 = 8,沒有沖突,則地址為8;

對于22,代入公式Hash(22) = 22 % 11 = 0, 則地址為0;

對于16,代入公式Hash(16) = 16 % 11 = 5, 則地址為5;

對于92,代入公式Hash(92) = 92 % 11 = 4,則地址為4;

對于44,代入公式Hash(44) = 44 % 11 = 0, 與22的地址沖突,則繼續(0 + 1) % 11 = 1,沒有沖突,則地址為1;

對于8, 代入公式Hash(8) = 8 % 11 = 8, 與29有沖突,則繼續(8 + 1) % 11 = 9, 沒有沖突,則地址為9;

對于19,代入公式Hash(19) = 19 % 11 = 8. 與 29有沖突,則繼續(8 + 1) * 11 = 9, 與8有沖突,繼續(8 - 1) % 11 = 7, 與7有沖突,則繼續(8 + 4) % 11 = 1, 與44有沖突,則繼續(8 - 4) % 11 = 4, 與92有沖突,則繼續(8 + 9) % 11 = 6, 沒有沖突,則地址為6。

答案為:

012345678910
2244 921619729843


原文:https://blog.csdn.net/sinat_34530053/article/details/93475097

5.二叉樹
二叉樹:A(B(D,E(H(J,K(L,M(,N))))),C(F,G(,I)))
為:

詳細二叉樹,樹,森林的轉換見https://blog.csdn.net/qq_42147998/article/details/97393197

6.native關鍵字
native是調用操作系統的底層函數,而這些函數是由C和C++實現的。
native詳解:https://www.cnblogs.com/KingIceMou/p/7239668.html
7.java常用的字節流和處理流
按照流是否直接與特定的地方(如磁盤、內存、設備等)相連,分為節點流和處理流兩類。

節點流:可以從或向一個特定的地方(節點)讀寫數據。如FileReader.
處理流:是對一個已存在的流的連接和封裝,通過所封裝的流的功能調用實現數據讀寫。如 BufferedReader.處理流的構造方法總是要帶一個其他的流對象做參數。一個流對象經過其他流的多次包裝,稱為流的鏈接。

JAVA常用的節點流

1.文 件 FileInputStream FileOutputStrean FileReader FileWriter 文件進行處理的節點流。
2.字符串 StringReader StringWriter 對字符串進行處理的節點流。
3.數 組 ByteArrayInputStream ByteArrayOutputStream CharArrayReader CharArrayWriter 對數組進行處理的節點流(對應的不再是文件,而是內存中的一個數組)。
4.管 道 PipedInputStream PipedOutputStream PipedReader PipedWriter對管道進行處理的節點流。

常用處理流(關閉處理流使用關閉里面的節點流)

1.緩沖流:BufferedInputStrean BufferedOutputStream BufferedReader BufferedWriter 增加緩沖功能,避免頻繁讀寫硬盤。
2.轉換流:InputStreamReader OutputStreamReader 實現字節流和字符流之間的轉換。
3.數據流 DataInputStream DataOutputStream 等-提供將基礎數據類型寫入到文件中,或者讀取出來.
流的關閉順序
一般情況下是:先打開的后關閉,后打開的先關閉
另一種情況:看依賴關系,如果流a依賴流b,應該先關閉流a,再關閉流b。例如,處理流a依賴節點流b,應該先關閉處理流a,再關閉節點流b
可以只關閉處理流,不用關閉節點流。處理流關閉的時候,會調用其處理的節點流的關閉方法。

總結

以上是生活随笔為你收集整理的一些java面试高频题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。