黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 Java學習 2019年Java職場中級面試題及答案

2019年Java職場中級面試題及答案

更新時間:2019-10-16 11:02:08 來源:動力節點 瀏覽2996次



  在掌握了Java技術之后,面試就成為馬上要面臨的問題了。面對面試官的問題,提前做好準備能夠有助于你的臨場發揮,以下是一些Java面試中高頻出現的一些問題,有一部分是沒有固定答案的,希望能夠對大家有所幫助。


  BIO、NIO和AIO的區別


  JavaBIO:同步并阻塞,服務器實現模式為一個連接一個線程,即客戶端有連接請求時服務器端就需要啟動一個線程進行處理,如果這個連接不做任何事情會造成不必要的線程開銷,當然可以通過線程池機制改善。


  JavaNIO:同步非阻塞,服務器實現模式為一個請求一個線程,即客戶端發送的連接請求都會注冊到多路復用器上,多路復用器輪詢到連接有I/O請求時才啟動一個線程進行處理。


  JavaAIO:異步非阻塞,服務器實現模式為一個有效請求一個線程,客戶端的I/O請求都是由OS先完成了再通知服務器應用去啟動線程進行處理。


  NIO比BIO的改善之處是把一些無效的連接擋在了啟動線程之前,減少了這部分資源的浪費(因為我們都知道每創建一個線程,就要為這個線程分配一定的內存空間)


  AIO比NIO的進一步改善之處是將一些暫時可能無效的請求擋在了啟動線程之前,比如在NIO的處理方式中,當一個請求來的話,開啟線程進行處理,但這個請求所需要的資源還沒有就緒,此時必須等待后端的應用資源,這時線程就被阻塞了。


  適用場景分析:


  BIO方式適用于連接數目比較小且固定的架構,這種方式對服務器資源要求比較高,并發局限于應用中,JDK1.4以前的唯一選擇,但程序直觀簡單易理解,如之前在Apache中使用。


  NIO方式適用于連接數目多且連接比較短(輕操作)的架構,比如聊天服務器,并發局限于應用中,編程比較復雜,JDK1.4開始支持,如在Nginx,Netty中使用。


  AIO方式使用于連接數目多且連接比較長(重操作)的架構,比如相冊服務器,充分調用OS參與并發操作,編程比較復雜,JDK7開始支持,在成長中,Netty曾經使用過,后來放棄。


  Java中常說的堆和棧,分別是什么數據結構;另外,為什么要分為堆和棧來存儲數據


  棧是一種具有后進先出性質的數據結構,也就是說后存放的先取,先存放的后取。


  堆是一種經過排序的樹形數據結構,每個結點都有一個值。通常我們所說的堆的數據結構,是指二叉堆。堆的特點是根結點的值最小(或最大),且根結點的兩個子樹也是一個堆。由于堆的這個特性,常用來實現優先隊列,堆的存取是隨意的。


  為什么要劃分堆和棧


  1、從軟件設計的角度看,棧代表了處理邏輯,而堆代表了數據。這樣分開,使得處理邏輯更為清晰。


  2、堆與棧的分離,使得堆中的內容可以被多個棧共享。一方面這種共享提供了一種有效的數據交互方式(如:共享內存),另一方面,堆中的共享常量和緩存可以被所有棧訪問,節省了空間。


  3、棧因為運行時的需要,比如保存系統運行的上下文,需要進行地址段的劃分。由于棧只能向上增長,因此就會限制住棧存儲內容的能力。而堆不同,堆中的對象是可以根據需要動態增長的,因此棧和堆的拆分,使得動態增長成為可能,相應棧中只需記錄堆中的一個地址即可。


  4、體現了Java面向對象這一核心特點(也可以繼續說一些自己的理解)。


  為什么要用線程池


  那先要明白什么是線程池


  線程池是指在初始化一個多線程應用程序過程中創建一個線程集合,然后在需要執行新的任務時重用這些線程而不是新建一個線程。


  使用線程池的好處


  1、線程池改進了一個應用程序的響應時間。由于線程池中的線程已經準備好且等待被分配任務,應用程序可以直接拿來使用而不用新建一個線程。


  2、線程池節省了CLR為每個短生存周期任務創建一個完整的線程的開銷并可以在任務完成后回收資源。


  3、線程池根據當前在系統中運行的進程來優化線程時間片。


  4、線程池允許我們開啟多個任務而不用為每個線程設置屬性。


  5、線程池允許我們為正在執行的任務的程序參數傳遞一個包含狀態信息的對象引用。


  6、線程池可以用來解決處理一個特定請求最大線程數量限制問題。


  Msyql優化經驗


  1、對查詢進行優化,應盡量避免全表掃描,首先應考慮在where及orderby涉及的列上建立索引。


  2、應盡量避免在where子句中使用!=或<>操作符,否則引擎將放棄使用索引而進行全表掃描。


  3、盡量使用數字型字段,若只含數值信息的字段盡量不要設計為字符型,這會降低查詢和連接的性能,并會增加存儲開銷。這是因為引擎在處理查詢和連接時會逐個比較字符串中每一個字符,而對于數字型而言只需要比較一次就夠了。


  4、任何地方都不要使用select*fromt,用具體的字段列表代替“*”,不要返回用不到的任何字段。


  5、避免頻繁創建和刪除臨時表,以減少系統表資源的消耗。諸如此類,等等等等......


相關Java面試題推薦


java基礎面試題及答案


2019最新java面試題含答案(基礎篇)


2019年常見Java面試題及答案


Java常見面試題匯總


2019史上最全java面試題題庫大全800題


2019年最新Java基礎面試題及面試技巧


提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 你懂的视频在线 | 亚洲最色网站 | 香蕉视频污污在线观看 | 一卡二卡在线 | 老司机午夜精品视频播放 | 日本三级带日本三级带黄国产 | 日本高清视频wwww色 | 九九视频热 | 日本三级欧美三级香港黄 | 最近更新中文字幕第一页 | 97视频在线免费播放 | 成人一级视频 | avtt一区| 日本在线免费播放 | 男人和女人日皮视频 | 天天操天天爱天天干 | 欧美视频免费在线播放 | 在线观看亚洲人成网站 | 快播制服丝袜 | 国产成人精品亚洲 | 日本的黄色录像 | 午夜私人影院在线观看 | 免费黄在线 | 色偷偷人人澡人人爽人人模 | 一本大道高清香蕉中文大在线 | 播放欧亚一级特黄录像 | 中文字幕在线一区 | 日日爽爽 | 亚洲日本天堂在线 | 在线永久免费播放视频 | 黑人极品videos精品欧美裸 | 黄色一级视频免费观看 | 国99久9在线 | 免费 | 最新亚洲精品国自产在线 | 国产成人不卡 | 国卡一卡二卡三免费网站 | 最近免费中文字幕视频高清在线看 | 国产色丁香久久综合 | a级毛片高清免费视频 | 草草在线视频 | 欧美视频一二三区 |