今天又去面試了。哎,現在都開始害怕面試 。自己技術太差了。。碰的問題,都回答不了。。
1.今天問了個對象實例化的幾種方法,左想右想只知道new關鍵字。。。 后面問了別人才知道通過反射也可以。。。反射這個東西,倒是知道,但是在這個問題上,我確怎么也想不到。。還有種是類加載。實在是看不懂。。
第一種:
Test test=new Test();
第二種:
test=Class.forName(Test).newInstance();
第三種
String interceptorName="org.aaa.Test";
Class interceptorClass=Current.class.getClassLoader().loadClass(interceptorName);
Interceptor inerceptor=(Interceptor)interceptorClass.newInstance();
2.hibernate中session的get與Load方法的區別。。前一陣還記得,現在忘記。。 都不知道現在還記得些什么東西了。
(1)load方法,hibernate認為該id對應的對象(數據庫記錄)在數據庫中是一定存在的,在用到對象中的
其他屬性數據時才查詢數據庫,但是萬一數據庫中不存在該記錄,只能拋ObjectNotFoundEcception異常
,所說的load方法拋異常是指在使用該對象的數據時,數據庫中不存在該數據時拋異常,而不是在創建這
個對象時。由于session中的緩存對于hibernate來說是個相當廉價的資源,所以在load時會先查一下
session緩存看看該id對應的對象是否存在,不存在則創建代理。所以如果你知道該id在數據庫中一定有
對應記錄存在就可以使用load方法來實現延遲加載。
(2)get方法,hibernate會確認一下該id對應的數據是否存在,首先在session緩存中查找,然后在二級緩
存中查找,還沒有就查數據庫,數據庫中沒有就返回null。
3.spring AOP中對pointcut,advice的概念的理解。。 這個我是根本就不知道啥玩意,只知道AOP的點點意思。。
4.hibernate的繼承映射包含了哪幾種不同的策略,并說出各自的特點。。HOHO。。這個問題,還是不知道。。以前讀書的時候看過點點相關的內容,現在早就忘記的一干二凈了。