Java基礎筆試練習(六)

Java基礎筆試練習(六)

1.在Java中,一個類可同時定義許多同名的方法,這些方法的形式參數個數、類型或順序各不相同,傳回的值也能夠不相同。這種面向對象程序的特性稱爲?

A.隱藏
B.覆蓋
C.重載
D.Java不支持此特性html

答案:
Cjava

解析:
git

2.編譯 Java 源程序文件產生的字節碼文件的擴展名爲()?

A.java
B.class
C.html
D.exegithub

答案:
B面試

解析:
送分題正則表達式

3.如下程序的運行結果是() ?

public class Increment
{
    public static void main(String args[])
    {
        int a;
        a = 6;
        System.out.print(a);
        System.out.print(a++);
        System.out.print(a);
    }
}

A.666
B.667
C.677
D.676算法

答案:
B編程

解析:
a++很好記的,表示先用後+,而++a表示先+後用。看+在前在後,也決定第一步。bootstrap

4.有如下程序片斷且Interesting不是內部類,下列哪一個選項不能插入到行1。( )

1.
2.public class Interesting{
3. // 省略代碼
4.}

A.import java.awt.*;
B.package mypackage;
C.class OtherClass{ }
D.public class MyClass{ }tomcat

答案:
D

解析:
在同一個java原文件中,能夠有多個class類,可是隻有有一個公共的 public class

5.Math.round(11.5) 等於多少 (). Math.round(-11.5) 等於多少 ( )?

A.11 ,-11
B.11 ,-12
C.12 ,-11
D.12 ,-12

答案:
C

解析:

  • floor:意爲地板,指向下取整,返回不大於它的最大整數
  • ceil:意爲天花板,指向上取整,返回不小於它的最小整數
  • round:意爲大約,表示「四捨五入」,而四捨五入是往大數方向入。
  • Math.round(11.5)的結果爲12,Math.round(-11.5)的結果爲-11而不是-12。

6.一個以「.java」爲後綴的源文件

A.只能包含一個public類,類名必須與文件名相同
B.只能包含與文件名相同的public類以及其中的內部類
C.只能有一個與文件名相同的public類,能夠包含其餘非public類(不考慮內部類)
D.能夠包含任意public類

答案:
C

解析:
.java文件能夠包含多個類,惟一的限制就是:一個文件中只能有一個public類,而且此public類必須與文件名相同。並且這些類和寫在多個文件中沒有區別。

7.關於Float,下列說法錯誤的是() ?

A.Float是一個類
B.Float在java.lang包中
C.Float a=1.0是正確的賦值方法
D.Float a= new Float(1.0)是正確的賦值方法

答案:
C

解析:
1.Float是類,float不是類.
2.查看JDK源碼就能夠發現Byte,Character,Short,Integer,Long,Float,Double,Boolean都在java.lang包中.
3.Float正確複製方式是Float f=1.0f,若不加f會被識別成double型,double沒法向float隱式轉換.
4.Float a= new Float(1.0)是正確的賦值方法,可是在1.5及以上版本引入自動裝箱拆箱後,會提示這是沒必要要的裝箱的警告,一般直接使用Float f=1.0f.

8.子類要調用繼承自父類的方法,必須使用super關鍵字。

A.正確
B.錯誤

答案:
B

解析:
一、子類構造函數調用父類構造函數用super
二、子類重寫父類方法後,若想調用父類中被重寫的方法,用super
三、未被重寫的方法能夠直接調用。

9.下列屬於容器的組件有()?

A.JButton
B.JPanel
C.Thread
D.JTextArea

答案:
B

解析:
JPanel是Java圖形用戶界面(GUI)工具包中的面板容器類,包含在javax.swing包中,是一種輕量級容器,能夠加入到JFrame窗體中。JPanel默認的佈局管理器是FlowLayout,其自身能夠嵌套組合,在不一樣子容器中可包含其餘組件(component),如JButton、JTextArea、JTextField等,功能是對對窗體上的這些控件進行組合,至關於C++和C#中的Panel類。

