java 高級面試

1、說說你對 java 中反射的理解

java 中 的反射首先首先是能夠獲取到java 中要反射類的字節碼,獲取字節碼有三種方法,
1)Class.forName(className)
2)類名.class
3)this.class()
然後將字節碼中的方法,變量,構造函數等映射成相應的Method、Filed、Constructor 等 類,這些類提供豐富的方法被我們使用。

2、java 中的靜態代理,動態代理?

待續····

3、動態代理靜態代理的區別?

1)靜態代理通常只是代理一個類,動態代理是代理一個接口下的多個實現類。
2)靜態代理先知道要代理的是什麼,動態代理不知道需要代理的是什麼,只有在運行時才知道。
3)動態代理是實現JDK 裏的InvocationHandler 接口的invoke方法,但注意是代理的接口,也就是你的業務必須要實現接口,通過Proxy裏的new ProxyInstance 得到代理對象。
4)還有一種動態代理,CGLIB,代理的類,不需要業務繼承接口,通過派生的子類來實現代理,通過在運行時,動態修改字節碼到達修改類的目的。
5)AOP 編程就是基於動態代理實現的,比如著名的Spring 框架、Hibernate 框架等等,都是動態代理使用的例子。

4、Java 中常用的設計模式

Java 中一般認爲有 23 種設計模式,我們不需要所有的都會,但是其中常用的幾種設計模式應該去掌握。下面列 出了所有的設計模式。需要掌握的設計模式我單獨列出來了,當然能掌握的越多越好。

總體來說設計模式分爲三大類: 創建型模式,共五種:工廠方法模式、抽象工廠模式、單例模式、建造者模式、原型模式。

結構型模式,共七種:適配器模式、裝飾器模式、代理模式、外觀模式、橋接模式、組合模式、享元模式。
行爲型模式,共十一種:策略模式、模板方法模式、觀察者模式、迭代子模式、責任鏈模式、命令模式、備忘錄 模式、狀態模式、訪問者模式、中介者模式、解釋器模式。

5、JVM垃圾回收機制和常見算法

待續····

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章