您好,登錄后才能下訂單哦!
這篇文章主要講解了“Java有哪些筆試題”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Java有哪些筆試題”吧!
下面有關JVM內存,說法錯誤的是?
A、程序計數器是一個比較小的內存區域,用于指示當前線程所執行的字節碼執行到了第幾行,是線程隔離的。
B、虛擬機棧描述的是Java方法執行的內存模型,用于存儲局部變量,操作數棧,動態鏈接,方法出口等信息,是線程隔離的。
C、方法區用于存儲JVM加載的類信息、常量、靜態變量、以及編譯器編譯后的代碼等數據,是線程隔離的。
D、原則上講,所有的對象都在堆區上分配內存,是線程之間共享的。
點擊下方空白區域查看答案解析!
▼
正確答案:C
答案解析: 方法區在JVM中也是一個非常重要的區域,它與堆一樣,是被線程共享的區域。 在方法區中,存儲了每個類的信息(包括類的名稱、方法信息、字段信息)、靜態變量、常量以及編譯器編譯后的代碼等。
下列關于構造方法不正確的是:( )
A、類的構造方法和類同名
B、一個類可以有多個構造方法
C、在實例化對象時必須調用類的構造方法
D、構造方法可以和該類其他方法一樣被該類對象調用
點擊下方空白區域查看答案解析!
▼
正確答案:D
答案解析: 構造方法是用來構造對象實例的。而成員方法是用來執行某種功能的,需要對象實例來調用。所以順序是:構造方法執行得到對象實例,對象實例調用成員方法。構造在前,實例對象在后,不可能調用!
【多選】實現或繼承了Collection接口的是()
A、Map
B、List
C、Vector
D、Iterator
E、Set
點擊下方空白區域查看答案解析!
▼
正確答案:BCE
答案解析:
1、A中的Map接口以鍵值對(key—value)的形式存放對象,其中鍵(key)對象不可以重復,值(value)對象可以重復,排序方式為按照自身內部的規則。
2、B中的List接口繼承了Collection接口,List接口允許存放重復的對象,排序方式為按照對象的插入順序。
3、C中的Vector實現了List接口,即間接實現Collection接口。
4、D中的Iterator,所有的集合類,都實現了Iterator接口,這是一個用于遍歷集合中元素的接口,沒有實現Collection接口。
5、E中的Set接口繼承了Collection接口,Set接口不允許存放重復的對象,排序方式為按照自身內部的排序規則。
好了,還是得多說幾句,關于上面三道題的一點小擴展
一、關于線程隔離和線程共享
JVM中線程隔離的有:
程序計數器:
一小塊內存空間,單前線程所執行的字節碼行號指示器。字節碼解釋器工作時,通過改變這個計數器的值來選取下一條需要執行的字節碼指令,分支、循環、跳轉、異常處理、線程恢復等基礎功能都需要依賴這個計數器來完成。
JVM虛擬機棧:
Java方法執行內存模型,用于存儲局部變量,操作數棧,動態鏈接,方法出口等信息。是線程私有的。
本地方法棧:
為JVM用到的Native方法服務,SunHotSpot 虛擬機把本地方法棧和JVM虛擬機棧合二為一。是線程私有的。
JVM中線程共享的有:
方法區:
用于存儲JVM加載的類信息、常量、靜態變量、即使編譯器編譯后的代碼等數據。
運行時常量池:
是方法區的一部分,用于存放編譯器生成的各種字面量和符號引用,這部分內容將在類加載后存放到方法取得運行時常量池中。具備動態性,用的比較多的就是String類的intern()方法。
JVM堆:
存放所有對象實例的地方。
新生代,由Eden Space 和大小相同的兩塊Survivor組成
舊生代,存放經過多次垃圾回收仍然存活的對象
二、關于Java中的反射和構造方法
A和B沒有疑問,C的話因為有反射,這里可能有朋友會采坑。反射雖然沒有New對象,但一樣依賴類的構造方法。獲取想要操作類的java.lang.Class對象。每個類被加載后,系統就會為該類生成一個對應的Class對象,class對象就可以訪問java虛擬機中的這個類。
獲取Class有三種方法:
1、調用某個對象的getclass()方法.
例如:person person=new person();Class cla=person.getclass()調/2、用某個類的class屬性來獲取該類對應的class對象
例如:Class cla=Person.class;
3、使用class類的forName()靜態方法例
如:class cla=Class.ForName(“com.amuxia.person”)
調用其構造方法,這里舉幾種例子:
1、getConstructor(class[]params)作用:
返回此class對象所表示的類的指定的public構造方法。
例如:Constructorc=cla.getConstructor(string.class,String.class,Integer.class)
2、getConstructors作用:
返回此class對象所表示的類的所有public構造方法。
例如:Constructor[]arrc=cla.getConstructors()
3、getDeclaredConstructor(class[]params)作用:
返回此class對象所表示的類的指定的構造方法,與構造方法的訪問級別無關。
例如:Consteuctorc=cla.getDeclaredconstructor(string.class,string.class,Integer.class)
4、getDeclaredConstructors()作用:
返回此class對象所表示的類的全部構造方法。
例如:Constructor[]arrc=cla.getDeclaredConsteructors();
感謝各位的閱讀,以上就是“Java有哪些筆試題”的內容了,經過本文的學習后,相信大家對Java有哪些筆試題這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。