更新時間:2020-07-27 15:38:48 來源:動力節點 瀏覽5793次
1、Java中堆和棧有什么區別?
JVM中堆和棧屬于不同的內存區域,使用目的也不同。棧常用于保存方法幀和局部變量,而對象總是在堆上分配。棧通常都比堆小,也不會在多個線程之間共享,而堆被整個JVM的所有線程共享。
2、解釋一下hibernate的延遲加載機制。
最直觀的認識:在hibernate方法中,直接涉及到延遲加載的方法有get和load,使用get時,不會延遲加載,load則反之。另外,在many-to-one等關系配置中,我們也可以通過lazy屬性設置是否延遲加載。
3、wait()和sleep()的區別
sleep來自Thread類,和wait來自Object類
調用sleep()方法的過程中,線程不會釋放對象鎖。而調用wait方法線程會釋放對象鎖
sleep睡眠后不出讓系統資源,wait讓出系統資源其他線程可以占用CPU
sleep(milliseconds)需要指定一個睡眠時間,時間一到會自動喚醒
4、JAVA多態的實現原理
a.抽象的來講,多態的意思就是同一消息可以根據發送對象的不同而采用多種不同的行為方式。(發送消息就是函數調用)
b.實現的原理是動態綁定,程序調用的方法在運行期才動態綁定,追溯源碼可以發現,JVM通過參數的自動轉型來找到合適的辦法
5、CAS(Compare And Swap)無鎖算法:
CAS是樂觀鎖技術,當多個線程嘗試使用CAS同時更新同一個變量時,只有其中一個線程能更新變量的值,而其它線程都失敗,失敗的線程并不會被掛起,而是被告知這次競爭中失敗,并可以再次嘗試。CAS有3個操作數,內存值V,舊的預期值A,要修改的新值B。當且僅當預期值A和內存值V相同時,將內存值V修改為B,否則什么都不做。
6、你所知道的集合類都有哪些?主要方法?
最常用的集合類是List和Map。List的具體實現包括ArrayList和Vector,它們是可變大小的列表,比較適合構建、存儲和操作任何類型對象的元素列表。List適用于按數值索引訪問元素的情形。Map提供了一個更通用的元素存儲方法。Map集合類用于存儲元素對(稱作“鍵”和“值”),其中每個鍵映射到一個值。
7、描述一下JVM加載class文件的原理機制?
JVM中類的裝載是由ClassLoader和它的子類來實現的,Java ClassLoader是一個重要的Java運行時系統組件。它負責在運行時查找和裝入類文件的類
8、servlet的生命周期
web容器加載servlet,生命周期開始。通過調用servlet的init()方法進行servlet的初始化。通過調用service()方法實現,根據請求的不同調用不同的do***()方法。結束服務,web容器調用servlet的destroy()方法。
9、類加載機制:
類的加載指的是將類的.class文件中的二進制數據讀入到內存中,將其放在運行時數據區的方法去內,然后在
堆區創建一個java.lang.Class對象,用來封裝在方法區內的數據結構。類的加載最終是在堆區內的Class對象,Class對象封裝了類在方法區內的數據結構,并且向Java程序員提供了訪問方法區內的數據結構的接口。
以上就是動力節點java培訓機構的小編針對“亞信科技Java筆試題,應屆實習生參考”的內容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習