久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

某高人整理的Java就業(yè)面試題大全【3】

 londonKu 2012-05-06
9. 流行的框架與新技術(shù)


1、談?wù)勀銓?duì)Struts的理解,。
答: 
1. struts是一個(gè)按MVC模式設(shè)計(jì)的Web層框架,,其實(shí)它就是一個(gè)大大的servlet,這個(gè)Servlet名為ActionServlet,,或是 ActionServlet的子類,。我們可以在web.xml文件中將符合某種特征的所有請(qǐng)求交給這個(gè)Servlet處理,這個(gè)Servlet再參照一個(gè) 配置文件(通常為/WEB-INF/struts-config.xml)將各個(gè)請(qǐng)求分別分配給不同的action去處理,。
一個(gè)擴(kuò)展知識(shí)點(diǎn):struts的配置文件可以有多個(gè),,可以按模塊配置各自的配置文件,這樣可以防止配置文件的過度膨脹,;
2. ActionServlet把請(qǐng)求交給action去處理之前,,會(huì)將請(qǐng)求參數(shù)封裝成一個(gè)formbean對(duì)象(就是一個(gè)java類,這個(gè)類中的每個(gè)屬性對(duì)應(yīng)一個(gè)請(qǐng)求參數(shù)),,封裝成一個(gè)什么樣的formbean對(duì)象呢,?看配置文件。
3.要說明的是,, ActionServlet把formbean對(duì)象傳遞給action的execute方法之前,,可能會(huì)調(diào)用formbean的validate方法進(jìn)行 校驗(yàn),只有校驗(yàn)通過后才將這個(gè)formbean對(duì)象傳遞給action的execute方法,,否則,,它將返回一個(gè)錯(cuò)誤頁面,這個(gè)錯(cuò)誤頁面由input屬性 指定,,(看配置文件)作者為什么將這里命名為input屬性,,而不是error屬性,我們后面結(jié)合實(shí)際的運(yùn)行效果進(jìn)行分析,。
4.action執(zhí)行完后要返回顯示的結(jié)果視圖,,這個(gè)結(jié)果視圖是用一個(gè)ActionForward對(duì)象來表示的,actionforward對(duì)象通過 struts-config.xml配置文件中的配置關(guān)聯(lián)到某個(gè)jsp頁面,,因?yàn)槌绦蛑惺褂玫氖窃趕truts-config.xml配置文件為jsp頁 面設(shè)置的邏輯名,,這樣可以實(shí)現(xiàn)action程序代碼與返回的jsp頁面名稱的解耦。


你對(duì)struts可能還有自己的應(yīng)用方面的經(jīng)驗(yàn),那也要一并說出來,。
2,、談?wù)勀銓?duì)Hibernate的理解。
答:
1. 面向?qū)ο笤O(shè)計(jì)的軟件內(nèi)部運(yùn)行過程可以理解成就是在不斷創(chuàng)建各種新對(duì)象,、建立對(duì)象之間的關(guān)系,,調(diào)用對(duì)象的方法來改變各個(gè)對(duì)象的狀態(tài)和對(duì)象消亡的過程,不管程 序運(yùn)行的過程和操作怎么樣,,本質(zhì)上都是要得到一個(gè)結(jié)果,,程序上一個(gè)時(shí)刻和下一個(gè)時(shí)刻的運(yùn)行結(jié)果的差異就表現(xiàn)在內(nèi)存中的對(duì)象狀態(tài)發(fā)生了變化。
2.為了在關(guān)機(jī)和內(nèi)存空間不夠的狀況下,,保持程序的運(yùn)行狀態(tài),,需要將內(nèi)存中的對(duì)象狀態(tài)保存到持久化設(shè)備和從持久化設(shè)備中恢復(fù)出對(duì)象的狀態(tài),通常都是保存到 關(guān)系數(shù)據(jù)庫來保存大量對(duì)象信息,。從Java程序的運(yùn)行功能上來講,,保存對(duì)象狀態(tài)的功能相比系統(tǒng)運(yùn)行的其他功能來說,應(yīng)該是一個(gè)很不起眼的附屬功 能,,java采用jdbc來實(shí)現(xiàn)這個(gè)功能,,這個(gè)不起眼的功能卻要編寫大量的代碼,而做的事情僅僅是保存對(duì)象和恢復(fù)對(duì)象,,并且那些大量的jdbc代碼并沒有 什么技術(shù)含量,,基本上是采用一套例行公事的標(biāo)準(zhǔn)代碼模板來編寫,是一種苦活和重復(fù)性的工作,。
3.通過數(shù)據(jù)庫保存java程序運(yùn)行時(shí)產(chǎn)生的對(duì)象和恢復(fù)對(duì)象,,其實(shí)就是實(shí)現(xiàn)了java對(duì)象與關(guān)系數(shù)據(jù)庫記錄的映射關(guān)系,稱為ORM(即Object Relation Mapping),,人們可以通過封裝JDBC代碼來實(shí)現(xiàn)了這種功能,,封裝出來的產(chǎn)品稱之為ORM框架,Hibernate就是其中的一種流行ORM框架,。 使用Hibernate框架,,不用寫JDBC代碼,,僅僅是調(diào)用一個(gè)save方法,,就可以將對(duì)象保存到關(guān)系數(shù)據(jù)庫中,,僅僅是調(diào)用一個(gè)get方法,,就可以從數(shù) 據(jù)庫中加載出一個(gè)對(duì)象,。
4.使用Hibernate的基本流程是:配置Configuration對(duì)象、產(chǎn)生SessionFactory,、創(chuàng)建session對(duì)象,,啟動(dòng)事務(wù),完成CRUD操作,提交事務(wù),,關(guān)閉session,。
5.使用Hibernate時(shí),先要配置hibernate.cfg.xml文件,,其中配置數(shù)據(jù)庫連接信息和方言等,,還要為每個(gè)實(shí)體配置相應(yīng)的hbm.xml文件,hibernate.cfg.xml文件中需要登記每個(gè)hbm.xml文件,。
6.在應(yīng)用Hibernate時(shí),,重點(diǎn)要了解Session的緩存原理,級(jí)聯(lián),,延遲加載和hql查詢,。

3、AOP的作用,。


3,、你對(duì)Spring的理解。
1.Spring實(shí)現(xiàn)了工廠模式的工廠類(在這里有必要解釋清楚什么是工廠模式),,這個(gè)類名為BeanFactory(實(shí)際上是一個(gè)接口),,在程序中通常 BeanFactory的子類ApplicationContext。Spring相當(dāng)于一個(gè)大的工廠類,,在其配置文件中通過<bean>元 素配置用于創(chuàng)建實(shí)例對(duì)象的類名和實(shí)例對(duì)象的屬性,。
2. Spring提供了對(duì)IOC良好支持,IOC是一種編程思想,,是一種架構(gòu)藝術(shù),,利用這種思想可以很好地實(shí)現(xiàn)模塊之間的解耦。IOC也稱為DI(Depency Injection),,什么叫依賴注入呢,?
譬如,Class Programmer
{
Computer computer = null;
public void code()
{
//Computer computer = new IBMComputer();
//Computer computer = beanfacotry.getComputer();
computer.write();
}
public void setComputer(Computer computer)
{
this.computer = computer;
}
}
另外兩種方式都由依賴,,第一個(gè)直接依賴于目標(biāo)類,,第二個(gè)把依賴轉(zhuǎn)移到工廠上,第三個(gè)徹底與目標(biāo)和工廠解耦了,。在spring的配置文件中配置片段如下:
<bean id="computer" class="cn.itcast.interview.Computer">
</bean>


