Java筆試題
- 1、Hadoop幾大核心組成別為?
- 2、關于Hadoop,以下說法正確的是?
- 3、Kafka訊息佇列中的broker的作用是?
- 4、Kafka為什么處理速度那么快?
- 5、關于Kafka訊息佇列,下列說法正確的是?
- 6、應用程式的測驗包含?
- 7、關于壓力測驗、負載測驗、性能測驗的關系,說法正確的是?
- 8、以下哪些是性能測驗關注的指標?
- 9、回應時間跟哪些因素有關?
- 10、介面測驗的目的是?
- 11、大O演算法通常表示的是?
- 12、樹的表示方法有?
- 13、二叉樹如圖所示,前序遍歷順序為?
- 14、以下關于websocket協議,說法正確的是?
1、Hadoop幾大核心組成別為?
A. HDFS
B. MapReduce
C. Yarn
D. Hive
答案:ABC
解釋:
Hadoop的三大核心組件分別是:
HDFS(Hadoop Distribute File System):hadoop的資料存盤工具,
YARN(Yet Another Resource Negotiator,另一種資源協調者):Hadoop 的資源管理器,
Hadoop MapReduce:分布式計算框架
2、關于Hadoop,以下說法正確的是?
A. NN掛掉,資料丟失,分布式集群崩潰
B. DN掛掉,資料會丟失,分布式集群崩潰
C. SN掛掉,資料丟失,分布式集群崩潰
D. 以上都正確
答案:A
解釋:
NN:Name Node 管理HDFS的命名空間,配置副本策略,管理資料塊(Block)映射資訊,處理客戶端讀寫請求
DN:DataNode 存盤實際的資料塊,執行資料塊的讀/寫操作
SN:SecondaryNameNode 輔助NameNode,分擔其作業量,比如定期合并Fsimage和Edits,并推送給NameNode ,在緊急情況下,可輔助恢復NameNode
NN掛掉,資料丟失,分布式集群崩潰
DN掛掉,由于其他機器中存有備份,資料不會丟失,正常情況下對分布式集群不會出現大問題
SN掛掉,資料不會丟失,只是失去了對NameNode中映射的備份,為了防止意外(NN掛掉),需要盡快恢復SN
3、Kafka訊息佇列中的broker的作用是?
A. broker是訊息的代理,作為保存訊息中轉站
B. producers往brokers里面指定的topic中寫訊息
C. consumers從brokers里面拉取指定的topic訊息
D. 以上都不正確
答案:AC
解釋:
B錯了,producer是往borker上topic對應的leader磁區寫訊息
4、Kafka為什么處理速度那么快?
A. 采用了Cache FileSystem Cache PageCache快取
B. 采用了磁盤順序寫
C. Zero-copy零拷貝技術減少拷貝次數
D. Batching of Messages批量處理,合并小的請求,以流的方式進行互動,直至網路上限
答案:BC
解釋:
用的page Cache和buffer Cache,沒用file Cache
批量處理沒用使用流方式互動,就一個socket連接互動
5、關于Kafka訊息佇列,下列說法正確的是?
A. 緩沖和削峰
B. 解耦和擴展性
C. 冗余消費
D. 異步通信
答案:ABCD
6、應用程式的測驗包含?
A. 功能測驗
B. 性能測驗
C. 可用性測驗
D. 客戶端兼容性與安全性測驗
答案:ABCD
7、關于壓力測驗、負載測驗、性能測驗的關系,說法正確的是?
A. 壓力測驗是在一定的負荷條件下,長時間連續運行系統給系統性能造成的影響
B. 負載測驗是在一定的作業負荷下,給系統造成的負荷及系統回應的時間
C. 性能測驗是為了找到系統的正常、峰值及例外負載條件等各項指標
D. 以上都不正確
答案:ABC
8、以下哪些是性能測驗關注的指標?
A. 回應時間
B. TPS
C. 服務器CPU使用率
D. 吞吐量
答案:ABCD
9、回應時間跟哪些因素有關?
A. 網路傳輸時間
B. 服務器處理請求時間
C. 前端渲染時間
D. 以上都正確
答案:ABCD
10、介面測驗的目的是?
A. 發現頁面操作發現不了的bug
B. 檢測系統例外處理能力
C. 測驗并發數
D. 修改請求引數,突破頁面的限制
答案:ABCD
解釋:
介面測驗的必要性:
1.可以發現很多在頁面上操作發現不了的bug
2.檢查系統的例外處理能力
3.檢查系統的安全性、穩定性
4.前端隨便變,介面測好了,后端不用變
5.可以測驗并發情況,一個賬號,同時(大于2個請求)對最后一個商品下單,或不同賬號,對最后一個商品下單
6.可以修改請求引數,突破前端頁面輸入限制(如金額)
11、大O演算法通常表示的是?
A. 最壞情況
B. 最好情況
C. 平均情況
D. 都不是
答案:A
解釋:
計算機科學經常用大O表示演算法的復雜度或衡量性能,它主要用于描述在最壞的情況下所花費的時間和空間(記憶體或磁盤),
12、樹的表示方法有?
A. 雙親表示法
B. 孩子兄弟表示法
C. 孩子表示法
D. 以上都不對
答案:ABC
解釋:
1.雙親表示法:
假設以一組連續空間存盤樹的結點,同時在每個結點中附設一個指示器指示其雙親結點在鏈表中的位置,其形式說明如下:


