Java基礎筆試練習(七)

Java基礎筆試練習(七)

1.下列程序執行後結果爲( )?

class A {
    public int func1(int a, int b) {
        return a - b;
    }
}
class B extends A {
    public int func1(int a, int b) {
        return a + b;
    }
}
public class ChildClass {
    public static void main(String[] args) {
    A a = new B();
    B b = new B();
    System.out.println("Result=" + a.func1(100, 50));
    System.out.println("Result=" + b.func1(100, 50));
    }
}

A.Result=150Result=150
B.Result=100Result=100
C.Result=100Result=150
D.Result=150Result=100java

答案:
A
解析:
其實很簡單,涉及轉型的題目,分爲向上或者向下轉型。
關鍵的來了,不論向上或者向下轉型,都是一句話,「編譯看左邊,運行看右邊」。也就是編譯時候,會看左邊引用類型是否能正確編譯經過,運行的時候是調用右邊的對象的方法。就本題來講,編譯時候會發現左邊知足條件因此編譯經過,運行時候又會調用右邊也就是 class B 的方法,因此答案都是150。git

2.下列哪一個類的聲明是正確的?

A.protected private number;
B.public abstract class Car{}
C.abstract private move(){}
D.abstract final class HI{}github

答案:
B面試

解析:
抽象類的目的就是爲了讓子類實現他自己的方法
final修飾的東西不能被更改或繼承
abstract存在的意義是爲了讓子類實現方法而存在,final的意義是不讓子類進行修改。二者存在互斥關係redis

3.關於抽象類敘述正確的是? ( )

A.抽象類不能實現接口
B.抽象類必須有「abstract class」修飾
C.抽象類必須包含抽象方法
D.抽象類也有類的特性,能夠被實例化算法

答案:
Bspring

解析:
A.抽象類是能夠實現接口的,並且抽象類也能夠繼承自抽象類
B.對
C.抽象類指有abstract修飾的class,其能夠包含抽象方法,也能夠不包含
D.抽象類和接口都是不能被實例化的,只有具體的類才能夠被實例化編程

4.如有定義語句: int a=10 ; double b=3.14 ; 則表達式 'A'+a+b 值的類型是()

A.char
B.int
C.double
D.float安全

答案:
C微信

解析:
char < short < int < float < double 不一樣類型運算結果類型向右邊靠齊。

5.When is the text 「Hi there」displayed?

public class StaticTest
{
    static
    {
        System.out.println(「Hi there」);
    }
 
    public void print()
    {
        System.out.println(「Hello」);
    }
 
    public static void main(String args[])
    {
        StaticTest st1 = new StaticTest();
        st1.print();
        StaticTest st2 = new StaticTest();
        st2.print();
    }
}

A.Never.
B.Each time a new object of type StaticTest is created.
C.Once when the class is loaded into the Java virtual machine.
D.Only when the main() method is executed.

答案:
C

解析:
類中靜態語句塊僅在類加載時被執行一次

6.在開發中使用泛型取代非泛型的數據類型(好比用ArrayList 取代ArrayList),程序的運行時性能會變得更好。

A.對
B.錯

答案:
B

解析:
泛型僅僅是java的一顆語法糖,它不會影響java虛擬機生成的彙編代碼,在編譯階段,虛擬機就會把泛型的類型擦除,還原成沒有泛型的代碼,頂多編譯速度稍微慢一些,執行速度是徹底沒有什麼區別的。

7.如下說法中正確的有?

A.StringBuilder是 線程不安全的
B.Java類能夠同時用 abstract和final聲明
C.HashMap中,使用 get(key)==null能夠 判斷這個Hasmap是否包含這個key
D.volatile關鍵字不保證對變量操做的原子性

答案:
A D

解析:
String最慢的緣由:
String爲字符串常量,而StringBuilder和StringBuffer均爲字符串變量,即String對象一旦建立以後該對象是不可更改的,但後二者的對象是變量,是能夠更改的。
String:適用於少許的字符串操做的狀況
StringBuilder:適用於單線程下在字符緩衝區進行大量操做的狀況
StringBuffer:適用多線程下在字符緩衝區進行大量操做的狀況
在線程安全上,StringBuilder是線程不安全的,而StringBuffer是線程安全的