<bean id="programmer" class="cn.itcast.interview.Programmer">
<property name="computer" ref="computer"></property>
</bean>
3. Spring提供了對(duì)AOP技術(shù)的良好封裝,, AOP稱為面向切面編程,就是系統(tǒng)中有很多各不相干的類的方法,,在這些眾多方法中要加入某種系統(tǒng)功能的代碼,,例如,加入日志,,加入權(quán)限判斷,,加入異常處 理,,這種應(yīng)用稱為AOP。實(shí)現(xiàn)AOP功能采用的是代理技術(shù),,客戶端程序不再調(diào)用目標(biāo),,而調(diào)用代理類,代理類與目標(biāo)類對(duì)外具有相同的方法聲明,,有兩種方式可 以實(shí)現(xiàn)相同的方法聲明,,一是實(shí)現(xiàn)相同的接口,二是作為目標(biāo)的子類在,,JDK中采用Proxy類產(chǎn)生動(dòng)態(tài)代理的方式為某個(gè)接口生成實(shí)現(xiàn)類,,如果要為某個(gè)類生 成子類,則可以用CGLI B,。在生成的代理類的方法中加入系統(tǒng)功能和調(diào)用目標(biāo)類的相應(yīng)方法,,系統(tǒng)功能的代理以Advice對(duì)象進(jìn)行提供,顯然要?jiǎng)?chuàng)建出代理對(duì)象,,至少需要目標(biāo)類和 Advice類,。spring提供了這種支持,只需要在spring配置文件中配置這兩個(gè)元素即可實(shí)現(xiàn)代理和aop功能,,例如,,
<bean id="proxy" type="org.spring.framework.aop.ProxyBeanFactory">
<property name="target" ref=""></property>
<property name="advisor" ref=""></property>


</bean>


11、談?wù)凷truts中的Action servlet,。


12,、Struts優(yōu)缺點(diǎn) 

優(yōu)點(diǎn): 
1. 實(shí)現(xiàn)MVC模式,結(jié)構(gòu)清晰,使開發(fā)者只關(guān)注業(yè)務(wù)邏輯的實(shí)現(xiàn).
2.有豐富的tag可以用 ,Struts的標(biāo)記庫(Taglib),,如能靈活動(dòng)用,,則能大大提高開發(fā)效率
3. 頁面導(dǎo)航
使系統(tǒng)的脈絡(luò)更加清晰。通過一個(gè)配置文件,,即可把握整個(gè)系統(tǒng)各部分之間的聯(lián)系,,這對(duì)于后期的維護(hù)有著莫大的好處。尤其是當(dāng)另一批開發(fā)者接手這個(gè)項(xiàng)目時(shí),,這種優(yōu)勢(shì)體現(xiàn)得更加明顯,。
4. 提供Exception處理機(jī)制 . 
5. 數(shù)據(jù)庫鏈接池管理 
6. 支持I18N 
缺點(diǎn)
一、 轉(zhuǎn)到展示層時(shí),,需要配置forward,,如果有十個(gè)展示層的jsp,需要配置十次struts,,而且還不包括有時(shí)候目錄,、文件變更,需要重新修改forward,,注意,,每次修改配置之后,要求重新部署整個(gè)項(xiàng)目,,而tomcate這樣的服務(wù)器,,還必須重新啟動(dòng)服務(wù)器
二、 二,、 Struts 的Action必需是thread-safe方式,,它僅僅允許一個(gè)實(shí)例去處理所有的請(qǐng)求。所以action用到的所有的資源都必需統(tǒng)一同步,,這個(gè)就引起了線程安全的問題,。
三、 測(cè)試不方便. Struts的每個(gè)Action都同Web層耦合在一起,,這樣它的測(cè)試依賴于Web容器,,單元測(cè)試也很難實(shí)現(xiàn)。不過有一個(gè)Junit的擴(kuò)展工具Struts TestCase可以實(shí)現(xiàn)它的單元測(cè)試,。 
四,、 類型的轉(zhuǎn)換. Struts的FormBean把所有的數(shù)據(jù)都作為String類型,它可以使用工具Commons-Beanutils進(jìn)行類型轉(zhuǎn)化,。但它的轉(zhuǎn)化都是在Class級(jí)別,,而且轉(zhuǎn)化的類型是不可配置的。類型轉(zhuǎn)化時(shí)的錯(cuò)誤信息返回給用戶也是非常困難的,。
五,、 對(duì)Servlet的依賴性過強(qiáng). Struts處理Action時(shí)必需要依賴ServletRequest 和ServletResponse,所有它擺脫不了Servlet容器,。 
六,、 前端表達(dá)式語言方面.Struts集成了JSTL,所以它主要使用JSTL的表達(dá)式語言來獲取數(shù)據(jù),??墒荍STL的表達(dá)式語言在Collection和索引屬性方面處理顯得很弱。 
七,、 對(duì)Action執(zhí)行的控制困難. Struts創(chuàng)建一個(gè)Action,,如果想控制它的執(zhí)行順序?qū)?huì)非常困難。甚至你要重新去寫Servlet來實(shí)現(xiàn)你的這個(gè)功能需求,。 
八,、 對(duì)Action 執(zhí)行前和后的處理. Struts處理Action的時(shí)候是基于class的hierarchies,很難在action處理前和后進(jìn)行操作,。 
九,、 對(duì)事件支持不夠. 在struts中,實(shí)際是一個(gè)表單Form對(duì)應(yīng)一個(gè)Action類(或DispatchAction),,換一句話說:在Struts中實(shí)際是一個(gè)表單只能 對(duì)應(yīng)一個(gè)事件,,struts這種事件方式稱為application event,,application event和component event相比是一種粗粒度的事件




119、STRUTS的應(yīng)用(如STRUTS架構(gòu)) 
Struts是采用Java Servlet/JavaServer Pages技術(shù),,開發(fā)Web應(yīng)用程序的開放源碼的framework,。 采用Struts能開發(fā)出基于MVC(Model-View-Controller)設(shè)計(jì)模式的應(yīng)用構(gòu)架。 Struts有如下的主要功能: 一.包含一個(gè)controller servlet,,能將用戶的請(qǐng)求發(fā)送到相應(yīng)的Action對(duì)象,。 二.JSP自由tag庫,并且在controller servlet中提供關(guān)聯(lián)支持,,幫助開發(fā)員創(chuàng)建交互式表單應(yīng)用,。 三.提供了一系列實(shí)用對(duì)象:XML處理、通過Java reflection APIs自動(dòng)處理JavaBeans屬性,、國(guó)際化的提示和消息,。


