阿里巴巴的一些面試題(無答案)

Java基礎java

【異常處理】linux

一、Try catch若是找到了一個匹配的catch,finally還會執行嗎?--4
二、java異常大體分類,並舉出相應異常類及在實際項目各層是如何處理異常的?--5 6nginx

【泛型】web

1. 泛型的實現原理? 僞泛型 --5算法

【reflection】spring

一、什麼是反射?如何使用的?sql

【annotation】數據庫

一、java註解的實現原理? --5apache

【Java基本類庫:io, util, lang 】編程

一、String, StringBuffer和StringBuilder區別?Stringbuffer初始容量是多少,如何作擴容?--5
2. hashcode()和equals()是做用是什麼?使用注意事項
3. 能將int強制轉換成byte類型麼,爲何
4. 「a==b」和」a.equals(b)
5. 使用什麼樣的數據類型來描述金額

【集合】

一、遍歷 ArrayList 時移除一個元素
二、List和Set的區別 -- 重複、索引、null
三、ArrayList,LinkedList,HashMap這三個經常使用集合類的不一樣特色及適用場景,及其底層實現的數據結構?--5 6
四、HashSet是如何判斷新添加的對象是否已經存在的??若是已存在,它是再也不放進去,仍是放進去覆蓋以前的??
五、Map如何遍歷?那種方式效率最好?

高級:class loader,bytecode,nio, juc

一、java併發編程包,用過哪些,怎麼用?--5 6
2. 什麼是併發?在單JVM下如何控制併發,在多JVM下若是控制併發?--6
二、synchronized和java.util.concurrent.locks.Lock的異同?--5 6
三、Threadlocal是什麼?是否用到過,注意事項是什麼?--5 6

其餘:

一、詳細描敘一次遠程調用的過程?hessian有什麼限制?描敘一個wsdl文檔的關鍵元素?--6
二、Java 中,抽象類與接口之間有什麼不一樣
三、繼承和組合之間有什麼不一樣

 

程序設計和開發

【數據結構和算法:經常使用數據結構,排序,檢索】

一、有幾種排序算法?效率分析?--5
二、描敘下hash算法?什麼是一致性hash?--5

【面向對象分析設計能力:UML、設計模式】

一、使用過哪些設計模式,線程安全的單例模式要注意什麼?--5 6
二、代理、適配器、模板模式是否瞭解 ? 描述一下類結構?-- 6
三、在項目中是否採用分層的結構,是怎樣劃分的,各層之間採用了哪些相關技術?--6 7

【其餘】

一、好代碼的標準是什麼?--5 6
二、您經過哪些手段,來保障產品的質量?--5 6
三、經常使用的加密算法有哪些?簽名算法呢?
四、如何實現數據源動態切換?


開源/框架

一、spring AOP解決了什麼問題,spring如何實現AOP?--5
二、spring分幾個模塊,各個模塊之間的關係?--6
三、spring bean初始化的過程?static 代碼塊、構造函數、init方法、afterPropertiesSet順序?單例?spring的單例和設計模式中單例模式區別?設計模式中的單例模式使用過程當中的注意點?如何實現?(多線程、序列化) --6 7
四、spring 提供了哪兩種事物處理方式,採用了java的什麼技術?--6
5. spring聲明式事務處理時如何實現的?(這個問題能夠涵蓋AOP的概念、代理模式、線程、JDBC事務處理等)
六、IOC的設計理念在spring中是怎麼體現的?--6
7. Hibernate的理解(若是有寫到能夠問),一級緩存、二級緩存的做用,項目中是如何應用的?Hibernate域ibatis區別?哪一個性能高??
八、osgi瞭解嗎?優缺點?

 

JVM相關

一、jvm加載class的過程?--5
二、內存泄露的緣由是什麼?如何避免?
三、jvm調優策略?--6
四、經常使用的jvm監控命令?--6
五、如何作內存dump?--6
六、JVM對於新生代和舊生代的垃圾回收機制?--5 6
七、Java 中 WeakReference 與 SoftReference的區別
八、Java 中堆和棧有什麼區別
九、是否遇到到內存泄露的案例? 如何解決的 ? --6 7

 