例如,圖6.13展示一棵樹及其雙親表示的存盤結構,
這種存盤結構利用了每個結點(除根以外)只有惟一的雙親的性質,PARENT(T,x)操作可以在常量時間內實作,反復呼叫PARENT操作,直到遇見無雙親的結點時,便找到了樹的根,這就是ROOT(x)操作的執行程序,但是,在這種表示法中,求結點的孩子時需要遍歷整個結構
2.孩子表示法
由于樹中每個結點可能有多棵子樹,則可用多重鏈表,即每個結點有多個指標域,其中每個指標指向一棵子樹的根結點,此時鏈表中的結點可以有如下兩種結點格式,

若采用第一種結點格式,則多重鏈表中的結點是同構的,其中d為樹的度,由于樹中很多結點的度小于d,所以鏈表中有很多空鏈域,空間較浪費,不難推出,在一棵有n個結點度為k的樹中必有n(k-1)+1個空鏈域,若采用第二種結點格式,則多重鏈表中的結點是不同構的,其中J為結點的度,degre域的值同J,此時,雖能節約存盤空間,但操作不方便,
另一種辦法是把每 個結點的孩子結點排列起來 ,看成是一個線性表,且以單鏈表作存盤結構,則n個結點有n個孩子鏈表(葉子的孩子鏈表為空表),而n個頭指標又組成一個線性表,為了便于查找,可采用順序存盤結構,這種存盤結構可形式地說明如下:


圖6.14(a)是圖6.13中的樹的孩子表示法,與雙親表示法相反,孩子表示法便于那些涉及孩子的操作的實作,卻不適用于PARENT(T,x)操作,我們可以把雙親表示法和孩子表示法結合起來,即將雙親表示和孩子鏈表合在一起,圖6.14(b)就是這種存盤結構的一例,它和圖6.14(a)表示的是同一棵樹,
3、孩子兄弟表示法: (相當于前面講的將一顆樹轉換成一顆二叉樹)
又稱二叉樹表示法,或二又鏈表表示法,即以二又鏈表作樹的存盤樹的存盤結構,鏈表中結點的兩個鏈城分別指向該結點的第一個孩子結點和下一個兄弟結點,分別命名為firstchild城和nextsibling城,


圖6.15是圖6.13中的樹的孩子兄弟鏈表,利用這種存盤結構便于實作各種樹的操作,首先易于實作找結點孩子等的操作,例如:若要訪問結點x的第i個孩子,則只要先從firstchild域找到第1個孩子結點,然后沿著孩子結點的nextsibling域連續走i-1步,便可找到x的第i個孩子,當然,如果為每個結點增設一個PARENT域,則同樣能方便地實作PARENT(T,x)操作,
13、二叉樹如圖所示,前序遍歷順序為?

