本科在讀,沒有任何工作經驗,寫下對某幾道題的理解,望高人指正。
希望自己在工作幾年后再回過頭看時……
1 說說JVM原理?內存泄露與溢出區別,何時產生內存泄露
JVM是用軟件虛擬的計算機,是一種規范。使得字節碼文件在不同的平臺上都能正常運行
原理:
先由Java編譯器真對Java虛擬機產生獨立于平臺的class文件;
再由Java解釋器將虛擬機的代碼在特定的平臺上運行。
內存泄露是指內存資源耗盡
內存溢出是指系統不能滿足程序想要的分配
不再使用的內存得不到適當的釋放會產生內存泄露
2 用Java怎么實現有每天1億條記錄的DB存儲?MySql上億記錄數據量的數據庫如何設置?
3 MySql支持事務嗎?DB存儲引擎有哪些?
默認是不支持的,但是可以通過創建bdb類型的表來使其支持
4 MVC的原理,優缺點,如果讓你設計你會怎么改造?
model view controller
view 事件---》controller 調用相應方法改變狀態——》model封裝相應狀態——》view
優點:各層分工明確,模型層有良好的可移植性,也是一種框架結構
缺點:對于小型應用很費時間,視圖與控制器連接過于緊密
5 Hibernate支持群集嗎?如何實現群集?
6 tomcat最多支持并發多少用戶?
200多人左右是比較安全完美的,但是多于200后會逐漸的相應時間長,容易丟失數據。
7 Map原理,他是如何快速查找Key的?map與set區別?
是從鍵到值的映射,鍵不能重復,每個鍵最多映射一個值。
使用哈希算法快速查找key
map是映射,set是集合……
8 描述算法,如何有效合并兩個文件:一個是一億條的用戶基本信息,另一個是用戶每天看電影連續劇等的記錄,5000萬條。內存只有1G???
9 在1億條用戶記錄里,如何快速查詢統計出看了5個電影以上的用戶?
10 Spring是如何實現IOC和AOP的,說出實現原理。
IOC:通過DI來實現動態的向某個對象提供其所需要的對象,不用new
AOP:使用代理,減少代碼