110、說說struts1與struts2的區(qū)別,。
1.都是MVC的WEB框架,
2 struts1的老牌框架,,應(yīng)用很廣泛,有很好的群眾基礎(chǔ),,使用它開發(fā)風(fēng)險(xiǎn)很小,,成本更低!struts2雖然基于這個(gè)框架,,但是應(yīng)用群眾并多,,相對(duì)不成熟,未知的風(fēng)險(xiǎn)和變化很多,,開發(fā)人員相對(duì)不好招,,使用它開發(fā)項(xiàng)目的風(fēng)險(xiǎn)系數(shù)更大,用人成本更高,!
3.struts2畢竟是站在前輩的基礎(chǔ)設(shè)計(jì)出來,,它會(huì)改善和完善struts1中的一些缺陷,struts1中一些懸而未決問題在struts2得到了解決,。
4.struts1的前端控制器是一個(gè)Servlet,,名稱為ActionServlet,struts2的前端控制器是一個(gè)filter,,在 struts2.0中叫FilterDispatcher,,在struts2.1中叫StrutsPrepareAndExecuteFilter。
5.struts1的action需要繼承Action類,,struts2的action可以不繼承任何類,;struts1對(duì)同一個(gè)路徑的所有請(qǐng)求共享一 個(gè)Action實(shí)例,struts2對(duì)同一個(gè)路徑的每個(gè)請(qǐng)求分別使用一個(gè)獨(dú)立Action實(shí)例對(duì)象,,所有對(duì)于struts2的Action不用考慮線程安 全問題,。
6.在struts1中使用formbean封裝請(qǐng)求參數(shù),,在struts2中直接使用action的屬性來封裝請(qǐng)求參數(shù)。
7.struts1中的多個(gè)業(yè)務(wù)方法放在一個(gè)Action中時(shí)(即繼承DispatchAction時(shí)),,要么都校驗(yàn),,要么都不校驗(yàn);對(duì)于 struts2,,可以指定只對(duì)某個(gè)方法進(jìn)行校驗(yàn),當(dāng)一個(gè)Action繼承了ActionSupport且在這個(gè)類中只編寫了validateXxx()方 法,,那么則只對(duì)Xxx()方法進(jìn)行校驗(yàn),。


(一個(gè)請(qǐng)求來了的執(zhí)行流程進(jìn)行分析,struts2是自動(dòng)支持分模塊開發(fā),,并可以不同模塊設(shè)置不同的url前綴,,這是通過package的 namespace來實(shí)現(xiàn)的;struts2是支持多種類型的視圖,;struts2的視圖地址可以是動(dòng)態(tài)的,,即視圖的名稱是支持變量方式的,舉例,,論壇發(fā) 帖失敗后回來還要傳遞boardid,。視圖內(nèi)容顯示方面:它的標(biāo)簽用ognl,要el強(qiáng)大很多,,在國(guó)際化方面支持分模塊管理,,兩個(gè)模塊用到同樣的key, 對(duì)應(yīng)不同的消息,;)




與Struts1不同,,Struts2對(duì)用戶的每一次請(qǐng)求都會(huì)創(chuàng)建一個(gè)Action,所以Struts2中的Action是線程安全的,。


給我印象最深刻的是:struts配置文件中的redirect視圖的url不能接受參數(shù),,而struts2配置文件中的redirect視圖可以接受參數(shù)。




110,、hibernate中的update()和saveOrUpdate()的區(qū)別,,session的load()和get()的區(qū)別。
110,、簡(jiǎn)述 Hibernate 和 JDBC 的優(yōu)缺點(diǎn)? 如何書寫一個(gè) one to many 配置文件.
7,、iBatis與Hibernate有什么不同?
相同點(diǎn):屏蔽jdbc api的底層訪問細(xì)節(jié),使用我們不用與jdbc api打交道,,就可以訪問數(shù)據(jù),。
jdbc api編程流程固定,還將sql語句與java代碼混雜在了一起,,經(jīng)常需要拼湊sql語句,,細(xì)節(jié)很繁瑣,。
ibatis的好處:屏蔽jdbc api的底層訪問細(xì)節(jié);將sql語句與java代碼進(jìn)行分離;提供了將結(jié)果集自動(dòng)封裝稱為實(shí)體對(duì)象和對(duì)象的集合的功能,,queryForList返回對(duì)象 集合,,用queryForObject返回單個(gè)對(duì)象;提供了自動(dòng)將實(shí)體對(duì)象的屬性傳遞給sql語句的參數(shù),。


Hibernate是一個(gè)全自動(dòng)的orm映射工具,,它可以自動(dòng)生成sql語句,ibatis需要我們自己在xml配置文件中寫sql語 句,hibernate要比ibatis功能負(fù)責(zé)和強(qiáng)大很多,。因?yàn)閔ibernate自動(dòng)生成sql語句,,我們無法控制該語句,我們就無法去寫特定的高效 率的sql,。對(duì)于一些不太復(fù)雜的sql查詢,,hibernate可以很好幫我們完成,但是,,對(duì)于特別復(fù)雜的查詢,,hibernate就很難適應(yīng)了,這時(shí)候 用ibatis就是不錯(cuò)的選擇,,因?yàn)閕batis還是由我們自己寫sql語句,。




7、寫Hibernate的一對(duì)多和多對(duì)一雙向關(guān)聯(lián)的orm配置?
9,、hibernate的inverse屬性的作用?
解決方案一,,按照Object[]數(shù)據(jù)取出數(shù)據(jù),然后自己組bean
解決方案二,,對(duì)每個(gè)表的bean寫構(gòu)造函數(shù),,比如表一要查出field1,field2兩個(gè)字段,那么有一個(gè)構(gòu)造函數(shù)就是Bean(type1 filed1,type2 
field2) ,,然后在hql里面就可以直接生成這個(gè)bean了,。


10、在DAO中如何體現(xiàn)DAO設(shè)計(jì)模式?
解決方案一,,按照Object[]數(shù)據(jù)取出數(shù)據(jù),,然后自己組bean
解決方案二,對(duì)每個(gè)表的bean寫構(gòu)造函數(shù),,比如表一要查出field1,field2兩個(gè)字段,,那么有一個(gè)構(gòu)造函數(shù)就是Bean(type1 filed1,type2 
field2) ,然后在hql里面就可以直接生成這個(gè)bean了,。


10,、spring+Hibernate中委托方案怎么配置?
解決方案一,按照Object[]數(shù)據(jù)取出數(shù)據(jù),然后自己組bean
解決方案二,,對(duì)每個(gè)表的bean寫構(gòu)造函數(shù),,比如表一要查出field1,field2兩個(gè)字段,那么有一個(gè)構(gòu)造函數(shù)就是Bean(type1 filed1,type2 
field2) ,,然后在hql里面就可以直接生成這個(gè)bean了,。


10、spring+Hibernate中委托方案怎么配置?
解決方案一,,按照Object[]數(shù)據(jù)取出數(shù)據(jù),,然后自己組bean
解決方案二,對(duì)每個(gè)表的bean寫構(gòu)造函數(shù),,比如表一要查出field1,field2兩個(gè)字段,,那么有一個(gè)構(gòu)造函數(shù)就是Bean(type1 filed1,type2 
field2) ,然后在hql里面就可以直接生成這個(gè)bean了,。


8. hibernate進(jìn)行多表查詢每個(gè)表中各取幾個(gè)字段,,也就是說查詢出來的結(jié)果集沒有一個(gè)實(shí)體類與之對(duì)應(yīng)如何解決,;???


解決方案一,,按照Object[]數(shù)據(jù)取出數(shù)據(jù),然后自己組bean
解決方案二,,對(duì)每個(gè)表的bean寫構(gòu)造函數(shù),,比如表一要查出field1,field2兩個(gè)字段,那么有一個(gè)構(gòu)造函數(shù)就是Bean(type1 filed1,type2 

field2) ,,然后在hql里面就可以直接生成這個(gè)bean了,。


