
滴滴三面面經
一面
1
反射你有了解嗎?講一下你的理解?
反射是java的特征之一,它允許運行中的Java程序獲取自身的信息,並且可以操作類或對象的內部屬性。三種方式來獲取Class對象:a.使用Class類的forName靜態方法。b.直接獲取某一個對象的Class。c.調用某個對象的getClass方法。
2
Java內存模型你知道嗎?
一共分為方法區、堆、虛擬機棧、本地方法棧、程序計數器五個
1.方法區為線程共享區域主要存儲虛擬機加載的類信息、常量、靜態變量
2.堆區為線程共享區域存對象
3.虛擬機棧線程私有區域用於存局部變量表、操作數棧、動態鏈接等
4.本地方法棧線程私有區域與虛擬機棧類似,只不過本地方法棧為虛擬機使用到的Native方法服務
5程序計數器線程私有區域是字節碼的行號指示器
3
StringBuilder/StringBuffer?
StringBuilder是非線程安全的,StringBuffer是線程安全的,大部分情況下StringBuilder的速度是快於StringBuffer的,StringBuilder的append方法是帶synchronized鎖的。
4
AOP和IOC你知道多少?
IOC是依賴注入,采用工廠模式。AOP是面向切面編程,采用代理模式。
5
類加載過程?
加載、驗證、准備、解析、初始化
6
注解是什么?談談你的理解?
Java注解是附加在代碼中的一些元信息,用於一些工具在編譯、運行時進行解析和使用,起到說明、配置的功能。
7
new一個對象的過程?
如果該對象所屬的類是第一次使用那么還需要將類進行加載,然后在堆內存開辟空間,並為對象分配首地址,初始化成員屬性,構造代碼塊的初始化,對象構造函數的初始化,將堆內存的地址賦值給棧里的引用。
二面
1
談談線程安全,你的理解?
多線程同時操作同一個共享變量不會產生不可預期的結果即為線程安全。
2
aop用過嗎,怎么用?
創建切面、目標類、定義目標方法,編寫配置類啟動AOP代理功能。
3
HashMap你知道多少?ConcurrentHashMap呢?
HashMap的結構、put、get方法、resize方法、擴容為原來的兩倍、hash的實現、一些屬性值等等
4
線程池知道嗎?
講下4種線程池及使用場景,講下參數,講下拒絕策略。
5
如何實現定時任務?
while循環設置線程的休眠時間,timer類設置delay,ScheduledExecutorService三種方式
6
spring MVC執行流程?
1.用戶發送請求到前端控制器DispatcherServlet
2.然后DispatcherServlet請求處理器映射器查找Handler
3.HanderMapping向Dispatcher返回Handler
4.HandlerMapping調用處理器適配器HandlerAdapter去執行
Handler
5.處理器適配器去執行Handler
6.Handler執行完給處理器適配器返回ModelAndView
7.處理器適配器給DispatcherServlet返回ModelAndView
8.DispatcherServlet請求視圖解析器View resolver進行視圖解析
9.視圖解析器向DispatcherServlet返回view
10.DispatcherServlet進行視圖的渲染
11.DispatcherServlet向用戶響應結果
HR
大表哥請查收您的OFFER
大表哥
滴滴實習生發mac?
本文來自牛客網原創作者為offer收割機大表哥。
關注微信公眾號:AVAJ
365篇大廠面經及解析 你想要的我這里都有!