8.下面關於Java package的描述,哪一個是正確的:()

A.包不提供將全部類名分區爲更易管理的塊的機制.
B.包提供可見性控制機制.
C.包的一個重要屬性是包內定義的全部類均可以經過該包外的代碼訪問
D.聲明爲包的一部分的類的.class文件能夠存儲在多個目錄中.

答案:
B

解析:

包的做用:
一、把功能類似或相關的類或接口組織在同一個包中,方便類的查找和使用。
二、如同文件夾同樣,包也採用了樹形目錄的存儲方式。同一個包中的類名字是不一樣的,不一樣的包中的類的名字是能夠相同的,當同時調用兩個不一樣包中相同類名的類時,應該加上包名加以區別。所以,包能夠避免名字衝突。
三、包也限定了訪問權限,擁有包訪問權限的類才能訪問某個包中的類。
Java使用包(package)這種機制是爲了防止命名衝突,訪問控制,提供搜索和定位類(class)、接口、枚舉(enumerations)和註釋(annotation)等。

9.下面代碼執行後的結果爲( )?

nt main()
{
int sum=0;
int i=0,j=0;
for(j=0;j<6;j++)
{
if(j%2)continue;
sum++;
}
printf("sum=%d",sum);
return 0;
}

A.sum=1
B.sum=2
C.sum=3
D.其餘幾項都不對

答案:
C

解析:
吐槽點:1.Java題出現C語言的題目。2.定義變量i 等等(既然出如今360大廠的筆試題中,那麼咱們拋開吐槽點,咱們來看下這道題的考點。)
考點:
1.continue:continue語句的做用是跳過本次循環體中餘下還沒有執行的語句,當即進行下一次的循環條件斷定,能夠理解爲僅結束本次循環。
2.if(j%2)(包含:if以及取模運算):也就是求j除以2的餘數(取模),if(j%3)判斷j對3取餘之後是否爲0,若是不是0,執行if下面的語句,
若是是0,執行另外的語句(例如else下面的語句)
作題:
1.j=0,0%2=0 sum=1
2.j=1,1%2=1 sum=1
3.j=2,2%2=0 sum=2
4.j=3,3%2=1 sum=2
5.j=4,4%2=0 sum=3
6.j=5,5%2=1 sum=3

10. 關於static說法不正確的是( ) ?

A.能夠直接用類名來訪問類中靜態方法(public權限)
B.靜態塊僅在類加載時執行一次
C.static方法中不能有用this調用的方法
D.不能夠用對象名來訪問類中的靜態方法(public權限)

答案:
D

解析:
this表示當前類的對象,由static修飾的方法是由類直接調用,不須要建立對象,因此在static裏不能用this.

11.訪問權限控制從最大權限到最小權限依次爲:public、 包訪問權限、protected和private ()?

A.正確
B.錯誤

答案:
B

解析:
應該是:public>protected>默認(包訪問權限)>private,由於protected除了能夠被同一包訪問,還能夠被包外的子類所訪問

12.函數()把文件位置重定位到文件中的指定位置

A.fseek
B.fread
C.fopen
D.fgets

答案:
C

解析:

13.關於spring說法錯誤的是()?

A.spring是一個輕量級JAVA EE的框架集合
B.spring是「依賴注入」模式的實現
C.使用spring能夠實現聲明事務
D.spring提供了AOP方式的日誌系統

答案:
D

解析:
spring沒有提供AOP方式的日誌系統
AOP爲Aspect Oriented Programming的縮寫,意爲:面向切面編程,經過預編譯方式和運行期動態代理實現程序功能的統一維護的一種技術。AOP是OOP的延續,是軟件開發中的一個熱點,也是Spring框架中的一個重要內容,是函數式編程的一種衍生範型。
Spring經過對AOP的支持,藉助log4j等Apache開源組件實現了日誌系統。

14. 如下JAVA程序代碼的輸出是?

