A.int是java提供的8種原始數據類型之一
B.Integer是java爲int提供的封裝類
C.int的默認值爲0
D.Integer的默認值爲1java
答案:
Dgit
解析:
略github
//precondition: x >=0 public void mystery (int x) { System.out.print(x % 10); if ((x / 10) != 0) { mystery(x / 10); } System.out.print(x % 10); }
A.1441
B.43211234
C.3443
D.12344321web
答案:
B面試
解析:
遞歸調用算法
A.public
B.private
C.static
D.protected編程
答案:
C安全
解析:
類訪問控制符只有三種:public ,private, protected static和訪問控制無關微信
A.private
B.public
C.protected
D.final網絡
答案:
D
解析:
private : 修飾私有變量
public : 修飾公有變量
protected: 修飾受保護變量
沒有final, final用於保護變量不受改變
A.能夠,局部變量能夠與成員變量重名,這時可用「this」來指向成員變量
B.能夠,這時可用「local」關鍵字來指向局部變量
C.不能,局部變量不能與成員變量重名
D.不能,在一個類中不能有重名變量,不論是成員變量仍是函數中的局部變量
答案:
A
解析:
JAVA訪問變量採用就近原則,局部變量與成員變量重名時,局部變量比較近,使用局部變量
A.在類方法中可用this來調用本類的類方法
B.在類方法中調用本類的類方法可直接調用
C.在類方法中只能調用本類的類方法
D.在類方法中絕對不能調用實例方法
答案:
B
解析:
在類方法中調用本類的類方法可直接調用。 實例方法也叫作對象方法。
類方法是屬於整個類的,而實例方法是屬於類的某個對象的。
因爲類方法是屬於整個類的,並不屬於類的哪一個對象,因此類方法的方法體中不能有與類的對象有關的內容。即類方法體有以下限制:
(1) 類方法中不能引用對象變量;
(2) 類方法中不能調用類的對象方法;
(3) 在類方法中不能使用super、this關鍵字。
(4)類方法不能被覆蓋。
若是違反這些限制,就會致使程序編譯錯誤。
與類方法相比,對象方法幾乎沒有什麼限制:
(1) 對象方法中能夠引用對象變量,也能夠引用類變量;
(2) 對象方法中能夠調用類方法;
(3) 對象方法中可使用super、this關鍵字。
A.依賴注入可以獨立開發各組件,而後根據組件間關係進行組裝
B.依賴注入提供使用接口編程
C.依賴注入使組件之間相互依賴,相互制約
D.依賴注入指對象在使用時動態注入
答案:
C
解析:
依賴注入目的是減小組件之間的耦合度,使開發變得簡單。
class A { public A() { System.out.println("class A"); } { System.out.println("I'm A class"); } static { System.out.println("class A static"); } } public class B extends A { public B() { System.out.println("class B"); } { System.out.println("I'm B class"); } static { System.out.println("class B static"); } public static void main(String[] args) { new B(); } }
A.
class A static class B static I'm A class class A I'm B class class B
B.
class A static I'm A class class A class B static I'm B class class B
C.
class A static class B static class A I'm A class class B I'm B class
D.
class A static class A I'm A class class B static class B I'm B class
答案:
A
解析:
此題考慮 Java 中構造器、初始化塊、靜態初始化塊的執行順序。
靜態初始化塊 > 初始化塊 > 構造器
父類 > 子類
綜合下來順序就是:
父類靜態初始化塊
子類靜態初始化塊
父類初始化塊
父類構造器
子類初始化塊
子類構造器
須要注意靜態初始化塊是在類第一次加載的時候就會進行初始化。
A."9HelloWorld"
B."_Hello World"
C."Hello*World"
D."Hello$World"
答案:
D
解析:
標識符是以字母開頭的字母數字序列:
數字是指0~9,字母指大小寫英文字母、下劃線(_)和美圓符號($),也能夠是Unicode字符集中的字符,如漢字;
字母、數字等字符的任意組合,不能包含+、- 等字符;
不能使用關鍵字;
大小寫敏感
由此能夠看出:
A:不能夠數字開頭
B:用下劃線開頭符合,可是中間有空格
C:不能包含「」
排除ABC,答案便是D
class X{ Y y=new Y(); public X(){ System.out.print("X"); } } class Y{ public Y(){ System.out.print("Y"); } } public class Z extends X{ Y y=new Y(); public Z(){ System.out.print("Z"); } public static void main(String[] args) { new Z(); } }
A.ZYXX
B.ZYXY
C.YXYZ
D.XYZX
答案:
C
解析:
1.父類靜態代碼塊 (java虛擬機加載類時,就會執行該塊代碼,故只執行一次)
2 .子類靜態代碼塊 (java虛擬機加載類時,就會執行該塊代碼,故只執行一次)
A.default String s
B.public final static native int w( )
C.abstract double d
D.abstract final double hyperbolicCosine( )
答案:
B
解析:
A:java的訪問權限有public、protected、private和default的,default不能修飾變量
C:普通變量不能用abstract修飾,abstract通常修飾方法和類
D:被定義爲abstract的類須要被子類繼承,可是被修飾爲final的類是不能被繼承和改寫的心存疑問能夠實驗一下,看是否能經過編譯.
A.虛擬機
B.多個CPU
C.異步調用
D.監視器
答案:
D
解析:
同步執行,須要監視器,即鎖。
double d1=-0.5; System.out.println("Ceil d1="+Math.ceil(d1)); System.out.println("floor d1="+Math.floor(d1));
A.Ceil d1=-0.0 floor d1=-1.0
B.Ceil d1=0.0 floor d1=-1.0
C.Ceil d1=-0.0 floor d1=-0.0
D.Ceil d1=0.0 floor d1=0.0
E.Ceil d1=0 floor d1=-1
答案:
A
解析:
public class TestClass { private static void testMethod(){ System.out.println("testMethod"); } public static void main(String[] args) { ((TestClass)null).testMethod(); } }
A.編譯不經過
B.編譯經過,運行異常,報NullPointerException
C.編譯經過,運行異常,報IllegalArgumentException
D.編譯經過,運行異常,報NoSuchMethodException
E.編譯經過,運行異常,報Exception
F.運行正常,輸出testMethod
答案:
F
解析:
1)此處是類對方法的調用,不是對象對方法的調用。
2)方法是static靜態方法,直接使用"類.方法"便可,由於靜態方法使用不依賴對象是否被建立。null能夠被強制類型轉換成任意類型(不是任意類型對象),因而能夠經過它來執行靜態方法。
3)非靜態的方法用"對象.方法"的方式,必須依賴對象被建立後才能使用,若將testMethod()方法前的static去掉,則會報 空指針異常 。此處也驗證了2)的觀點
固然,不論是否靜態方法,都是已經存在的,只是訪問方式不一樣。
A.java.util.ConcurrentHashMap
B.java.util.Map
C.java.util.TreeMap
D.java.util.SortMap
E.java.util.Hashtable
F.java.util.HashMap
答案:
A E
解析:
A.HttpSessionAttributeListener
B.HttpSessionBindingListener
C.HttpSessionObjectListener
D.HttpSessionListener;
E.HttpSession
F.HttpSessionActivationListener
答案:
A
解析:
HttpSessionAttributeListener:能夠實現此偵聽器接口獲取此web應用程序中會話屬性列表更改的通知;
HttpSessionBindingListener:當該對象從一個會話中被綁定或者解綁時通知該對象,這個對象由HttpSessionBindingEvent對象通知。這多是servlet程序顯式地從會話中解綁定屬性的結果,多是因爲會話無效,也多是因爲會話超時;
HttpSessionObjectListener:沒有該接口API;
HttpSessionListener:當web應用程序中的活動會話列表發生更改時通知該接口的實現類,爲了接收該通知事件,必須在web應用程序的部署描述符中配置實現類;
HttpSessionActivationListener:綁定到會話的對象能夠偵聽容器事件,通知它們會話將被鈍化,會話將被激活。須要一個在虛擬機之間遷移會話或持久會話的容器來通知全部綁定到實現該接口會話的屬性。
A.訪問修飾符的限制必定要大於被重寫方法的訪問修飾符
B.能夠有不一樣的訪問修飾符
C.參數列表必須徹底與被重寫的方法相同
D.必須具備不一樣的參數列表
答案:
B C
解析:
方法重寫
A.An InterruptedException is thrown.
B.The thread executes a wait() call.
C.The thread constructs a new Thread.
D.A thread of higher priority becomes ready.
E.The thread executes a waitforID()call on a MediaTracker.
答案:
A B E
解析:
略
A.Java面嚮對象語言允許單獨的過程與函數存在
B.Java面嚮對象語言允許單獨的方法存在
C.Java語言中的非靜態方法屬於類中的成員(member)
D.Java語言中的方法一定隸屬於某一類(對象),調用方法與C語言的過程或C++語言的函數相同
答案:
A B C D
解析:
Java的靜態方法屬於類的成員,實例方法屬於對象的成員。
A.FilelnputStream
B.lnputStream
C.DatalnputStream
D.BufferedlnputStream
答案:
C D
解析:
此題考察對於java流的理解
節點流是實際工做的流,
處理流(咱們叫包裝流可能容易理解一點)設計的目的是讓對流中數據的操做,轉化成咱們能更簡單明瞭的看懂的數據(而不是二進制的字節等)的操做,但實際上增長了不少類,是io流變的更復雜
字節流必是一個接點流,字符流就是一個操做流
使用時,必須是有一個結點流,而後才能用操做流來包裝結點流,即把結點流當參數傳個操做流
注:以上筆試題均來自網絡,由筆者整理得出
大廠筆試內容集合(內有詳細解析) 持續更新中....
歡迎關注我的微信公衆號:Coder編程
歡迎關注Coder編程公衆號,主要分享數據結構與算法、Java相關知識體系、框架知識及原理、Spring全家桶、微服務項目實戰、DevOps實踐之路、每日一篇互聯網大廠面試或筆試題以及PMP項目管理知識等。更多精彩內容正在路上~
新建了一個qq羣:315211365,歡迎你們進羣交流一塊兒學習。謝謝了!也能夠介紹給身邊有須要的朋友。
文章收錄至
Github: https://github.com/CoderMerlin/coder-programming
Gitee: https://gitee.com/573059382/coder-programming
歡迎關注並star~