8.介紹一下Hibernate的二級(jí)緩存
按照以下思路來回答:(1)首先說清楚什么是緩存,(2)再說有了hibernate的Session就是一級(jí)緩存,,即有了一級(jí)緩存,,為什么還要有二級(jí)緩存,(3)最后再說如何配置Hibernate的二級(jí)緩存,。
(1)緩存就是把以前從數(shù)據(jù)庫中查詢出來和使用過的對(duì)象保存在內(nèi)存中(一個(gè)數(shù)據(jù)結(jié)構(gòu)中),,這個(gè)數(shù)據(jù)結(jié)構(gòu)通常是或類似Hashmap,當(dāng)以后要使用某個(gè)對(duì)象 時(shí),,先查詢緩存中是否有這個(gè)對(duì)象,,如果有則使用緩存中的對(duì)象,如果沒有則去查詢數(shù)據(jù)庫,,并將查詢出來的對(duì)象保存在緩存中,,以便下次使用。下面是緩存的偽代 碼:
引出hibernate的第二級(jí)緩存,,用下面的偽代碼分析了Cache的實(shí)現(xiàn)原理

  1. Dao  
  2. {  
  3. hashmap map = new map();  
  4. User getUser(integer id)  
  5. {  
  6. User user = map.get(id)  
  7. if(user == null)  
  8. {  
  9. user = session.get(id);  
  10. map.put(id,user);  
  11. }  
  12. return user;  
  13. }  
  14. }  
  15.   
  16. Dao  
  17. {  
  18. Cache cache = null  
  19. setCache(Cache cache)  
  20. {  
  21. this.cache = cache  
  22. }  
  23.   
  24. User getUser(int id)  
  25. {  
  26. if(cache!=null)  
  27. {  
  28. User user = cache.get(id);  
  29. if(user ==null)  
  30. {  
  31. user = session.get(id);  
  32. cache.put(id,user);  
  33. }  
  34. return user;  
  35. }  
  36.   
  37. return session.get(id);  
  38. }  
  39. }  

(2)Hibernate的Session就是一種緩存,,我們通常將之稱為Hibernate的一級(jí)緩存,當(dāng)想使用session從數(shù)據(jù)庫中查詢出一個(gè)對(duì) 象時(shí),Session也是先從自己內(nèi)部查看是否存在這個(gè)對(duì)象,,存在則直接返回,,不存在才去訪問數(shù)據(jù)庫,并將查詢的結(jié)果保存在自己內(nèi)部,。由于Session 代表一次會(huì)話過程,,一個(gè)Session與一個(gè)數(shù)據(jù)庫連接相關(guān)連,所以Session最好不要長(zhǎng)時(shí)間保持打開,,通常僅用于一個(gè)事務(wù)當(dāng)中,,在事務(wù)結(jié)束時(shí)就應(yīng)關(guān) 閉。并且Session是線程不安全的,,被多個(gè)線程共享時(shí)容易出現(xiàn)問題,。通常只有那種全局意義上的緩存才是真正的緩存應(yīng)用,才有較大的緩存價(jià)值,,因 此,,Hibernate的Session這一級(jí)緩存的緩存作用并不明顯,應(yīng)用價(jià)值不大,。Hibernate的二級(jí)緩存就是要為Hibernate配置一種 全局緩存,,讓多個(gè)線程和多個(gè)事務(wù)都可以共享這個(gè)緩存。我們希望的是一個(gè)人使用過,,其他人也可以使用,,session沒有這種效果。
(3)二級(jí)緩存是獨(dú)立于Hibernate的軟件部件,,屬于第三方的產(chǎn)品,,多個(gè)廠商和組織都提供有緩存產(chǎn)品,例如,,EHCache和OSCache等等,。 在Hibernate中使用二級(jí)緩存,首先就要在hibernate.cfg.xml配置文件中配置使用哪個(gè)廠家的緩存產(chǎn)品,,接著需要配置該緩存產(chǎn)品自己 的配置文件,,最后要配置Hibernate中的哪些實(shí)體對(duì)象要納入到二級(jí)緩存的管理中。明白了二級(jí)緩存原理和有了這個(gè)思路后,,很容易配置起 Hibernate的二級(jí)緩存,。擴(kuò)展知識(shí):一個(gè)SessionFactory可以關(guān)聯(lián)一個(gè)二級(jí)緩存,也即一個(gè)二級(jí)緩存只能負(fù)責(zé)緩存一個(gè)數(shù)據(jù)庫中的數(shù)據(jù),,當(dāng) 使用Hibernate 的二級(jí)緩存后,,注意不要有其他的應(yīng)用或SessionFactory來更改當(dāng)前數(shù)據(jù)庫中的數(shù)據(jù),這樣緩存的數(shù)據(jù)就會(huì)與數(shù)據(jù)庫中的實(shí)際數(shù)據(jù)不一致,。


111,、Spring 的依賴注入是什么意思? 給一個(gè) Bean 的 message 屬性, 字符串類型, 注入值為 "Hello" 的 XML 配置文件該怎么寫?


120、Jdo是什么? 
JDO是Java對(duì)象持久化的新的規(guī)范,為java data object的簡(jiǎn)稱,也是一個(gè)用于存取某種數(shù)據(jù)倉庫中的對(duì)象的標(biāo)準(zhǔn)化API,。JDO提供了透明的對(duì)象存儲(chǔ),,因此對(duì)開發(fā)人員來說,存儲(chǔ)數(shù)據(jù)對(duì)象完全不需要額 外的代碼(如JDBC API的使用),。這些繁瑣的例行工作已經(jīng)轉(zhuǎn)移到JDO產(chǎn)品提供商身上,,使開發(fā)人員解脫出來,從而集中時(shí)間和精力在業(yè)務(wù)邏輯上,。另外,,JDO很靈活,因?yàn)樗?可以在任何數(shù)據(jù)底層上運(yùn)行,。JDBC只是面向關(guān)系數(shù)據(jù)庫(RDBMS)JDO更通用,,提供到任何數(shù)據(jù)底層的存儲(chǔ)功能,比如關(guān)系數(shù)據(jù)庫,、文件,、XML以及對(duì) 象數(shù)據(jù)庫(ODBMS)等等,使得應(yīng)用可移植性更強(qiáng),。


什么是spring的IOC AOP
STRUTS的工作流程,!
spring 與EJB的區(qū)別!,!


10. 軟件工程與設(shè)計(jì)模式
111,、UML方面 
標(biāo)準(zhǔn)建模語言UML,。用例圖,靜態(tài)圖(包括類圖,、對(duì)象圖和包圖),行為圖,交互圖(順序圖,合作圖),實(shí)現(xiàn)圖。 
112. 軟件開發(fā)的
92,、j2ee常用的設(shè)計(jì)模式,?說明工廠模式。 
總共23種,,分為三大類:創(chuàng)建型,,結(jié)構(gòu)型,行為型
我只記得其中常用的6,、7種,,分別是:
創(chuàng)建型(工廠、工廠方法,、抽象工廠,、單例)
結(jié)構(gòu)型(包裝、適配器,,組合,,代理)
行為(觀察者,模版,策略)
然后再針對(duì)你熟悉的模式談?wù)勀愕睦斫饧纯伞?/span>