Web開發

【協議】

DNS
什麼是A記錄、CNAME ?
HTTP

1. get 和post區別 ? --5
2 描述一下一個web請求的處理過程?--5
3. session和cookie的區別?HTTP請求中Session實現原理?若是客戶端禁止Cookie能實現Session嗎?跨域cookie如何訪問?--5 6
4. 分別採用cookie和session如何實現web集羣,他們分別適用哪些應用場景?--6 7

【Java Servlet API】

1. forward() 與redirect()區別 ? --5
2. servlet的生命週期,是否有線程安全問題,如何解決?(單例,不容許在servlet中定義全局的類對象) --5 6
3. 過濾器攔截器的區別? --5
4. 過濾器、攔截器、servlet的順序?

【Velocity/JSP等模板引擎】

1. velocity是如何渲染vm文件的 ?
2. 比較一下velocity和JSP技術 ?

【主流Web開發框架:SpringMVC,Struts等】

1. 如何實現一個多語言版本的網站?語言切換如何處理?--6 7
2. 請描述一下SpringMVC中DispatchServelet的請求處理過程 ? -- 6 7

【Web服務器部署和配置:Apache,Tomcat,JBoss,Jetty等】

1. apache和nginx的區別? --5 6
2. tomcat 、jetty、jboss的區別?--5 6
3. jboss的線程大小如何調整?--6


操做系統

【linux服務器基本操做命令】

一、如何統計集羣中的pv?
二、grep 、awk
三、查看系統進程/查找指定進程?
四、linux的內存分配策略?
五、如何查看系統負載?性能監測工具備哪些?
六、如何查看一個文件?cat、vi、less、more區別?
七、如何跨機器copy?
八、如何查看磁盤分區空間使用狀況,如何查看目錄及內容大小 ?

 

網絡安全

【網絡安全知識:DDOS,Firewall,HTTPS,數字簽名等】

1. http和https的區別?https如何保證連接的安全?一個網站如何部署成https過程?描述一次完整的https請求的過程,客戶端、服務端都作了啥?單向認證?雙向認證?--6 7

【常見Web安全問題解決方案:XSS,CSRF】

1. 如何作表單防篡改、防重複提交?--6
2. 解釋 XSS、 XSRF、sql注入,及舉例說明?--5 6

 

數據庫

【數據庫接口編程:JDBC,O/R Mapping,DAO,iBatis, Hibernate等】
一、JDBC的執行過程? --5 6
2. db鏈接池的原理?解決什麼問題?--6
3. ibatis如何實現批量插入?--6
4. 簡述spring封裝了ibatis的SqlMapClientTemplate類中,執行一個數據庫查詢語句的主要過程?--5

【數據庫使用和設計:Oracle,Mysql】

1. 什麼是死鎖,如何避免死鎖?樂觀鎖和悲觀鎖各自的使用場景?有哪些方案實現樂觀鎖?時間戳、版本、所有copy到內存,提交時比對。--6 7
2. 事務的特色?採用什麼技術實現分佈式事務,如何實現,講講原理,爲何須要兩階段提交,能解決哪些問題,哪些問題不能解決。spring 提供了哪兩種事物處理方式,採用了java的什麼技術?--6 7
3. 表關聯時,內鏈接,左鏈接,右鏈接怎麼理解?--5
4. 數據庫操做的性能瓶頸一般在哪裏,1000萬級別訪問,在數據庫和java程序上考慮哪些來進行性能優化?--6
5. oracle三層分頁的實現?--5
6. oracle中rownum和rowid的理解

【數據結構優化,SQL調優】

1. 經常使用sql優化策略?如何查看sql資源消耗?如何查看執行計劃 ?
2. 索引的怎麼建最合適?是否創建了索引查詢必定會快?如何走到指定的索引?--5 6
3. 存在A、B字段,以A、B順序創建聯合索引,
SQL語句 where A = ? 是否會走索引 ?
SQL語句 where B = ? 是否會走索引 ?
SQL語句 where B = ? and A = ? 是否會走索引 ?