public static void main(String args[]) {
System.out.println(14^3);
}

A.2744
B.13
C.17
D.11

答案:
B

解析:
位運算中的異或運算,將14和3分別表示成二進制,即1110和0011作異或。得出結果爲1101,轉成十進制即爲13

15.下列哪一項的實現不能夠添加爲 TextField 對象的監聽器()?

A.MouseMotionListener
B.FocusListener
C.WindowsListener
D.ActionListener

答案:
C

解析:
SWinng的內容。
在單行文本輸入區(Textfield)構件上可能發生的事件包括FocusEvent焦點事件,所對應的事件監聽器是FocusListener;ActionEvent動做事件,所對應的事件監聽器是ActionListener;MouseEvent鼠標事件,所對應的事件監聽器是MouseMotionListener;

16. jre 判斷程序是否執行結束的標準是() ?

A.全部的前臺線程執行完畢
B.全部的後臺線程執行完畢
C.全部的線程執行完畢
D.和以上都無關

答案:
A

解析:
後臺線程:指爲其餘線程提供服務的線程,也稱爲守護線程。JVM的垃圾回收線程就是一個後臺線程。
前臺線程:是指接受後臺線程服務的線程,其實前臺後臺線程是聯繫在一塊兒,就像傀儡和幕後操縱者同樣的關係。傀儡是前臺線程、幕後操縱者是後臺線程。由前臺線程建立的線程默認也是前臺線程。能夠經過isDaemon()和setDaemon()方法來判斷和設置一個線程是否爲後臺線程。

17.根據下面的代碼,String s = null;會拋出NullPointerException異常的有()。

A.if( (s!=null) & (s.length()>0) )
B.if( (s!=null) && (s.length()>0) )
C.if( (s==null) | (s.length()==0) )
D.if( (s==null) || (s.length()==0) )

答案:
A C

解析:

邏輯運算符:&&和|| 是按照「短路」方式求值的。若是第一個操做數已經可以肯定表達式的值,第二個操做數就沒必要計算了
位移運算符:&和| 運算符應用於布爾值,獲得的結果也是布爾值,不按「短路」方式計算。即在獲得計算結果以前,必定要計算兩個操做數的值。

18.A,B,C,D 中哪些是 setvar的重載?

public class methodover
{
    public void setVar(int a, int b, float c) {}
}

A.private void setVar(int a, float c, int b){}
B.protected void setVar(int a, int b, float c){}
C.public int setVar(int a, float c, int b){return a;}
D.public int setVar(int a, float c){return a;}

答案:
A C D

解析:
重載是在同一個類中,有多個方法名相同,參數列表不一樣(參數個數不一樣,參數類型不一樣),與方法的返回值無關,與權限修飾符無關,B中的參數列表和題目的方法徹底同樣了。

19.下面有關java的引用類型,說法正確的有?

A.對於一個對象來講,只要有強引用的存在,它就會一直存在於內存中
B.若是一個對象僅持有虛引用,那麼它就和沒有任何引用同樣,在任什麼時候候均可能被垃圾回收器回收。
C.若是一個對象只具備軟引用,則內存空間足夠,垃圾回收器就不會回收它;若是內存空間不足了,就會回收這些對象的內存
D.一旦發現了只具備弱引用的對象,無論當前內存空間足夠與否,都會回收它的空間

答案:
A B C D

解析:
一、強引用:一個對象賦給一個引用就是強引用,好比new一個對象,一個對象被賦值一個對象。
二、軟引用:用SoftReference類實現,通常不會輕易回收,只有內存不夠纔會回收。
三、弱引用:用WeekReference類實現,一旦垃圾回收已啓動,就會回收。
四、虛引用:不能單獨存在,必須和引用隊列聯合使用。主要做用是跟蹤對象被回收的狀態。

20.如下類型爲Final類型的爲()?

A.HashMap
B.StringBuffer
C.String
D.Hashtable

答案:
B F

解析:
StringBuilder , StringBuffer ,String都是 final

推薦

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

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

文末

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

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

相關文章
相關標籤/搜索