A.每一個類有且只能有一個構造函數。
B.構造函數是類的一種特殊函數,它的方法名必須與類名相同
C.構造函數的主要做用是完成對類的對象的初始化工做
D.通常在建立新對象時,系統會自動調用構造函數java
答案: Ac++
解析:
類除了無參構造方法,還有有參構造方法,有參構造方法還能夠經過重載寫出多參的構造方法(2參,3參,4參)
方法重載:同一個類中方法名稱相同,而參數的類型或個數不一樣git
A.手機與小米手機
B.企業家與雷軍
C.編程語言與Java
D.中國與北京github
答案: D
解析:
小米手機是一個手機/雷軍是一個企業家/java是一個編程語言/北京是一箇中國嗎?面試
main() { int m=12,n=34; printf("%d%d",m++,++n); printf("%d%d\n",n++,++m); }
A.12353514
B.12353513
C.12343514
D.12343513正則表達式
答案: A
解析: >m++ 先輸出在自加,++m 先自加在輸出算法
A.功能性註釋嵌在源程序中,用於說明程序段或語句的功能以及數據的狀態
B.註釋用來講明程序段,須要在每一行都要加註釋
C.可以使用空行或縮進,以便很容易區分註釋和程序
D.修改程序也應修改註釋編程
答案: B
解析: 略數組
A.java是一次編寫多處運行,c++是一次編寫多處編譯
B.c++和java支持多繼承
C.Java不支持操做符重載,操做符重載被認爲是c++的突出特徵
D.java沒有函數指針機制,c++支持函數指針緩存
答案: B
解析:
JAVA沒有指針的概念,被封裝起來了,而C++有;JAVA不支持類的多繼承,但支持接口多繼承,C++支持類的多繼承;C++支持操做符重載,JAVA不支持;JAVA的內存管理比C++方便,並且錯誤處理也比較好;C++的速度比JAVA快。
C++更適用於有運行效率要求的狀況,JAVA適用於效率要求不高,但維護性要好的狀況。
String s1=new String( 」 xyz 」 ); String s2=new String( 」 xyz 」 ); Boolean b1=s1.equals(s2); Boolean b2=(s1==s2); System .out.print(b1+ 」 」 +b2);
A.true false
B.false true
C.true true
D.false false
答案: A
解析: >
String s1=new String( 」 xyz 」 ); //建立了String類型的內容爲xyz的s1對象
String s2=new String( 」 xyz 」 ); //建立了String類型的內容爲xyz的s2對象
Boolean b1=s1.equals(s2); //比較s1對象和s2對象的內容相等,返回true。
Boolean b2=(s1==s2); //比較s1和s2兩個對象的存儲地址是否相等,明顯二者分別存儲在不一樣的地址,因此返回:false。
故答案爲:true false
class Test { private int data; int result = 0; public void m() { result += 2; data += 2; System.out.print(result + " " + data); } } class ThreadExample extends Thread { private Test mv; public ThreadExample(Test mv) { this.mv = mv; } public void run() { synchronized(mv) { mv.m(); } } } class ThreadTest { public static void main(String args[]) { Test mv = new Test(); Thread t1 = new ThreadExample(mv); Thread t2 = new ThreadExample(mv); Thread t3 = new ThreadExample(mv); t1.start(); t2.start(); t3.start(); } }
A.0 22 44 6
B.2 42 42 4
C.2 24 46 6
D.4 44 46 6
答案: C
解析:
Test mv =newTest()聲明並初始化對data賦默認值
使用synchronized關鍵字加同步鎖線程依次操做m()
t1.start();使得result=2,data=2,輸出即爲2 2
t2.start();使得result=4,data=4,輸出即爲4 4
t3.start();使得result=6,data=6,輸出即爲6 6
System.out.print(result +" "+ data);是print()方法不會換行,輸出結果爲2 24 46 6
A.標準輸出流System.out.println()。
B.創建字節輸出流。
C.創建字節輸入流。
D.標準輸入流System.in.read()。
答案: A
解析: 略
private List<Integer> nums; //precondition: nums.size() > 0 //nums contains Integer objects public void numQuest() { int k = 0; Integer zero = new Integer(0); while (k < nums.size()) { if (nums.get(k).equals(zero)) nums.remove(k); k++; } }
A.[3, 5, 2, 4, 0, 0, 0, 0]
B.[0, 0, 0, 0, 4, 2, 5, 3]
C.[0, 0, 4, 2, 5, 0, 3, 0]
D.[0, 4, 2, 5, 3]
答案: D
解析: 略,一步一步來就能算出
A.[a-z]+://[a-z.]+/
B.https[://]www[.]tensorflow[.]org[/]
C.[htps]+://www.tensorflow.org/
D.[a-zA-Z.:/]+
答案: B
解析: >
[://],這是個很明顯的陷阱。[ ] 裏面是不重複的,因此等價於[:/]
若是[ ]後面沒有帶+號的話,是不會貪婪匹配的,就只能匹配到://中的其中一個
A.sleep是線程類的方法,wait是object的方法
B.sleep不釋放對象鎖,wait放棄對象鎖
C.sleep暫停線程,但監控狀態依然保持,結束後會自動恢復
D.wait進入等待鎖定池,只有針對此對象發出notify方法得到對象鎖進入運行狀態
答案: D
解析:
D選項最終是進入就緒狀態,而不是運行狀態。
A.CallableStatement是PreparedStatement的父接口
B.PreparedStatement是CallableStatement的父接口
C.CallableStatement是Statement的父接口
D.PreparedStatement是Statement的父接口
答案: B
解析:
CallableStatement繼承自PreparedSatement,PreparedStatement繼承自Statement
A.能保證線程安全
B.volatile關鍵字用在多線程同步中,可保證讀取的可見性
C.JVM保證從主內存加載到線程工做內存的值是最新的
D.volatile能禁止進行指令重排序
答案: A
解析:
出於運行速率的考慮,java編譯器會把常常常常訪問的變量放到緩存(嚴格講應該是工做內存)中,讀取變量則從緩存中讀。可是在多線程編程中,內存中的值和緩存中的值可能會出現不一致。volatile用於限定變量只能從內存中讀取,保證對全部線程而言,值都是一致的。可是volatile不能保證原子性,也就不能保證線程安全。
A.byte i=128
B.boolean i=null
C.long i=0xfffL
D.double i=0.9239d
答案: C D
解析: null表示沒有地址;null能夠賦值給引用變量,不能將null賦給基本類型變量,例如int、double、float、boolean
A.java.servlet
B.javax.servlet
C.servlet.http
D.javax.servlet.http
答案: B D
解析:
JEE5.0中的Servlet相關的就下面這幾個包:
javax.servlet
javax.servlet.jsp
java.servlet.jsp.el
java.servlet.jsp.tagext
而最用得多的就是
javax.servlet
javax.servlet.http
這兩個包了.
A.Java編程語言
B.Java類文件格式
C.Java API
D.JVM
答案: A B C D
解析: 略
A.parseInt(a);
B.Math.floor(a);
C.Math.ceil(a);
D.a.split('.')[0];
答案: A B
解析: >Math.ceil(); ceiling(天花板) 因此向上取整
Math.floor();floor(地板)因此向下取整
split是對字符串的分割,而10.42編譯器自動類型推斷中應該是double類型的,因此d錯誤
A.給對象賦予了空值null,如下再沒有調用過
B.對象從新分配了內存空間
C.給對象賦予了空值null
D.給對象賦予了新值
答案: A B D
解析:
在java語言中,判斷一塊內存空間是否符合垃圾收集器收集標準的標準只有兩個:
1.給對象賦值爲null,如下沒有調用過。
2.給對象賦了新的值,從新分配了內存空間。
A.public
B.private
C.abstract
D.final
答案: C D
解析:
局部內部類是放在代碼塊或方法中的,不能有訪問控制修飾符,且不能用static修飾
A.stop
B.sleep
C.wait
D.suspend
答案: D
解析:
suspend() 和 resume() 方法:兩個方法配套使用,suspend()使得線程進入阻塞狀態,而且不會自動恢復,必須其對應的 resume() 被調用,才能使得線程從新進入可執行狀態
大廠筆試內容集合(內有詳細解析) 持續更新中....
歡迎關注我的微信公衆號:Coder編程
歡迎關注Coder編程公衆號,主要分享數據結構與算法、Java相關知識體系、框架知識及原理、Spring全家桶、微服務項目實戰、DevOps實踐之路、每日一篇互聯網大廠面試或筆試題以及PMP項目管理知識等。更多精彩內容正在路上~
新建了一個qq羣:315211365,歡迎你們進羣交流一塊兒學習。謝謝了!也能夠介紹給身邊有須要的朋友。
文章收錄至
Github: https://github.com/CoderMerlin/coder-programming
Gitee: https://gitee.com/573059382/coder-programming
歡迎關注並star~