10.咱們在程序中常用「System.out.println()」來輸出信息,語句中的System是包名,out是類名,println是方法名。

A.對
B.錯

答案:
B

解析:
system是java.lang中的一個類,out是System內的一個成員變量,這個變量是一個java.io.PrintStream類的對象,println就是一個方法了。

11.正則表達式中,表示匹配非數字字符的字符是()?

A.\b
B.\d
C.\B
D.\D

答案:
D

解析:
大寫表示「非」,d表示digit數字。非數字就是\D, w表示word,非單詞就是\W

12.對於如下代碼段,4個輸出語句中輸出true的個數是( )。

class A{}
class B extends A{}
class C extends A{}
class D extends B{}
A obj = new D();
System.out.println(obj instanceof B);
System.out.println(obj instanceof C);
System.out.println(obj instanceof D);
System.out.println(obj instanceof A);

A.1
B.2
C.3
D.4

答案:
C

解析:
D屬於B,D屬於A,D屬於D,D不屬於C.因此選C

13.在Java中,HashMap中是用哪些方法來解決哈希衝突的?

A.開放地址法
B.二次哈希法
C.鏈地址法
D.創建一個公共溢出區

答案:
C

解析:
以上方法都是解決哈希填衝突的策略,可是在java.util.HashMap中,整體來講是使用的鏈地址法來解決衝突的。
固然了,使用鏈地址法會致使get的效率從o(1)降至o(n),因此在Java8中,使用的是平衡樹來解決提升效率的。

14. 關於匿名內部類敘述正確的是? ( )

A.匿名內部類能夠繼承一個基類,不能夠實現一個接口
B.匿名內部類不能夠定義構造器
C.匿名內部類不能用於形參
D.以上說法都不正確

答案:
B

解析:
因爲構造器的名字必須與類名相同,而匿名類沒有類名,因此匿名類不能有構造器。

15.下下面哪一項不是加載驅動程序的方法?

A.經過DriverManager.getConnection方法加載
B.調用方法 Class.forName
C.經過添加系統的jdbc.drivers屬性
D.經過registerDriver方法註冊

答案:
A

解析:
DriverManager.getConnection方法返回一個Connection對象,這是加載驅動以後才能進行的

16.關於如下代碼的說明,正確的是()?

1. class StaticStuff
2. {
3. static int x=10;
4. static { x+=5;}
5. public static void main(String args[ ])
6. {
7. System.out.println(「x=」 + x);
8. }
9. static { x/=3;}
10. }

A.4行與9行不能經過編譯,由於缺乏方法名和返回類型
B.9行不能經過編譯,由於只能有一個靜態初始化器
C.編譯經過,執行結果爲:x=5
D.編譯經過,執行結果爲:x=3

答案:
C

解析:

先執行:
1 static int x = 10;
再執行兩個靜態塊:
1 static { x+=5; }
2 static { x/=3; }
最後執行main():
1 System.out.println(「x=」 + x);

因此x = 10 -> x = x +5 = 15 -> x = x / 3 = 5 打印x=5

17.如下集合對象中哪幾個是線程安全的()?

A.LinkedList
B.ArrayList
C.Vector
D.Hashtable

答案:
C D

解析:

簡單記憶線程安全的集合類:喂!SHE! 喂是指vector,S是指stack,H是指hashtable,E是指:Eenumeration

18.下面哪些多是重載的基本條件()(注意:是可能爲重載的基本條件)

A.參數的類型不一樣
B.參數的順序不一樣
C.函數的返回值類型不一樣
D.參數的個數不一樣

答案:
A B D

解析:

重載的概念是:
方法名稱相同,參數個數、次序、類型不一樣
所以重載對返回值沒有要求,能夠相同,也能夠不一樣
可是若是參數的個數、類型、次序都相同,方法名也相同,僅返回值不一樣,則沒法構成重載

19.下面有關 java 類加載器,說法正確的是?()