架構設計

【分層的應用框架設計思想:SOA,事件驅動等】

1. 在項目的架構設計中,對於將來可能發生的需求變動,你是如何考慮的?如何應對?
2. 模塊化來下降耦合性時如何把握模塊劃分的粒度?如何權衡複用性與粒度過細緻使依賴複雜的矛盾?

【分佈式系統原理:CAP,最終一致性,冪等操做等】

1.什麼是分佈式系統下CAP理論?
2.如何進行冪等控制?--6


【大型網絡應用結構:消息中間件,緩存,負載均衡,集羣技術,數據同步】

1. 在高併發應用中,Cache的做用不可忽視,在Cache的使用上,有哪些問題須要去注意?
2. 是否曾經用到過緩存?是單機的仍是集羣的?如何設計分佈式緩存?高併發狀況下如何初始化?--6 7
3. 4/7層負載均衡的差異?--7
4. 負載均衡的策略有哪些?如何作到會話保持?--6
5. 有沒有作服務器健康檢查?怎麼作?-- 6 7


【高可用,可容災分佈式系統設計能力】

1. 設計一套系統故障隔離方案?設計一套流量控制方案?
2. 您通常會從哪些方面來保證網站的高可用性?有什麼關鍵措施和經驗能夠提升系統的可用性?

【大容量數據存儲和檢索系統設計能力:數據庫分區,NoSQL,搜索引擎等】

1. 如何消除DB單點?數據拆分的方案?
2. 在架構設計中如何應對不斷出現的超過預估的數據量和訪問量?

【服務治理】
1. 系統是否有對內或者對外提供服務,如何管理服務的使用權限,如何作服務升級?


運維能力

【應用發佈和運維】

1. 在大規模機器集羣上,大家如何實現程序發佈上線、配置的管理以及程序和機器的監控和健康檢查?
2. TCP創建鏈接的過程?三次握手過程?--5 6
3. 介紹下OSI七層模型?每一層分別作什麼的?TCP創建鏈接的過程?三次握手過程?--6 7

【線上故障分析和排查】

1. 線上系統出現問題後如何分析排查?
2. 系統中的日誌是如何打印的?
3. 系統的異常處理是如何設計的?

 

性能優化:--6 7

一、對於系統優化,平時如何查找瓶頸,最後又如何肯定優化後是有效的?
二、如何作集羣的性能調優?
三、如何設置一個應用的最佳請求數和最佳處理線程數?
四、下降了RT是否就能提升TPS?如何減小RT?如何提高QPS?
五、經過什麼工具查找熱點耗時代碼?
六、如何監控代碼的執行效率?又是如何來找到瓶頸的?


業務分析能力:
重要業務模塊的需求分析及實現
中小規模產品的架構,系統設計和實現
大規模產品或產品線的架構,系統設計和實現

1. UML中包含哪些圖? 在項目中如何運用UML進行分析設計的?
2. 是否使用領域模型設計? 領域模型如何設計的?
3. DB的表結構是怎樣分析產出的?

 

傳道授業:

1.如何幫助團隊成員提高能力的?
2.作過什麼分享?分享的內容大綱簡短介紹一下?

 

開放性問題:

一、如何實現一套單點登陸的系統?兩個系統之間相互免登如何設計?--6 7 二、如何設計一個紅包發送系統,支持100w的紅包同時發送? 三、你理解的分佈式系統是什麼樣的? 四、如何設計一個分佈式緩存?如何進行擴容? 五、設計一個單點登陸的系統及流程? 六、提高團隊的研發質量上有哪些策略? 七、設計一個秒殺系統? 八、實現轉帳A——B程序?--7 8 九、存儲全國人民的身份證號,並可以按照多維度,提供快速查詢功能,如何設計?

相關文章
相關標籤/搜索