Java中的23種設(shè)計(jì)模式: 
Factory(工廠模式),, Builder(建造模式),, Factory Method(工廠方法模式), 
Prototype(原始模型模式),,Singleton(單例模式),, Facade(門面模式), 
Adapter(適配器模式),, Bridge(橋梁模式),, Composite(合成模式), 
Decorator(裝飾模式),, Flyweight(享元模式),, Proxy(代理模式), 
Command(命令模式),, Interpreter(解釋器模式),, Visitor(訪問者模式), 
Iterator(迭代子模式),, Mediator(調(diào)停者模式),, Memento(備忘錄模式), 
Observer(觀察者模式),, State(狀態(tài)模式),, Strategy(策略模式), 
Template Method(模板方法模式),, Chain Of Responsibleity(責(zé)任鏈模式) 
工廠模式:工廠模式是一種經(jīng)常被使用到的模式,,根據(jù)工廠模式實(shí)現(xiàn)的類可以根據(jù)提供的數(shù)據(jù)生成一組類中某一個(gè)類的實(shí)例,通常這一組類有一個(gè)公共的抽象父類并 且實(shí)現(xiàn)了相同的方法,,但是這些方法針對(duì)不同的數(shù)據(jù)進(jìn)行了不同的操作,。首先需要定義一個(gè)基類,該類的子類通過不同的方法實(shí)現(xiàn)了基類中的方法,。然后需要定義一 個(gè)工廠類,,工廠類可以根據(jù)條件生成不同的子類實(shí)例。當(dāng)?shù)玫阶宇惖膶?shí)例后,,開發(fā)人員可以調(diào)用基類中的方法而不必考慮到底返回的是哪一個(gè)子類的實(shí)例,。 
113、開發(fā)中都用到了那些設(shè)計(jì)模式?用在什么場(chǎng)合? 
每個(gè)模式都描述了一個(gè)在我們的環(huán)境中不斷出現(xiàn)的問題,,然后描述了該問題的解決方案的核心,。通過這種方式,你可以無數(shù)次地使用那些已有的解決方案,,無需在重 復(fù)相同的工作,。主要用到了MVC的設(shè)計(jì)模式,。用來開發(fā)JSP/Servlet或者J2EE的相關(guān)應(yīng)用。簡(jiǎn)單工廠模式等,。


11. j2ee部分
117,、BS與CS的聯(lián)系與區(qū)別。 
C/S是Client/Server的縮寫,。服務(wù)器通常采用高性能的PC,、工作站或小型機(jī),并采用大型數(shù)據(jù)庫系統(tǒng),,如Oracle,、Sybase、InFORMix或 SQL Server,??蛻舳诵枰惭b專用的客戶端軟件。 
B/S是Brower/Server的縮寫,,客戶機(jī)上只要安裝一個(gè)瀏覽器(Browser),,如Netscape Navigator或Internet Explorer,服務(wù)器安裝Oracle,、Sybase,、InFORMix或 SQL Server等數(shù)據(jù)庫。在這種結(jié)構(gòu)下,,用戶界面完全通過WWW瀏覽器實(shí)現(xiàn),,一部分事務(wù)邏輯在前端實(shí)現(xiàn),但是主要事務(wù)邏輯在服務(wù)器端實(shí)現(xiàn),。瀏覽器通過Web Server 同數(shù)據(jù)庫進(jìn)行數(shù)據(jù)交互,。 
C/S 與 B/S 區(qū)別: 
1.硬件環(huán)境不同: 
C/S 一般建立在專用的網(wǎng)絡(luò)上, 小范圍里的網(wǎng)絡(luò)環(huán)境, 局域網(wǎng)之間再通過專門服務(wù)器提供連接和數(shù)據(jù)交換服務(wù). 
B/S 建立在廣域網(wǎng)之上的, 不必是專門的網(wǎng)絡(luò)硬件環(huán)境,例與電話上網(wǎng), 租用設(shè)備. 信息自己管理. 有比C/S更強(qiáng)的適應(yīng)范圍, 一般只要有操作系統(tǒng)和瀏覽器就行 
2.對(duì)安全要求不同 
C/S 一般面向相對(duì)固定的用戶群, 對(duì)信息安全的控制能力很強(qiáng). 一般高度機(jī)密的信息系統(tǒng)采用C/S 結(jié)構(gòu)適宜. 可以通過B/S發(fā)布部分可公開信息. 
B/S 建立在廣域網(wǎng)之上, 對(duì)安全的控制能力相對(duì)弱, 可能面向不可知的用戶。 
3.對(duì)程序架構(gòu)不同 
C/S 程序可以更加注重流程, 可以對(duì)權(quán)限多層次校驗(yàn), 對(duì)系統(tǒng)運(yùn)行速度可以較少考慮. 
B/S 對(duì)安全以及訪問速度的多重的考慮, 建立在需要更加優(yōu)化的基礎(chǔ)之上. 比C/S有更高的要求 B/S結(jié)構(gòu)的程序架構(gòu)是發(fā)展的趨勢(shì), 從MS的.Net系列的BizTalk 2000 Exchange 2000等, 全面支持網(wǎng)絡(luò)的構(gòu)件搭建的系統(tǒng). SUN 和IBM推的JavaBean 構(gòu)件技術(shù)等,使 B/S更加成熟. 
4.軟件重用不同 
C/S 程序可以不可避免的整體性考慮, 構(gòu)件的重用性不如在B/S要求下的構(gòu)件的重用性好. 
B/S 對(duì)的多重結(jié)構(gòu),要求構(gòu)件相對(duì)獨(dú)立的功能. 能夠相對(duì)較好的重用.就入買來的餐桌可以再利用,而不是做在墻上的石頭桌子 
5.系統(tǒng)維護(hù)不同 
C/S 程序由于整體性, 必須整體考察, 處理出現(xiàn)的問題以及系統(tǒng)升級(jí). 升級(jí)難. 可能是再做一個(gè)全新的系統(tǒng) 
B/S 構(gòu)件組成,方面構(gòu)件個(gè)別的更換,實(shí)現(xiàn)系統(tǒng)的無縫升級(jí). 系統(tǒng)維護(hù)開銷減到最小.用戶從網(wǎng)上自己下載安裝就可以實(shí)現(xiàn)升級(jí). 
6.處理問題不同 
C/S 程序可以處理用戶面固定, 并且在相同區(qū)域, 安全要求高需求, 與操作系統(tǒng)相關(guān). 應(yīng)該都是相同的系統(tǒng) 
B/S 建立在廣域網(wǎng)上, 面向不同的用戶群, 分散地域, 這是C/S無法作到的. 與操作系統(tǒng)平臺(tái)關(guān)系最小. 
7.用戶接口不同 
C/S 多是建立的Window平臺(tái)上,表現(xiàn)方法有限,對(duì)程序員普遍要求較高 
B/S 建立在瀏覽器上, 有更加豐富和生動(dòng)的表現(xiàn)方式與用戶交流. 并且大部分難度減低,減低開發(fā)成本.
8.信息流不同 
C/S 程序一般是典型的中央集權(quán)的機(jī)械式處理, 交互性相對(duì)低 
B/S 信息流向可變化, B-B B-C B-G等信息,、流向的變化, 更像交易中心,。 
2,、應(yīng)用服務(wù)器與WEB SERVER的區(qū)別,?
應(yīng)用服務(wù)器:Weblogic、Tomcat,、Jboss 
WEB SERVER:IIS,、 Apache 
32、應(yīng)用服務(wù)器有那些,? 
BEA WebLogic Server,,IBM WebSphere Application Server,Oracle9i Application Server,,jBoss,,Tomcat


3,、J2EE是什么? 
答:Je22是Sun公司提出的多層(multi-diered),分布式(distributed),基于組件(component-base)的企業(yè) 級(jí)應(yīng)用模型(enterpriese application model).在這樣的一個(gè)應(yīng)用系統(tǒng)中,,可按照功能劃分為不同的組件,,這些組件又可在不同計(jì)算機(jī)上,并且處于相應(yīng)的層次(tier)中,。所屬層次包括客戶 層(clietn tier)組件,web層和組件,Business層和組件,企業(yè)信息系統(tǒng)(EIS)層,。


