百度“Java面試題”前200頁精選下篇
設計模式
什麼是設計模式(Design Patterns)?你用過哪種設計模式?用在什麼場合你知道哪些商業級設計模式?
哪些設計模式可以增加系統的可擴展性
單例模式
除了單例模式,你在生產環境中還用過什麼設計模式?
寫Singleton 單例模式單例模式的雙檢鎖是什麼如何創建線程安全的Singleton
什麼是類的單例模式寫出三種單例模式實現
適配器模式
什麼時候使用享元模式什麼時候使用組合模式什麼時候使用訪問者模式什麼是模板方法模式請給出1個符合開閉原則的設計模式的例子
開放問題
用一句話概括Web 編程的特點
Google是如何在一秒內把搜索結果返回給用戶哪種依賴注入方式你建議使用,構造器注入,還是Setter方法注入樹(二叉或其他)形成許多普通數據結構的基礎。請描述一些這樣的數據結構以及何時可以使用它們某一項功能如何設計線上系統突然變得異常緩慢,你如何查找問題什麼樣的項目不適合用框架新浪微博是如何實現把微博推給訂閱者簡要介紹下從瀏覽器輸入URL 開始到獲取到請求界面之後Java Web 應用中發生了什麼請你談談SSH整合高並發下,如何做到安全的修改同一行數據
12306網站的訂票系統如何實現,如何保證不會票不被超賣網站性能優化如何優化的聊了下曾經參與設計的服務器架構請思考一個方案,實現分佈式環境下的countDownLatch
請思考一個方案,設計一個可以控制緩存總體大小的自動適應的本地緩存在你的職業生涯中,算得上最困難的技術挑戰是什麼如何寫一篇設計文檔,目錄是什麼大寫的O是什麼?舉幾個例子編程中自己都怎麼考慮一些設計原則的,比如開閉原則,以及在工作中的應用解釋一下網絡應用的模式及其特點設計一個在線文檔系統,文檔可以被編輯,如何防止多人同時對同一份文檔進行編輯更新說出數據連接池的工作機制是什麼怎麼獲取一個文件中單詞出現的最高頻率描述一下你最常用的編程風格如果有機會重新設計你們的產品,你會怎麼做如何搭建一個高可用系統如何啟動時不需輸入用戶名與密碼如何在基於Java的Web項目中實現文件上傳和下載如何實現一個秒殺系統,保證只有幾位用戶能買到某件商品。
如何實現負載均衡,有哪些算法可以實現如何設計一個購物車?想想淘寶的購物車如何實現的如何設計一套高並發支付方案,架構如何設計如何設計建立和保持100w 的長連接如何避免瀏覽器緩存。
如何防止緩存雪崩如果AB兩個系統互相依賴,如何解除依如果有人惡意創建非法連接,怎麼解決如果有幾十億的白名單,每天白天需要高並發查詢,晚上需要更新一次,如何設計這個功能如果系統要使用超大整數(超過long長度範圍),請你設計一個數據結構來存儲這種超大型數字以及設計一種算法來實現超大整數加法運算)
如果要設計一個圖形系統,請你設計基本的圖形元件(Point,Line,Rectangle,Triangle)的簡單實現如果讓你實現一個並發安全的鍊錶,你會怎麼做應用服務器與WEB 服務器的區別?應用服務器怎麼監控性能,各種方式的區別?你使用過的應用服務器優化技術有哪些大型網站在架構上應當考慮哪些問題有沒有處理過線上問題?出現內存洩露,CPU利用率標高,應用無響應時如何處理的最近看什麼書,印象最深刻的是什麼描述下常用的重構技巧你使用什麼版本管理工具?分支(Branch)與標籤(Tag)之間的區別在哪裡你有了解過存在哪些反模式(Anti-Patterns)嗎你用過的網站前端優化的技術有哪些如何分析Thread dump
你如何理解AOP中的連接點(Joinpoint)、切點(Pointcut)、增強(Advice)、引介(Introduction)、織入(Weaving)、切面(Aspect)這些概念你是如何處理內存洩露或者棧溢出問題的你們線上應用的JVM 參數有哪些怎麼提升系統的QPS和吞吐量
知識面
解釋什麼是MESI 協議(緩存一致性)
談談reactor 模型
Java 9 帶來了怎樣的新功能
Java 與C++ 對比,C++ 或Java 中的異常處理機制的簡單原理和應用簡單講講Tomcat 結構,以及其類加載器流程虛擬內存是什麼闡述下SOLID 原則請簡要講一下你對測試驅動開發(TDD)的認識
CDN實現原理
Maven 和ANT 有什麼區別
UML中有哪些常用的圖
Linux
什麼是N+1 難題什麼是paxos 算法什麼是restful,講講你理解的restful
什麼是zab 協議什麼是領域模型(domain model)?貧血模型(anaemic domain model) 和充血模型(rich domain model)有什麼區別什麼是領域驅動開發(Domain Driven Development)
介紹一下了解的Java 領域的Web Service 框架
Web Server、Web Container 與Application Server 的區別是什麼微服務(MicroServices)與巨石型應用(Monolithic Applications)之間的區別在哪裡描述Cookie 和Session 的作用,區別和各自的應用範圍,Session工作原理你常用的持續集成(Continuous Integration)、靜態代碼分析(Static Code Analysis)工具有哪些簡述下數據庫正則化(Normalizations)
KISS,DRY,YAGNI 等原則是什麼含義分佈式事務的原理,優缺點,如何使用分佈式事務?
布式集群下如何做到唯一序列號
網絡
是否看過框架的一些代碼持久層設計要考慮的問題有哪些?你用過的持久層框架有哪些數值提升是什麼你能解釋一下里氏替換原則嗎你是如何測試一個應用的?知道哪些測試框架傳輸層常見編程協議有哪些?並說出各自的特點
編程題
計算加班費
加班10小時以下加班費是時薪的1.5倍。加班10小時或以上,按4元/時算。提示:(一個月工作26天,一天正常工作8小時)
計算1000月薪,加班9小時的加班費計算2500月薪,加班11小時的加班費計算1000月薪,加班15小時的加班費
賣東西
一家商場有紅蘋果和青蘋果出售。 (紅蘋果5元/個,青蘋果4元/個)。
模擬一個進貨。紅蘋果跟青蘋果各進200個。
模擬一個出售。紅蘋果跟青蘋果各買出10個。每賣出一個蘋果需要進行統計。
提示:一個蘋果是一個單獨的實體。
日期提取
有這樣一個時間字符串:2008-8-8 20:08:08 , 請編寫能夠匹配它的正則表達式,並編寫Java代碼將日期後面的時分秒提取出來,即:20:08:08
線程
8設計4個線程,其中兩個線程每次對j增加1,另外兩個線程對j每次減少1。寫出程序。
用Java寫一個多線程程序,如寫四個線程,二個加1,二個對一個變量減一,輸出
wait-notify 寫一段代碼來解決生產者-消費者問題
數字
判斷101-200之間有多少個素數,並輸出所有素數用最有效率的方法算出2乘以17等於多少有1 億個數字,其中有2 個是重複的,快速找到它,時間和空間要最優
2 億個隨機生成的無序整數,找出中間大小的值
10 億個數字里里面找最小的10 個
1到1億的自然數,求所有數的拆分後的數字之和,如286 拆分成2、8、6,如1到11拆分後的數字之和=> 1 + … + 9 + 1 + 0 + 1 + 1
一個數如果恰好等於它的因子之和,這個數就稱為“完數“。例如6=1+2+3.編程找出1000以內的所有完數一個數組中所有的元素都出現了三次,只有一個元素出現了一次找到這個元素一球從100米高度自由落下,每次落地後反跳回原高度的一半;再落下,求它在第10次落地時,共經過多少米?第10次反彈多高?
求100-1000內質數的和求1到100的和的平均數求s=a+a+aaa+aaaa+aa…a的值,其中a是一個數字。例如2+22+222+2222+22222(此時共有5個數相加),幾個數相加有鍵盤控制。 求出1到100的和
算出1到40的質數,放進數組裡
有3n+1 個數字,其中3n 個中是重複的,只有1 個是不重複的,怎麼找出來。
有一組數1.1.2.3.5.8.13.21.34。寫出程序隨便輸入一個數就能給出和前一組數字同規律的頭5個數計算指定數字的階乘開發Fizz Buzz
給定一個包含N 個整數的數組,找出丟失的整數一個排好序的數組,找出兩數之和為m的所有組合將一個正整數分解質因數。例如:輸入90,打印出90=2*3*3*5。
打印出所有的“水仙花數“,所謂“水仙花數“是指一個三位數,其各位數字立方和等於該數本身。例如:153是一個“水仙花數“,因為153=1的三次方+5的三次方+3的三次方原地交換兩個變量的值找出4字節整數的中位數找到整數的平方根實現斐波那契
網絡
用Java Socket編程,讀服務器幾個字符,再寫入本地顯示
反射
反射機制提供了什麼功能?
反射是如何實現的哪裡用到反射機制反射中Class.forName 和ClassLoader 區別反射創建類實例的三種方式是什麼如何通過反射調用對象的方法如何通過反射獲取和設置對象私有字段的值反射機制的優缺點
資料庫
寫一段JDBC 連Oracle的程序,並實現數據查詢
演算法
50個人圍坐一圈,當數到三或者三的倍數出圈,問剩下的人是誰,原來的位置是多少實現一個電梯模擬器用寫一個冒泡排序寫一個折半查找隨機產生20個不能重複的字符並排序寫一個函數,傳入2 個有序的整數數組,返回一個有序的整數數組寫一段代碼在遍歷ArrayList 時移除一個元素古典問題:有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長到第四個月後每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數為多少約瑟芬環遊戲
正則
請編寫一段匹配IP地址的正則表達式寫出一個正則表達式來判斷一個字符串是否是一個數字
字符串
寫一個方法,入一個文件名和一個字符串,統計這個字符串在這個文件中出現的次數。
寫一個程序找出所有字符串的組合,並檢查它們是否是回文串寫一個字符串反轉函數,輸入abcde轉換成edcba代碼小遊戲,倒轉句子中的單詞將GB2312編碼的字符串轉換為ISO-8859-1編碼的字符串請寫一段代碼來計算給定文本內字符“A”的個數。分別用迭代和遞歸兩種方式編寫一個截取字符串的函數,輸入為一個字符串和字節數,輸出為按字節截取的字符串。 但是要保證漢字不被截半個,如“我ABC”4,應該截為“我AB”,輸入“我ABC漢DEF”,6,應該輸出為“我ABC”而不是“我ABC+漢的半個”
給定2 個包含單詞列表(每行一個)的文件,編程列出交集打印出一個字符串的所有排列將一個鍵盤輸入的數字轉化成中文輸出(例如:輸入1234567,輸出:一百二拾三萬四千五百六拾七)
在Web應用開發過程中經常遇到輸出某種編碼的字符,如從GBK 到ISO8859-1等,如何輸出一個某種編碼的字符串
日期
計算兩個日期之間的差距
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。