A. GDHBAEICF
B. GHDBIEFCA
C. ABDGHCEIF
D. 以上都不對
答案:C
解釋:
一棵二叉樹由根結點、左子樹和右子樹三部分組成,若規定 D、L、R 分別代表遍歷根結點、遍歷左子樹、遍歷右子樹,則二叉樹的遍歷方式有 6 種:DLR、DRL、LDR、LRD、RDL、RLD,由于先遍歷左子樹和先遍歷右子樹在演算法設計上沒有本質區別,所以,只討論三種方式:
DLR–前序遍歷(根在前,從左往右,一棵樹的根永遠在左子樹前面,左子樹又永遠在右子樹前面 )
LDR–中序遍歷(根在中,從左往右,一棵樹的左子樹永遠在根前面,根永遠在右子樹前面)
LRD–后序遍歷(根在后,從左往右,一棵樹的左子樹永遠在右子樹前面,右子樹永遠在根前面)
前序遍歷:ABDGHCEIF
中序遍歷:GDHBAEICF
后序遍歷:GHDBIEFCA
14、以下關于websocket協議,說法正確的是?
A. 是升級版的http協議
B. 是無狀態協議
C. 需要三次握手建立連接
D. 基于udp協議
15、
以下關于http協議,說法不正確的是?
A. 301狀態碼表示內部服務器錯誤
B. 是無連接的
C. 是媒體獨立的
D. 是無狀態的
16、
http和https的說法中,正確的是?
A. https需要用到ca申請證書
B. http超文本傳輸協議,資訊是明文傳輸,而https是ssl加密傳輸協議
C. http是80埠,https是443埠
D. http的連接是無狀態的
17、
以下選項中,哪些可以查看歷史命令?
A. history命令
B. last命令
C. 上下鍵
D. 左右鍵
18、
以下選項中,哪些全部都是只能用于純文本的命令?
A. more、head、tail、cat
B. od、tr、wc、cut
C. diff、touch、cp、mv
D. 以上都不正確
19、
以下關于vim命令的使用,不正確的是?
A. 3中模式:命令模式、 輸入模式、末行模式,其中命令模式是打開檔案以后的默認模式
B. 可以使用dd、yy與p命令配合完成復制、粘貼、剪貼等功能
C. 在命令模式與末行模式中,快捷鍵引數不區分大小寫
D. 末行模式下所有快捷鍵引數前都有一個冒號“:”
20、
行程和執行緒之間的區別,以下說法正確的是?
A. 行程有自己的獨立地址空間,執行緒沒有
B. 行程是資源分配的最小單位,執行緒是CPU調度的最小單位
C. 行程和執行緒通信方式不同,同一行程下的執行緒共享資料(如全域變數、靜態變數),而行程之間的通信只能通過行程通信通信的方式
D. 行程背景關系切換開銷小,執行緒開銷大
21、
行程間通信方式有?
A. 用信號量進行行程間的互斥和同步,交換的資訊量少,是一種低級行程通信
B. 共享存盤器系統(存盤器中劃分的共享存盤區域)
C. 訊息傳遞系統(行程間的資料交換以訊息(Message)為單位)
D. 管道通信系統(連接讀寫行程來實作他們之間通信的共享檔案)
22、
關于行程和執行緒之間的關系,以下說法正確的是?
A. 一個執行緒只能屬于一個行程,而一個行程可以有多個執行緒,但至少有一個執行緒,執行緒是作業系統可識別的最小執行和調度單位
B. 資源分配給行程,同一行程的所有執行緒執行緒共享該行程的所有資源
C. 處理機分給行程,即真正在處理機上運行的是行程
D. 執行緒在執行程序中,需要協作同步,不同行程的執行緒間要利用訊息通信的方法實作同步
23、
以下哪些屬于資料庫的事物特性?
A. 原子性
B. 隔離性
C. 一致性
D. 持久性
24、
Redis過期鍵的洗掉策略有哪些?
A. 定時洗掉、惰性洗掉、定期洗掉
B. 定時洗掉、定量洗掉、定期洗掉
C. 隨機洗掉、惰性洗掉、定期洗掉
D. 定時洗掉、定量洗掉、隨機洗掉
25、
以下哪種資料結構是Redis不支持的?
A. String
B. Hash
C. List
D. Map
26、
如何優化MySQL?
A. 設計資料庫時:資料庫表、欄位的設計,存盤引擎選擇
B. 利用好MySQL自身提供的索引等功能
C. 利用MySQL集群、負載均衡、讀寫分離
D. SQL陳述句優化
27、
以下哪個選項不是Spring Cloud組件?
A. Eureka
B. Zuul
C. Dubbo
D. Feign
28、
Actuator在Spring Boot中的作用,說法正確的是?
A. 可以訪問生產環境中的程式當前狀態
B. 為Restful Web服務提供端點,用于檢查不同度量指標
C. Actuator必須集成SpringCloud組件才能使用
D. 以上都是
29、
為什么選擇微服務框架?
A. 微服務可以輕松適應其他框架技術
B. 單個行程失敗不會影響整個系統
C. 為大企業和小團隊提供支持
D. 可以在相對較短的時間內獨立部署
30、
以下哪些是SpringCloud的核心特性?
A. 版本化、分布式配置
B. 服務注冊與發現
C. 分布式訊息傳遞
D. 以上都是
31、
過渡到微服務,常見的困難有?
A. 開發人員無法概述當前的挑戰
B. 重寫已經存在的程式
C. 職責、時間線、應用邊界沒有明確定義
D. 未能從一開始就實施和確定自動化的范圍
32、
下面關于BeanFactory介面說法正確的是?
A. BeanFactory是單例模式的實作,負責創建和管理bean
B. BeanFactory是工廠模式的實作,負責創建和管理bean
C. ApplicationContext類是它的實作類
D. 以上說法都不正確
33、
在Servlet處理請求的方式為?
A. 以行程的方式
B. 以程式的方式
C. 以執行緒的方式
D. 以回應的方式
34、
關于SpringBoot,以下說法正確的是?
A. 使用嵌入式的servlet容器,應用無需打包成war包
B. starters自動依賴與版本控制
C. 準生產環境的運行應用監控
D. 以上都正確
35、
在服務器的網路編程中,解決會話跟蹤的方法有?
A. 使用Cookie
B. 使用URL重寫
C. 使用隱藏的表單域
D. 以上方法都不能單獨使用
36、
下面是Spring依賴注入方式的是?
A. set方法注入
B. 構造方法注入
C. get方法注入
D. 介面注入
37、
關于Spring Bean 的生命周期和作用域,以下說法不正確的是?
A. Spring Bean 生命周期可以分為創建和銷毀兩個程序
B. Spring Bean 的銷毀程序會依次呼叫 DisposableBean 的 destroy 方法和 Bean 自身定制的 destroy 方法
C. Spring Bean 有2種作用域,分別是Singleton和Prototype
D. Singleton,是 Spring 的默認作用域,也就是為每個 IOC 容器創建唯一的一個 Bean 實體
38、
List、Set、Map哪個繼承自Collection介面,以下說法正確的是?
A. List、Map
B. Set、Map
C. List、Set
D. List、Map、Set
39、
Java提供了哪些IO方式?
A. BIO、NIO、AIO
B. SIO、NIO、AIO
C. BIO、SIO、AIO
D. FIO、NIO、AIO
40、
關于Java 記憶體模型中的 happen-before ,以下說法不正確的是?
A. Happen-before 關系,是 Java 記憶體模型中保證多執行緒操作可見性的機制
B. Happen-before 表現形式就是 synchronized、volatile、lock 操作順序等方面
C. Happen-before 不僅僅是對執行時間的保證,也包括對記憶體讀、寫操作順序的保證
D. 執行緒內執行的每個操作,都保證 happen-before 后面的操作
41、
下列哪些是GC的回收演算法?
A. 標記清除演算法
B. 標記整理演算法
C. 復制演算法
D. 分代收集演算法
42、
以下關于String、StringBuffer和StringBuilder 的說法,不正確的是?
A. String宣告為 final class,所有屬性也都是 final 的
B. StringBuffer是執行緒安全的
C. String是典型的 Immutable 類
D. StringBuilder是執行緒安全的
43、
下列哪種例外是檢查型例外,需要在撰寫時宣告?
A. NullPointerException
B. ClassCastException
C. FileNotFoundException
D. IndexOutOfBoundsException
44、
在Java多執行緒中,下列哪種方式不會使執行緒進入阻塞狀態?
A. sleep()
B. suspend()
C. wait()
D. yield()
45、
在JVM的記憶體結構中,下列哪些是執行緒私有的記憶體區域?
A. 程式計數器
B. Java虛擬機堆疊
C. 本地方法堆疊
D. 堆記憶體
46、
以下關于Hashtable、HashMap 和TreeMap 的說法,不正確的是?
A. 三者都是最常見的 Map 實作
B. Hashtable本身是同步的,不支持 null 鍵和值
C. HashMap 不是同步的,支持 null 鍵和值
D. TreeMap 則是基于紅黑樹的一種無序訪問的 Map
47、
以下鎖機制中,不能保證執行緒安全的是?
A. ReentrantLock
B. Synchronized
C. Volatile
D. Atomic
48、
以下關于Exception和Error的說法,不正確的是?
A. Exception 和 Error 都是繼承了 Throwable 類整機組裝
B. Exception 和 Error 體現了 Java 平臺設計者對不同例外情況的分類
C. Exception 和 Error 都是可以預料、便于捕獲的
D. Exception 又分為checked例外和unchecked例外
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/433249.html
標籤:其他