一個(gè)另類的回答:j2ee就是增刪改查。 
67,、J2EE是技術(shù)還是平臺(tái)還是框架,? 什么是J2EE
J2EE本身是一個(gè)標(biāo)準(zhǔn),一個(gè)為企業(yè)分布式應(yīng)用的開發(fā)提供的標(biāo)準(zhǔn)平臺(tái),。 
J2EE也是一個(gè)框架,,包括JDBC、JNDI,、RMI,、JMS、EJB,、JTA等技術(shù),。


95、請(qǐng)對(duì)以下在J2EE中常用的名詞進(jìn)行解釋(或簡(jiǎn)單描述) 

web容器:給處于其中的應(yīng)用程序組件(JSP,,SERVLET)提供一個(gè)環(huán)境,,使JSP,SERVLET直接更容器中的環(huán)境變量接口交互,不必關(guān)注其它 系統(tǒng)問題,。主要有WEB服務(wù)器來實(shí)現(xiàn),。例如:TOMCAT,WEBLOGIC,WEBSPHERE等。該容器提供的接口嚴(yán)格遵守J2EE規(guī)范中的WEB APPLICATION 標(biāo)準(zhǔn),。我們把遵守以上標(biāo)準(zhǔn)的WEB服務(wù)器就叫做J2EE中的WEB容器,。 
EJB容器:Enterprise java bean 容器。更具有行業(yè)領(lǐng)域特色,。他提供給運(yùn)行在其中的組件EJB各種管理功能,。只要滿足J2EE規(guī)范的EJB放入該容器,馬上就會(huì)被容器進(jìn)行高效率的管理,。并 且可以通過現(xiàn)成的接口來獲得系統(tǒng)級(jí)別的服務(wù),。例如郵件服務(wù)、事務(wù)管理,。 
JNDI:(Java Naming & Directory Interface)JAVA命名目錄服務(wù),。主要提供的功能是:提供一個(gè)目錄系統(tǒng),讓其它各地的應(yīng)用程序在其上面留下自己的索引,,從而滿足快速查找和定位分布式應(yīng)用程序的功能,。 
JMS:(Java Message Service)JAVA消息服務(wù),。主要實(shí)現(xiàn)各個(gè)應(yīng)用程序之間的通訊。包括點(diǎn)對(duì)點(diǎn)和廣播,。 
JTA:(Java Transaction API)JAVA事務(wù)服務(wù),。提供各種分布式事務(wù)服務(wù)。應(yīng)用程序只需調(diào)用其提供的接口即可,。 
JAF:(Java Action FrameWork)JAVA安全認(rèn)證框架,。提供一些安全控制方面的框架。讓開發(fā)者通過各種部署和自定義實(shí)現(xiàn)自己的個(gè)性安全控制策略,。 
RMI/IIOP:(Remote Method Invocation /internet對(duì)象請(qǐng)求中介協(xié)議)他們主要用于通過遠(yuǎn)程調(diào)用服務(wù),。例如,遠(yuǎn)程有一臺(tái)計(jì)算機(jī)上運(yùn)行一個(gè)程序,,它提供股票分析服務(wù),,我們可以在本地計(jì)算機(jī) 上實(shí)現(xiàn)對(duì)其直接調(diào)用。當(dāng)然這是要通過一定的規(guī)范才能在異構(gòu)的系統(tǒng)之間進(jìn)行通信,。RMI是JAVA特有的,。

80、如何給weblogic指定大小的內(nèi)存? 
(這個(gè)問題不作具體回答,,列出來只是告訴讀者可能會(huì)遇到什么問題,,你不需要面面俱到,什么都精通,。)


在啟動(dòng)Weblogic的腳本中(位于所在Domian對(duì)應(yīng)服務(wù)器目錄下的startServerName),,增加set MEM_ARGS=-Xms32m -Xmx200m,可以調(diào)整最小內(nèi)存為32M,,最大200M 
81,、如何設(shè)定的weblogic的熱啟動(dòng)模式(開發(fā)模式)與產(chǎn)品發(fā)布模式? 
可以在管理控制臺(tái)中修改對(duì)應(yīng)服務(wù)器的啟動(dòng)模式為開發(fā)或產(chǎn)品模式之一?;蛘咝薷姆?wù)的啟動(dòng)文件或者commenv文件,,增加set PRODUCTION_MODE=true。 
82,、如何啟動(dòng)時(shí)不需輸入用戶名與密碼? 
修改服務(wù)啟動(dòng)文件,,增加 WLS_USER和WLS_PW項(xiàng)。也可以在boot.properties文件中增加加密過的用戶名和密碼. 
83,、在weblogic管理制臺(tái)中對(duì)一個(gè)應(yīng)用域(或者說是一個(gè)網(wǎng)站,Domain)進(jìn)行jms及ejb或連接池等相關(guān)信息進(jìn)行配置后,實(shí)際保存在什么文件中? 
保存在此Domain的config.xml文件中,,它是服務(wù)器的核心配置文件。 
84,、說說weblogic中一個(gè)Domain的缺省目錄結(jié)構(gòu)?比如要將一個(gè)簡(jiǎn)單的helloWorld.jsp放入何目錄下,然的在瀏覽器上就可打入 http://主機(jī):端口號(hào)//helloword.jsp就可以看到運(yùn)行結(jié)果了? 又比如這其中用到了一個(gè)自己寫的javaBean該如何辦? 
Domain目錄服務(wù)器目錄applications,將應(yīng)用目錄放在此目錄下將可以作為應(yīng)用訪問,,如果是Web應(yīng)用,,應(yīng)用目錄需要滿足Web應(yīng)用目錄要 求,,jsp文件可以直接放在應(yīng)用目錄中,Javabean需要放在應(yīng)用目錄的WEB-INF目錄的classes目錄中,,設(shè)置服務(wù)器的缺省應(yīng)用將可以實(shí)現(xiàn) 在瀏覽器上無需輸入應(yīng)用名,。

 
85、在weblogic中發(fā)布ejb需涉及到哪些配置文件 
不同類型的EJB涉及的配置文件不同,,都涉及到的配置文件包括ejb-jar.xml,weblogic-ejb-jar.xmlCMP實(shí)體Bean一般還需要weblogic-cmp-rdbms-jar.xml 


86,、如何在weblogic中進(jìn)行ssl配置與客戶端的認(rèn)證配置或說說j2ee(標(biāo)準(zhǔn))進(jìn)行ssl的配置?

缺省安裝中使用DemoIdentity.jks和DemoTrust.jks KeyStore實(shí)現(xiàn)SSL,需要配置服務(wù)器使用Enable SSL,,配置其端口,,在產(chǎn)品模式下需要從CA獲取私有密鑰和數(shù)字證書,創(chuàng)建identity和trust keystore,,裝載獲得的密鑰和數(shù)字證書,。可以配置此SSL連接是單向還是雙向的,。 


87,、如何查看在weblogic中已經(jīng)發(fā)布的EJB? 

可以使用管理控制臺(tái),在它的Deployment中可以查看所有已發(fā)布的EJB 


