歡迎不想錯過亞信聯(lián)創(chuàng)java筆試題的朋友收藏和分享,具體內(nèi)容如下,大家敬請閱讀:
1、GC是什么?常用的兩種方法是什么?
答:
(1)GC是垃圾收集的意思(Garbage Collection),內(nèi)存處理是編程人員容易出現(xiàn)問題的地方,忘記或者錯誤的內(nèi)存回收會導(dǎo)致程序或系統(tǒng)的不穩(wěn)定甚至崩潰,Java提供了GC功能可以自動監(jiān)測對象是否超過作用域從而達(dá)到自動回收內(nèi)存的目的,Java語言沒有提供釋放已分配內(nèi)存的顯示操作方法。
(2)System.gc()用來強(qiáng)制立即回收垃圾,即釋放內(nèi)存。
java對內(nèi)存的釋放采取的垃圾自動回收機(jī)制,在編程的時候不用考慮變量不用釋放內(nèi)存,java虛擬機(jī)可以自動判斷出并收集到垃圾,但一般不會立即釋放它們的內(nèi)存空間,當(dāng)然也可以在程序中使用System.gc()來強(qiáng)制垃圾回收,但是要注意的是,系統(tǒng)并不保證會立即進(jìn)行釋放內(nèi)存。
gc首先要判斷該對象是否是時候可以收集。兩種常用的方法是引用計數(shù)和對象的引用遍歷。
2、線程常用的方法是什么?
答:
Thread類的常用方法:
static Thread currentThread() //靜態(tài)方法,通過這個方法可以獲得主線程的引用,從而達(dá)到操作主線程的目的。
static int activeCount() //靜態(tài)方法,獲得當(dāng)前活動線程數(shù)量
long getId() //獲得當(dāng)前線程的id
String getName() //獲得當(dāng)前線程的名字
int getPriority() //獲得優(yōu)先級
boolean isAlive() //當(dāng)前線程是否處于活動狀態(tài)。
boolean isDaemon() //是否為守護(hù)線程
void run() //run()方法,我們用線程,主要就是對run()方法的重寫
void start() //使該線程開始執(zhí)行;Java虛擬機(jī)調(diào)用該線程run()方法。
void sleep() //使當(dāng)前線程休眠,以執(zhí)行其他線程,如Thread.sleep(1000)休眠1秒
3、Sleep()和wait()的區(qū)別?
答:
sleep()方法是使線程停止一段時間的方法。在sleep時間間隔期滿后,線程不一定立即恢復(fù)執(zhí)行。因為在那個時刻,其他線程可能正在運行而且沒有被調(diào)度為放棄執(zhí)行,除非“醒來”的線程有更高的優(yōu)先級,或者正在運行的線程因為其他原因而阻塞。
wait()是線程交互時,如果線程對一個同步對象x發(fā)出一個wait()調(diào)用,該線程會暫停執(zhí)行,被調(diào)用對象進(jìn)入等待狀態(tài),直到被喚醒或等待時間到。
4、EJB和JavaBean都是什么?
答:
javabean是客戶端組件,EJB是服務(wù)器端組件。
其實EJB和javabean最根本的區(qū)別是分布性。
5、EJB都有哪些構(gòu)成?
答:
Session Bean,Entity Bean,Message Driven Bean.
6、Servlet的生命周期,比CGI有什么優(yōu)點?
答:
web容器加載servlet,生命周期開始。通過調(diào)用servlet的init()方法進(jìn)行servlet的初始化。通過調(diào)用service()方法實現(xiàn),根據(jù)請求的不同調(diào)用不用的do()方法。結(jié)束服務(wù),web容器調(diào)用servlet的destroy()方法。
Servlet是Java平臺上的CGI技術(shù)。Servlet在服務(wù)器端運行,動態(tài)地生成Web頁面,與傳統(tǒng)的CGI和許多其他類似CGI的技術(shù)相比,JavaServlet具有更高的效率并更容易使用。對于Servlet,重復(fù)的請求不會導(dǎo)致同一程序的多次轉(zhuǎn)載,它是依靠線程的方式來支持并訪問的。
7、存儲過程和函數(shù)的區(qū)別?
答:
本質(zhì)上沒有區(qū)別。只是函數(shù)有只能返回一個變量的限制,而存儲過程可以返回多個。函數(shù)是可以嵌入在sql中使用的,可以在select中調(diào)用,而存儲過程不行。執(zhí)行的本質(zhì)都是一樣。函數(shù)限制比較多,比如不能用臨時表,只能用表變量。還有一些函數(shù)都不可用等等,而存儲過程的限制相對就比較少。
8、Java Server Page 和 servlet的聯(lián)系與區(qū)別?
答:
JSP在本質(zhì)上就是servlet,但兩者的創(chuàng)建方式不一樣。
servlet完全是Java程序代碼構(gòu)成的,擅長流程控制和事務(wù)處理,通過servlet來生成動態(tài)網(wǎng)頁很不直觀。
JSP是由HTML代碼和JSP表情構(gòu)成,可以方便地編寫動態(tài)網(wǎng)頁。
因此實際應(yīng)用中采用servlet來控制業(yè)務(wù)流程,而采用JSP來生成動態(tài)網(wǎng)頁,JSP是servlet技術(shù)的拓展,本質(zhì)上就是Servlet的簡易方式,JSP編譯后是“類servlet”。