A.引導類加載器(bootstrap class loader):它用來加載 Java 的核心庫,是用原生代碼來實現的
B.擴展類加載器(extensions class loader):它用來加載 Java 的擴展庫。
C.系統類加載器(system class loader):它根據 Java 應用的類路徑(CLASSPATH)來加載 Java 類
D.tomcat 爲每一個 App 建立一個 Loader,裏面保存着此 WebApp 的 ClassLoader。須要加載 WebApp 下的類時,就取出 ClassLoader 來使用

答案:
A B C D

解析:
類的加載是由類加載器完成的,類加載器包括:根加載器(BootStrap)、擴展加載器(Extension)、系統加載器(System)和用戶自定義類加載器( java.lang.ClassLoader 的子類)。從 Java 2 (JDK 1.2)開始,類加載過程採起了父親委託機制( PDM )。 PDM 更好的保證了 Java 平臺的安全性,在該機制中, JVM 自帶的 Bootstrap 是根加載器,其餘的加載器都有且僅有一個父類加載器。類的加載首先請求父類加載器加載,父類加載器無能爲力時才由其子類加載器自行加載。 JVM 不會向 Java 程序提供對 Bootstrap 的引用。下面是關於幾個類加載器的說明:

  • Bootstrap :通常用本地代碼實現,負責加載 JVM 基礎核心類庫( rt.jar );
  • Extension :從 java.ext.dirs 系統屬性所指定的目錄中加載類庫,它的父加載器是 Bootstrap ;
  • system class loader:又叫應用類加載器,其父類是Extension。它是應用最普遍的類加載器。它從環境變量 classpath 或者系統屬性 java.class.path 所指定的目錄中記載類,是用戶自定義加載器的默認父加載器。
    用戶自定義類加載器: java.lang.ClassLoader 的子類
    -父類委託機制是能夠修改的,有些服務器就是自定義類加載器優先的。

20.關於Java的一些概念,下面哪些描述是正確的:( )

A.全部的Java異常和錯誤的基類都是java.lang.Exception, 包括java.lang.RuntimeException
B.經過try … catch … finally語句,finally中的語句部分不管發生什麼異常都會獲得執行
C.java中全部的數據都是對象
D.Java經過垃圾回收回收再也不引用的變量,垃圾回收時對象的finallize方法必定會獲得執行
E.Java是跨平臺的語言,不管經過哪一個版本的Java編寫的程序都能在全部的Java運行平臺中運行
F.Java經過synchronized進行訪問的同步,synchronized做用非靜態成員方法和靜態成員方法上同步的目標是不一樣的

答案:
B F

解析:
A:Java中全部錯誤和異常的父類是java.lang.Throwable
B:基本數據類型不是對象,不能用new的方法獲取,可是每一個基本數據類型都對應着封裝類型,這些封裝類型爲了解決基本數據類型面向對象用的。
C:Java垃圾回收器負責回收無用對象佔據的內存資源,但對象沒有使用new獲取了一塊特殊區域,這塊特殊區域的回收使用finallize()
D:Java跨平臺是由於有JVM的存在,Java的三個版本的運行須要各自不一樣的環境。

推薦

大廠筆試內容集合(內有詳細解析) 持續更新中....

ProcessOn是一個在線做圖工具的聚合平臺~

文末

歡迎關注我的微信公衆號:Coder編程
歡迎關注Coder編程公衆號,主要分享數據結構與算法、Java相關知識體系、框架知識及原理、Spring全家桶、微服務項目實戰、DevOps實踐之路、每日一篇互聯網大廠面試或筆試題以及PMP項目管理知識等。更多精彩內容正在路上~
新建了一個qq羣:315211365,歡迎你們進羣交流一塊兒學習。謝謝了!也能夠介紹給身邊有須要的朋友。

文章收錄至
Github: https://github.com/CoderMerlin/coder-programming
Gitee: https://gitee.com/573059382/coder-programming
歡迎關注並star~
微信公衆號

相關文章
相關標籤/搜索