12. ejb部分
8,、EJB是基于哪些技術(shù)實(shí)現(xiàn)的,?并說出SessionBean和EntityBean的區(qū)別,StatefulBean和StatelessBean的區(qū)別,。 
EJB包括Session Bean,、Entity Bean、Message Driven Bean,,基于JNDI,、RMI、JAT等技術(shù)實(shí)現(xiàn),。
SessionBean在J2EE應(yīng)用程序中被用來完成一些服務(wù)器端的業(yè)務(wù)操作,,例如訪問數(shù)據(jù)庫、調(diào)用其他EJB組件,。EntityBean被用來代表應(yīng)用系統(tǒng)中用到的數(shù)據(jù),。 
對(duì)于客戶機(jī),SessionBean是一種非持久性對(duì)象,,它實(shí)現(xiàn)某些在服務(wù)器上運(yùn)行的業(yè)務(wù)邏輯,。 
對(duì)于客戶機(jī),EntityBean是一種持久性對(duì)象,,它代表一個(gè)存儲(chǔ)在持久性存儲(chǔ)器中的實(shí)體的對(duì)象視圖,,或是一個(gè)由現(xiàn)有企業(yè)應(yīng)用程序?qū)崿F(xiàn)的實(shí)體。 
Session Bean 還可以再細(xì)分為 Stateful Session Bean 與 Stateless Session Bean ,,這兩種的 Session Bean都可以將系統(tǒng)邏輯放在 method之中執(zhí)行,,不同的是 Stateful Session Bean 可以記錄呼叫者的狀態(tài),,因此通常來說,一個(gè)使用者會(huì)有一個(gè)相對(duì)應(yīng)的 Stateful Session Bean 的實(shí)體,。Stateless Session Bean 雖然也是邏輯組件,,但是他卻不負(fù)責(zé)記錄使用者狀態(tài),也就是說當(dāng)使用者呼叫 Stateless Session Bean 的時(shí)候,,EJB Container 并不會(huì)找尋特定的 Stateless Session Bean 的實(shí)體來執(zhí)行這個(gè) method,。換言之,很可能數(shù)個(gè)使用者在執(zhí)行某個(gè) Stateless Session Bean 的 methods 時(shí),,會(huì)是同一個(gè) Bean 的 Instance 在執(zhí)行,。從內(nèi)存方面來看, Stateful Session Bean 與 Stateless Session Bean 比較,, Stateful Session Bean 會(huì)消耗 J2EE Server 較多的內(nèi)存,,然而 Stateful Session Bean 的優(yōu)勢(shì)卻在于他可以維持使用者的狀態(tài)。


2,、簡(jiǎn)要講一下 EJB 的 7 個(gè) Transaction Level? 
3,、EJB與JAVA BEAN的區(qū)別? 
Java Bean 是可復(fù)用的組件,,對(duì)Java Bean并沒有嚴(yán)格的規(guī)范,,理論上講,任何一個(gè)Java類都可以是一個(gè)Bean,。但通常情況下,,由于Java Bean是被容器所創(chuàng)建(如Tomcat)的,所以Java Bean應(yīng)具有一個(gè)無參的構(gòu)造器,,另外,,通常Java Bean還要實(shí)現(xiàn)Serializable接口用于實(shí)現(xiàn)Bean的持久性。Java Bean實(shí)際上相當(dāng)于微軟COM模型中的本地進(jìn)程內(nèi)COM組件,,它是不能被跨進(jìn)程訪問的,。Enterprise Java Bean 相當(dāng)于DCOM,即分布式組件,。它是基于Java的遠(yuǎn)程方法調(diào)用(RMI)技術(shù)的,,所以EJB可以被遠(yuǎn)程訪問(跨進(jìn)程、跨計(jì)算機(jī)),。但EJB必須被布署在 諸如Webspere,、WebLogic這樣的容器中,EJB客戶從不直接訪問真正的EJB組件,,而是通過其容器訪問,。EJB容器是EJB組件的代 理,EJB組件由容器所創(chuàng)建和管理??蛻敉ㄟ^容器來訪問真正的EJB組件,。 


31,、EJB包括(SessionBean,EntityBean)說出他們的生命周期,,及如何管理事務(wù)的? 

SessionBean:Stateless Session Bean 的生命周期是由容器決定的,,當(dāng)客戶機(jī)發(fā)出請(qǐng)求要建立一個(gè)Bean的實(shí)例時(shí),,EJB容器不一定要?jiǎng)?chuàng)建一個(gè)新的Bean的實(shí)例供客戶機(jī)調(diào)用,而是隨便找一個(gè)現(xiàn) 有的實(shí)例提供給客戶機(jī),。當(dāng)客戶機(jī)第一次調(diào)用一個(gè)Stateful Session Bean 時(shí),,容器必須立即在服務(wù)器中創(chuàng)建一個(gè)新的Bean實(shí)例,并關(guān)聯(lián)到客戶機(jī)上,,以后此客戶機(jī)調(diào)用Stateful Session Bean 的方法時(shí)容器會(huì)把調(diào)用分派到與此客戶機(jī)相關(guān)聯(lián)的Bean實(shí)例,。 
EntityBean:Entity Beans能存活相對(duì)較長(zhǎng)的時(shí)間,并且狀態(tài)是持續(xù)的,。只要數(shù)據(jù)庫中的數(shù)據(jù)存在,,Entity beans就一直存活。而不是按照應(yīng)用程序或者服務(wù)進(jìn)程來說的,。即使EJB容器崩潰了,,Entity beans也是存活的。Entity Beans生命周期能夠被容器或者 Beans自己管理,。 
EJB通過以下技術(shù)管理實(shí)務(wù):對(duì)象管理組織(OMG)的對(duì)象實(shí)務(wù)服務(wù)(OTS),,Sun Microsystems的Transaction Service(JTS)、Java Transaction API(JTA),,開發(fā)組(X/Open)的XA接口,。 
73、EJB容器提供的服務(wù) 
主要提供聲明周期管理,、代碼產(chǎn)生,、持續(xù)性管理、安全,、事務(wù)管理,、鎖和并發(fā)行管理等服務(wù)。


77,、EJB的激活機(jī)制 
以Stateful Session Bean 為例:其Cache大小決定了內(nèi)存中可以同時(shí)存在的Bean實(shí)例的數(shù)量,,根據(jù)MRU或NRU算法,實(shí)例在激活和去激活狀態(tài)之間遷移,,激活機(jī)制是當(dāng)客戶端調(diào) 用某個(gè)EJB實(shí)例業(yè)務(wù)方法時(shí),,如果對(duì)應(yīng)EJB Object發(fā)現(xiàn)自己沒有綁定對(duì)應(yīng)的Bean實(shí)例則從其去激活Bean存儲(chǔ)中(通過序列化機(jī)制存儲(chǔ)實(shí)例)回復(fù)(激活)此實(shí)例。狀態(tài)變遷前會(huì)調(diào)用對(duì)應(yīng)的 ejbActive和ejbPassivate方法。 
78,、EJB的幾種類型 
會(huì)話(Session)Bean ,,實(shí)體(Entity)Bean 消息驅(qū)動(dòng)的(Message Driven)Bean 
會(huì)話Bean又可分為有狀態(tài)(Stateful)和無狀態(tài)(Stateless)兩種 
實(shí)體Bean可分為Bean管理的持續(xù)性(BMP)和容器管理的持續(xù)性(CMP)兩種 
79、客服端調(diào)用EJB對(duì)象的幾個(gè)基本步驟 
設(shè)置JNDI服務(wù)工廠以及JNDI服務(wù)地址系統(tǒng)屬性,,查找Home接口,,從Home接口調(diào)用Create方法創(chuàng)建Remote接口,通過Remote接口調(diào)用其業(yè)務(wù)方法,。


