亞信聯(lián)創(chuàng)java筆試題和面試題答案(一)

思而思學(xué)網(wǎng)

歡迎不想錯(cuò)過(guò)亞信聯(lián)創(chuàng)java筆試題的朋友收藏和分享,具體內(nèi)容如下,大家敬請(qǐng)閱讀:
1、GC是什么?常用的兩種方法是什么?

答:

(1)GC是垃圾收集的意思(Garbage Collection),內(nèi)存處理是編程人員容易出現(xiàn)問(wèn)題的地方,忘記或者錯(cuò)誤的內(nèi)存回收會(huì)導(dǎo)致程序或系統(tǒng)的不穩(wěn)定甚至崩潰,Java提供了GC功能可以自動(dòng)監(jiān)測(cè)對(duì)象是否超過(guò)作用域從而達(dá)到自動(dòng)回收內(nèi)存的目的,Java語(yǔ)言沒(méi)有提供釋放已分配內(nèi)存的顯示操作方法。

(2)System.gc()用來(lái)強(qiáng)制立即回收垃圾,即釋放內(nèi)存。

java對(duì)內(nèi)存的釋放采取的垃圾自動(dòng)回收機(jī)制,在編程的時(shí)候不用考慮變量不用釋放內(nèi)存,java虛擬機(jī)可以自動(dòng)判斷出并收集到垃圾,但一般不會(huì)立即釋放它們的內(nèi)存空間,當(dāng)然也可以在程序中使用System.gc()來(lái)強(qiáng)制垃圾回收,但是要注意的是,系統(tǒng)并不保證會(huì)立即進(jìn)行釋放內(nèi)存。

gc首先要判斷該對(duì)象是否是時(shí)候可以收集。兩種常用的方法是引用計(jì)數(shù)和對(duì)象的引用遍歷。

2、線程常用的方法是什么?

答:

Thread類的常用方法:

static Thread currentThread() //靜態(tài)方法,通過(guò)這個(gè)方法可以獲得主線程的引用,從而達(dá)到操作主線程的目的。

static int activeCount() //靜態(tài)方法,獲得當(dāng)前活動(dòng)線程數(shù)量

long getId() //獲得當(dāng)前線程的id

String getName() //獲得當(dāng)前線程的名字

int getPriority() //獲得優(yōu)先級(jí)

boolean isAlive() //當(dāng)前線程是否處于活動(dòng)狀態(tài)。

boolean isDaemon() //是否為守護(hù)線程

void run() //run()方法,我們用線程,主要就是對(duì)run()方法的重寫

void start() //使該線程開始執(zhí)行;Java虛擬機(jī)調(diào)用該線程run()方法。

void sleep() //使當(dāng)前線程休眠,以執(zhí)行其他線程,如Thread.sleep(1000)休眠1秒

3、Sleep()和wait()的區(qū)別?

答:

sleep()方法是使線程停止一段時(shí)間的方法。在sleep時(shí)間間隔期滿后,線程不一定立即恢復(fù)執(zhí)行。因?yàn)樵谀莻(gè)時(shí)刻,其他線程可能正在運(yùn)行而且沒(méi)有被調(diào)度為放棄執(zhí)行,除非“醒來(lái)”的線程有更高的優(yōu)先級(jí),或者正在運(yùn)行的線程因?yàn)槠渌蚨枞?/p>

wait()是線程交互時(shí),如果線程對(duì)一個(gè)同步對(duì)象x發(fā)出一個(gè)wait()調(diào)用,該線程會(huì)暫停執(zhí)行,被調(diào)用對(duì)象進(jìn)入等待狀態(tài),直到被喚醒或等待時(shí)間到。

4、EJB和JavaBean都是什么?

答:

javabean是客戶端組件,EJB是服務(wù)器端組件。

其實(shí)EJB和javabean最根本的區(qū)別是分布性。

5、EJB都有哪些構(gòu)成?

答:

Session Bean,Entity Bean,Message Driven Bean.

6、Servlet的生命周期,比CGI有什么優(yōu)點(diǎn)?

答:

web容器加載servlet,生命周期開始。通過(guò)調(diào)用servlet的init()方法進(jìn)行servlet的初始化。通過(guò)調(diào)用service()方法實(shí)現(xiàn),根據(jù)請(qǐng)求的不同調(diào)用不用的do()方法。結(jié)束服務(wù),web容器調(diào)用servlet的destroy()方法。

Servlet是Java平臺(tái)上的CGI技術(shù)。Servlet在服務(wù)器端運(yùn)行,動(dòng)態(tài)地生成Web頁(yè)面,與傳統(tǒng)的CGI和許多其他類似CGI的技術(shù)相比,JavaServlet具有更高的效率并更容易使用。對(duì)于Servlet,重復(fù)的請(qǐng)求不會(huì)導(dǎo)致同一程序的多次轉(zhuǎn)載,它是依靠線程的方式來(lái)支持并訪問(wèn)的。

7、存儲(chǔ)過(guò)程和函數(shù)的區(qū)別?

答:

本質(zhì)上沒(méi)有區(qū)別。只是函數(shù)有只能返回一個(gè)變量的限制,而存儲(chǔ)過(guò)程可以返回多個(gè)。函數(shù)是可以嵌入在sql中使用的,可以在select中調(diào)用,而存儲(chǔ)過(guò)程不行。執(zhí)行的本質(zhì)都是一樣。函數(shù)限制比較多,比如不能用臨時(shí)表,只能用表變量。還有一些函數(shù)都不可用等等,而存儲(chǔ)過(guò)程的限制相對(duì)就比較少。

8、Java Server Page 和 servlet的聯(lián)系與區(qū)別?

答:

JSP在本質(zhì)上就是servlet,但兩者的創(chuàng)建方式不一樣。

servlet完全是Java程序代碼構(gòu)成的,擅長(zhǎng)流程控制和事務(wù)處理,通過(guò)servlet來(lái)生成動(dòng)態(tài)網(wǎng)頁(yè)很不直觀。

JSP是由HTML代碼和JSP表情構(gòu)成,可以方便地編寫動(dòng)態(tài)網(wǎng)頁(yè)。

因此實(shí)際應(yīng)用中采用servlet來(lái)控制業(yè)務(wù)流程,而采用JSP來(lái)生成動(dòng)態(tài)網(wǎng)頁(yè),JSP是servlet技術(shù)的拓展,本質(zhì)上就是Servlet的簡(jiǎn)易方式,JSP編譯后是“類servlet”。

熱門推薦

最新文章