好多人對阿里巴巴技術崗的體系結構及級別的技術要求設置不太清楚,想去面試也不知道面試什麼級別的崗位,下面說說阿里的技術體系又是一個怎麼樣的水平劃分!
阿里P6(技術主管)
工作要求:
能獨立解決問題,制定系統的技術實現方案,考核會涉及部分技術深度。
技能要求:
除P5的技能外,還需掌握以下技能,以下技能至少需要做到熟悉。
架構設計,運維能力,作業系統。
阿里P7(技術專家)
工作
能獨立帶領產品或業務向前發展,並在產品或業務的規劃上具備一定的能力。
技能
在P6的基礎上,需要在Java開發、Web開發上至少有一項能做到精通。
在架構設計上至少在某一架構領域達到精通。
附圖:
第一步先自我介紹?
介紹自己的項目經驗和個人的擅長點,面試官主要考察你的表達能力和語言精簡能力。
第二步:項目中做了什麼,難點在哪裡?
主要是想了解參與過技術難度最大的項目難點,技術難點在哪裡,你是怎麼來解決的,考察項目經驗(技術難度)。
第三步:開始切入技術面試正題:
Java的線程池說一下,各個參數的作用,如何進行的?
同步與異步區別?
HashMap的實現原理,HashMap是如何解決hash衝突的問題?
Redis講一下,項目使用場景,以及對應的算法?
分布式系統的全局id如何實現?用zookeeper如何實現的呢,機器號+時間戳即可?
分布式鎖的方案,redis和zookeeper那個好,如果是集群部署,高並發情況下哪個性能更好?
kafka了解麼,了解哪些消息隊列?
樂觀鎖,悲觀鎖?
IO和NIO的卻別,以及NIO的原理,有了解過mina?
JVM內存模型,JVM加載原理,回收算法了解?
第四步: 你是想做業務還是研究?
主要是想考察你對技術是否有深入的研究興趣,建議回答喜歡研究,畢竟招聘的是技術崗位。
1 介紹你做的項目和其中的難點?
2 反射的作用是什麼?
3 數據倉庫,多線程和並發工具等?
4 私有雲,docker和k8s等?
5 了解哪些中間件,dubbo,rocketmq,mycat等?
6 dubbo中的rpc如何實現?
7 自己實現rpc應該怎麼做?
9 dubbo的服務註冊與發現?
10 聽說我是非科班,於是問了些排序算法
面試耗時將近30分鐘。
三面不是面試,而是筆試,耗時三個小時,考的是Java核心的基礎。
大概說一下就是有幾個考點:
Java並發的知識點
集合類
線程池
多線程之間的通信
面試耗時將近40分鐘。
聊人生談理想,主要還是考察你對工作是否持積極的態度,以及你是否穩定,自信發揮就可以了。
面經答案總結
轉發+關注我私信回復【面試】領取面試答案
1. Java 中的自增(i++)是線程安全的嘛?如何實現線程安全的自增?
2. 其他常用的線程安全的類;
concurrentHashMap;
3. ConcurrentHashMap是如何實現線程安全的?
4. Synchronized是否是公平鎖;
5. ThreadLocal使用及原理?
6. Jdk8中的stream有用過嘛?stream的並行操作原理?stream並行的線程池從哪裡來的?
7. Jdk1.8中的completableFuture有用過嘛?
8. Spring AOP 和原生的aspect AOP有什麼區別;
9. Java 代理有幾種實現方式?
10. Jvm為什麼要增加元空間(matespace);
11. Jvm中如何查看問題,並進行JVM調優?
12. 對G1垃圾收集器有了解麼,有什麼特點?
13. 伺服器硬體配置?
14. 在什麼場景下升級配置,什麼場景下去擴充集群?
15. 為什麼使用RPC框架?什麼時候會使用http請求?
16. 什麼場景下會使用mq?mq的優勢與劣勢?什麼時候不能用mq?(做不到同步)
17. 為什麼不對mysql的所有表都添加索引?
18. Mysql索引為什麼不用hash而用B+樹?hash底層的時間複雜度是多少?
19. B+樹索引可以進行範圍查詢嘛,比如大於小於;
20. 緩存數據如何同db同步進行更新???!!!(大廠都會問!)
21. 鍊表:1->2->3->4->5;請寫一個程序,將鍊表反轉過來:5->4->3->2->1;
有美團、好未來、58、易車網、合眾等等面試場景及面試題
阿里巴巴2020最新面試答案文末即可免費領取
轉發+關注我私信回復【面試資料】領取面試答案
並發編程:
什麼是多線程並發和並行?
什麼是線程安全問題?
什麼是共享變量的內存可見性問題?
什麼是Java中原子性操作?
什麼是Java中的CAS操作,AtomicLong實現原理?
什麼是Java指令重排序?
Java中Synchronized關鍵字的內存語義是什麼?
Java中Volatile關鍵字的內存語義是什麼?
什麼是偽共享,為何會出現,以及如何避免?
什麼是可重入鎖、樂觀鎖、悲觀鎖、公平鎖、非公平鎖、獨佔鎖、共享鎖?
講講ThreadLocal 的實現原理?
ThreadLocal 作為變量的線程隔離方式,其內部是如何做的?
說說InheritableThreadLocal 的實現原理?
InheritableThreadLocal 是如何彌補 ThreadLocal 不支持繼承的特性?
CyclicBarrier內部的實現與 CountDownLatch 有何不同?
隨機數生成器 Random 類如何使用 CAS 算法保證多線程下新種子的唯一性?
ThreadLocalRandom 是如何利用 ThreadLocal 的原理來解決 Random 的局限性?
Spring 框架中如何使用 ThreadLocal 實現 request scope 作用域 Bean?
並發包中鎖的實現底層(對AQS的理解)?
講講獨佔鎖 ReentrantLock 原理?
談談讀寫鎖 ReentrantReadWriteLock 原理?
StampedLock 鎖原理的理解?
談下對基於鍊表的非阻塞無界隊列 ConcurrentLinkedQueue 原理的理解?
ConcurrentLinkedQueue 內部是如何使用 CAS 非阻塞算法來保證多線程下入隊出隊操作的線程安全?
基於鍊表的阻塞隊列 LinkedBlockingQueue 原理。
阻塞隊列LinkedBlockingQueue 內部是如何使用兩個獨佔鎖 ReentrantLock 以及對應的條件變量保證多線程先入隊出隊操作的線程安全?
為什麼不使用一把鎖,使用兩把為何能提高並發度?
談談對無界優先級隊列 PriorityBlockingQueue 原理?
PriorityBlockingQueue 內部使用堆算法保證每次出隊都是優先級最高的元素,元素入隊時候是如何建堆的,元素出隊後如何調整堆的平衡的?
分析下JUC 中倒數計數器 CountDownLatch 的使用與原理?
CountDownLatch 與線程的 Join 方法區別是什麼?
講講對JUC 中迴環屏障 CyclicBarrier 的使用?
Semaphore 的內部實現是怎樣的?
簡單對比同步器實現,談談你的看法?
並發組件CopyOnWriteArrayList 是如何通過寫時拷貝實現並發安全的 List?
JVM
Java 內存分配?
Java 堆的結構是什麼樣子的?
什麼是堆中的永久代(Perm Gen space)?
簡述各個版本內存區域的變化?
說說各個區域的作用?
Java 中會存在內存洩漏嗎,簡述一下?
Java 類加載過程?
描述一下 JVM 加載 Class 文件的原理機制?
什麼是類加載器?
類加載器有哪些?
什麼是tomcat類加載機制?
類加載器雙親委派模型機制?
什麼是GC? 為什麼要有 GC?
簡述一下Java 垃圾回收機制?
如何判斷一個對象是否存活?
垃圾回收的優點和原理,並考慮 2 種回收機制?
垃圾回收器的基本原理是什麼?
垃圾回收器可以馬上回收內存嗎?有什麼辦法主動通知虛擬機進行垃圾回收?
深拷貝和淺拷貝?
System.gc() 和 Runtime.gc() 會做些什麼?
如果對象的引用被置為 null,垃圾收集器是否會立即釋放對象佔用的內存?
什麼是分布式垃圾回收(DGC)?它是如何工作的?
串行(serial)收集器和吞吐量(throughput)收集器的區別是什麼?
在 Java 中,對象什麼時候可以被垃圾回收?
簡述Minor GC 和 Major GC?
JVM 的永久代中會發生垃圾回收麼?
Java 中垃圾收集的方法有哪些?
講講你理解的性能評價及測試指標?
常用的性能優化方式有哪些?
說說分布式緩存和一致性哈希?
同步與異步?阻塞與非阻塞?
什麼是GC調優?
常見異步的手段有哪些?
Spring
為什麼需要代理模式?
講講靜態代理模式的優點及其瓶頸?
對Java 接口代理模式的實現原理的理解?
如何使用 Java 反射實現動態代理?
Java 接口代理模式的指定增強?
談談對Cglib 類增強動態代理的實現?
point cut,advice,Join point是什麼?
join point 和 point cut 的區別?
怎麼理解面向切面編程的切面?
談談對SpringAOP Weaving(織入)的理解?
談談SpringAOP Introduction(引入)的理解?
講解OOP與AOP的簡單對比?
講解JDK 動態代理和 CGLIB 代理原理以及區別?
講解Spring 框架中基於 Schema 的 AOP 實現原理?
講解Spring 框架中如何基於 AOP 實現的事務管理?
談談對控制反轉的設計思想的理解?
怎麼理解 Spring IOC 容器?
Spring 中有多少種 IOC 容器?
Spring IOC 怎麼管理 Bean 之間的依賴關係,怎麼避免循環依賴?
對Spring IOC 容器的依賴注入的理解?
說說對Spring IOC 的單例模式和高級特性?
BeanFactory 和 FactoryBean 有什麼區別,BeanFactory 和 ApplicationContext 又有什麼不同?
Spring 在 Bean 創建過程中是如何解決循環依賴的?
談談Spring Bean 創建過程中的設計模式?
資料庫
MySQL 有哪些存儲引擎啊?都有什麼區別?
Float、Decimal 存儲金額的區別?
Datetime、Timestamp 存儲時間的區別?
Char、Varchar、Varbinary 存儲字符的區別?
什麼是索引?
對比一下B+樹索引和 Hash索引?
MySQL索引類型有?
如何管理 MySQL索引?
對Explain參數及重要參數的理解?
索引利弊是什麼及索引分類?
二叉樹的轉置是什麼?
聚簇索引和非聚簇索引的區別?
B+tree 如何進行優化?索引遵循哪些原則?存儲引擎會進行哪些自動優化?到底何時索引會失效?
索引與鎖有什麼關係?
還有什麼其他的索引類型,各自索引有哪些優缺點?
談談對Innodb事務的理解?
說說資料庫事務特點及潛在問題?
什麼是MySQL隔離級別?
有多少種事務失效的場景,如何解決?
一致性非鎖定讀和一致性鎖定讀是什麼?
Innodb如何解決幻讀?
講講Innodb行鎖?
死鎖及監控是什麼?
自增長與鎖 ,鎖的算法,鎖問題,鎖升級是什麼?
樂觀鎖的線程如何做失敗補償?
高並發場景(領紅包)如何防止死鎖,保證數據一致性?
談談MySQL的鎖並發?
回表和集群因子是什麼?
講講表與表之間的關係?
了解查詢優化器模塊;
查詢優化的基本思路是什麼?
說說MySQL讀寫分離、分庫分表?
Query語句對資料庫性能有什麼影響?
Schema設計對系統性能有什麼影響?
硬體環境對資料庫的性能有什麼影響?
表結構對性能有什麼影響?
淺談索引優化?
JOIN的原理是什麼?
說說Sql優化的幾點原則?
MySQL表設計及規範?
說說MySQL幾種存儲引擎應用場景?
MySQL常用優化方式有哪些?
MySQL常用監控?
MySQL瓶頸分析?
一定要謹慎對待寫在簡歷上的東西,一定要對簡歷上的東西非常熟悉。因為一般情況下,面試官都是會根據你 的簡歷來問的;
能有一個上得了臺面的項目也非常重要,這很可能是面試官會大量發問的地方,所以在面試 之前好好回顧一下自己所做的項目;
和面試官聊基礎知識比如設計模式的使用、多線程的使用等等,可以結合具體的項目場景或者是自己在平時是 如何使用的;
建議提前了解一下自己想要面試的公司的價值觀,判斷一下自己究竟是否適合這個公司。
另外,我個人覺得面試也像是一場全新的徵程,失敗和勝利都是平常之事。所以,勸各位不要因為面試失敗而灰心、 喪失鬥志。也不要因為面試通過而沾沾自喜,等待你的將是更美好的未來,繼續加油!
小編整理不易,對這份阿里最新面試題及答案感興趣勞煩幫忙轉發一下,然後關注我私信回復【面試】即可領取
現在你不玩命的學,以後命玩你