13. webservice部分
4,、WEB SERVICE名詞解釋。JSWDL開發(fā)包的介紹,。JAXP,、JAXM的解釋。SOAP,、UDDI,WSDL解釋,。
Web ServiceWeb Service是基于網(wǎng)絡(luò)的、分布式的模塊化組件,,它執(zhí)行特定的任務(wù),,遵守具體的技術(shù)規(guī)范,這些規(guī)范使得Web Service能與其他兼容的組件進(jìn)行互操作,。 
(1)JAXP(Java API for XML Parsing) 定義了在Java中使用DOM, SAX, XSLT的通用的接口,。這樣在你的程序中你只要使用這些通用的接口,當(dāng)你需要改變具體的實(shí)現(xiàn)時(shí)候也不需要修改代碼,。 
(2)JAXM(Java API for XML Messaging) 是為SOAP通信提供訪問方法和傳輸機(jī)制的API,。 
(3)WSDL是一種 XML 格式,用于將網(wǎng)絡(luò)服務(wù)描述為一組端點(diǎn),,這些端點(diǎn)對(duì)包含面向文檔信息或面向過程信息的消息進(jìn)行操作,。這種格式首先對(duì)操作和消息進(jìn)行抽象描述,然后將其綁定到具體的網(wǎng)絡(luò)協(xié)議和消息格式上以定義端點(diǎn),。相關(guān)的具體端點(diǎn)即組合成為抽象端點(diǎn)(服務(wù)),。 
(4)SOAP即簡(jiǎn)單對(duì)象訪問協(xié)議(Simple Object Access Protocol),它是用于交換XML編碼信息的輕量級(jí)協(xié)議,。 
(5)UDDI 的目的是為電子商務(wù)建立標(biāo)準(zhǔn),;UDDI是一套基于Web的、分布式的,、為Web Service提供的,、信息注冊(cè)中心的實(shí)現(xiàn)標(biāo)準(zhǔn)規(guī)范,同時(shí)也包含一組使企業(yè)能將自身提供的Web Service注冊(cè),,以使別的企業(yè)能夠發(fā)現(xiàn)的訪問協(xié)議的實(shí)現(xiàn)標(biāo)準(zhǔn),。
88,、CORBA是什么?用途是什么? 
CORBA 標(biāo)準(zhǔn)是公共對(duì)象請(qǐng)求代理結(jié)構(gòu)(Common Object Request Broker Architecture),由對(duì)象管理組織 (Object Management Group,,縮寫為 OMG)標(biāo)準(zhǔn)化,。它的組成是接口定義語言(IDL), 語言綁定(binding:也譯為聯(lián)編)和允許應(yīng)用程序間互操作的協(xié)議。 其目的為:用不同的程序設(shè)計(jì)語言書寫在不同的進(jìn)程中運(yùn)行,,為不同的操作系統(tǒng)開發(fā),。




14. Linux
118、LINUX下線程,,GDI類的解釋,。 
LINUX實(shí)現(xiàn)的就是基于核心輕量級(jí)進(jìn)程的"一對(duì)一"線程模型,,一個(gè)線程實(shí)體對(duì)應(yīng)一個(gè)核心輕量級(jí)進(jìn)程,,而線程之間的管理在核外函數(shù)庫中實(shí)現(xiàn)。 
GDI類為圖像設(shè)備編程接口類庫,。


15. 問得稀里糊涂的題
65,、四種會(huì)話跟蹤技術(shù) 
會(huì)話作用域ServletsJSP 頁面描述 
page否是代表與一個(gè)頁面相關(guān)的對(duì)象和屬性。一個(gè)頁面由一個(gè)編譯好的 Java servlet 類(可以帶有任何的 include 指令,,但是沒有 include 動(dòng)作)表示,。這既包括 servlet 又包括被編譯成 servlet 的 JSP 頁面 
request是是代表與 Web 客戶機(jī)發(fā)出的一個(gè)請(qǐng)求相關(guān)的對(duì)象和屬性。一個(gè)請(qǐng)求可能跨越多個(gè)頁面,,涉及多個(gè) Web 組件(由于 forward 指令和 include 動(dòng)作的關(guān)系) 
session是是代表與用于某個(gè) Web 客戶機(jī)的一個(gè)用戶體驗(yàn)相關(guān)的對(duì)象和屬性,。一個(gè) Web 會(huì)話可以也經(jīng)常會(huì)跨越多個(gè)客戶機(jī)請(qǐng)求 
application是是代表與整個(gè) Web 應(yīng)用程序相關(guān)的對(duì)象和屬性。這實(shí)質(zhì)上是跨越整個(gè) Web 應(yīng)用程序,,包括多個(gè)頁面,、請(qǐng)求和會(huì)話的一個(gè)全局作用域 
69、簡(jiǎn)述邏輯操作(&,|,^)與條件操作(&&,||)的區(qū)別,。 
區(qū)別主要答兩點(diǎn):a.條件操作只能操作布爾型的,而邏輯操作不僅可以操作布爾型,而且可以操作數(shù)值型 
b.邏輯操作不會(huì)產(chǎn)生短路


16. 其他
1,、請(qǐng)用英文簡(jiǎn)單介紹一下自己.
4、WEB SERVICE名詞解釋,。JSWDL開發(fā)包的介紹,。JAXP、JAXM的解釋,。SOAP,、UDDI,WSDL解釋。
2,、請(qǐng)把 http://tomcat./ 首頁的這一段話用中文翻譯一下?
Apache Tomcat is the servlet container that is used in the official Reference Implementation for the Java Servlet and JavaServer Pages technologies. The Java Servlet and JavaServer Pages specifications are developed by Sun under the Java Community Process. 
Apache Tomcat is developed in an open and participatory environment and released under the Apache Software License. Apache Tomcat is intended to be a collaboration of the best-of-breed developers from around the world. We invite you to participate in this open development project. To learn more about getting involved, click here. 
Apache Tomcat powers numerous large-scale, mission-critical web applications across a diverse range of industries and organizations. Some of these users and their stories are listed on the PoweredBy wiki page.
3,、美資軟件公司JAVA工程師電話面試題目 
1. Talk about overriding, overloading.
2. Talk about JAVA design patterns you known.
3. Talk about the difference between LinkList, ArrayList and Victor.
4. Talk about the difference between an Abstract class and an Interface.
5. Class a = new Class(); Class b = new Class();
if(a == b) returns true or false, why?
6. Why we use StringBuffer when concatenating strings?
7. Try to explain Singleton to us? Is it thread safe? If no, how to make it thread safe?
8. Try to explain Ioc?
9. How to set many-to-many relationship in Hibernate?
10. Talk about the difference between INNER JOIN and LFET JOIN.
11. Why we use index in database? How many indexes is the maximum in one table as your suggestion?
12. When ‘Final' is used in class, method and property, what dose it mean?
13. Do you have any experience on XML? Talk about any XML tool you used ,e.g. JAXB, JAXG.
14. Do you have any experience on Linux?
15. In OOD what is the reason when you create a Sequence diagram? 
Administrator 10:34:20
1,堆和棧的區(qū)別,,有一個(gè)64k的字符串,,是放到堆上,還是放到棧上,為什么,?
2,,什么時(shí)候用到接口,什么時(shí)候用到抽象類,,二者區(qū)別
3,,有一個(gè)100萬的數(shù)組,里邊有兩個(gè)市重復(fù)的,,如何設(shè)計(jì)算法找到,。
4,設(shè)計(jì)數(shù)據(jù)庫時(shí),,n維,,如何設(shè)計(jì)。
例如[省份][城市][網(wǎng)吧],,這是三維關(guān)系,,它的表也應(yīng)該有三個(gè),網(wǎng)吧有外鍵引用城市,,城市有外鍵應(yīng)用省份,,這個(gè)規(guī)律就是下層的要有一外鍵去引用上層。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多