冒死潜入某個外包公司獲得的珍貴Java基礎筆試題(附答案)

manor的大數據奮鬥之路 2021-08-15 21:37:04 阅读数:836

本文一共[544]字,预计阅读时长:1分钟~
冒死 潜入 外包 包公 公司

在這裏插入圖片描述

前言

大家好,我是程序員manor,上次貨拉拉面試太打擊心情,於是我决定找些小boss打打讓自己愉悅起來,於是就有了下面這篇Java基礎面試筆試題,
文章末尾給出答案

在這裏插入圖片描述

JAVA基礎筆試題目

一、單選題( 共8題,每題2分 )

1、下列語句哪一個正確( )

A. Java程序經編譯後會產生machine code

B. Java程序經編譯後會產生byte code

C. Java程序經編譯後會產生DLL

D. 以上都不正確

2、下列說法正確的有( )

A. class中的constructor不可省略

B. constructor必須與class同名,但方法不能與class同名

C. constructor在一個對象被new時執行

D. 一個class只能定義一個constructor

3、提供Java存取數據庫能力的包是( )

A.java.sql

B.java.awt

C.java.lang

D.java.swing

4、下列運算符合法的是( )

A.&&

B.<>

C.if

D.:=

5、執行如下程序代碼

a=0;c=0; do{

–c;

a=a-1;

}

while(a>0);

後,c的值是( )

A.0

B.1

C.-1

D.死循環

6、下列哪一種敘述是正確的( )

A.abstract修飾符可修飾字段、方法和類

B.抽象方法的body部分必須用一對大括號{ }包住

C.聲明抽象方法,大括號可有可無

D.聲明抽象方法不可寫出大括號

7、在Java中,錶示換行符的轉義字符是( )

A \n

B \f

C „n?6?8

D \dd

8、HttpServletRequest對象的( )方法能够獲取一個錶單參數的值:

A. getQuaryString()

B. getPathInfo()

C. getParameter()

D. getAttribute()

二、多選題( 共7題,每題4分 )

1、下列標識符不合法的有( )

A.new

B.$Usdollars

C.1234

D.car.taxi

2、下列說法錯誤的有( )

A.數組是一種對象

B.數組屬於一種原生類

C.int number=[]={31,23,33,43,35,63}

D.數組的大小可以任意改變

3、不能用來修飾interface的有( )

A.private

B.public

C.protected

D.static

4、下列說法錯誤的有( )

A. 在類方法中可用this來調用本類的類方法

B. 在類方法中調用本類的類方法時可直接調用

C. 在類方法中只能調用本類中的類方法

D. 在類方法中絕對不能調用實例方法

5、下列說法錯誤的有( )

A. Java面向對象語言容許單獨的過程與函數存在

B. Java面向對象語言容許單獨的方法存在

C. Java語言中的方法屬於類中的成員(member)

D. Java語言中的方法必定隸屬於某一類(對象),調用方法與過程或函數相同

6、Servlet API 由哪兩個包組成?( )

A. javax.servlet

B. javax.servlet.jsp

C. javax.servlet.http

D. java.servlet

7、 關於异常處理機制的敘述哪些正確 ( )

A. catch部分捕捉到异常情况時,才會執行finally部分

B. 當try區段的程序發生异常時,才會執行catch區段的程序

C. 不論程序是否發生錯誤及捕捉到异常情况,都會執行finally部分

D. 以上都是

在這裏插入圖片描述

三、簡答題( 共4題,每題10分 )

1、簡單分析Java語言中的final, finally, finalize三者的區別。

2、Overload(方法重載)和Override(方法重寫)的區別。Overloaded的方法是否可以改變返回值的類型?

3、abstract class(抽象類)和interface(接口)有什麼區別?

4、ArrayList Vector LinkedList 的存儲性能好特性,HashMap和Hashtable的區別。

四、綜合題( 共1題,共16分 )

1、編寫程序,計算任意兩個日期之間間隔的天數。

看看你能得多少分?

在這裏插入圖片描述
------------------------------------------我是答案分割線-----------------------------------------------------------------------

JAVA基礎筆試題目

一、單選題( 共8題,每題2分 )

1、下列語句哪一個正確(B )
A. Java程序經編譯後會產生machine code
B. Java程序經編譯後會產生byte code
C. Java程序經編譯後會產生DLL
D. 以上都不正確

2、下列說法正確的有( C )
A. class中的constructor不可省略
B. constructor必須與class同名,但方法不能與class同名
C. constructor在一個對象被new時執行
D. 一個class只能定義一個constructor

3、提供Java存取數據庫能力的包是( A )
A.java.sql
B.java.awt
C.java.lang
D.java.swing

4、下列運算符合法的是( A )
A.&&
B.<>
C.if
D.:=

5、執行如下程序代碼
a=0;c=0; do{
–c;
a=a-1;
}
while(a>0);
後,c的值是(C )
A.0
B.1
C.-1
D.死循環

6、下列哪一種敘述是正確的( D )
A.abstract修飾符可修飾字段、方法和類
B.抽象方法的body部分必須用一對大括號{ }包住
C.聲明抽象方法,大括號可有可無
D.聲明抽象方法不可寫出大括號

7、在Java中,錶示換行符的轉義字符是(A )
A \n
B \f
C „n‟
D \dd

8、HttpServletRequest對象的( C )方法能够獲取一個錶單參數的值:
A. getQuaryString()
B. getPathInfo()
C. getParameter()
D. getAttribute()

二、多選題( 共7題,每題4分 )
1、下列標識符不合法的有(ACD )
A.new
B.$Usdollars
C.1234
D.car.taxi

2、下列說法錯誤的有( BCD )
A.數組是一種對象
B.數組屬於一種原生類
C.int number=[]={31,23,33,43,35,63}
D.數組的大小可以任意改變

3、不能用來修飾interface的有(ACD )
A.private
B.public
C.protected
D.static

4、下列說法錯誤的有( ACD )
A. 在類方法中可用this來調用本類的類方法
B. 在類方法中調用本類的類方法時可直接調用
C. 在類方法中只能調用本類中的類方法
D. 在類方法中絕對不能調用實例方法

5、下列說法錯誤的有( ABC )
A. Java面向對象語言容許單獨的過程與函數存在
B. Java面向對象語言容許單獨的方法存在
C. Java語言中的方法屬於類中的成員(member)
D. Java語言中的方法必定隸屬於某一類(對象),調用方法與過程或函數相同

6、Servlet API 由哪兩個包組成?(AC )
A. javax.servlet
B. javax.servlet.jsp
C. javax.servlet.http
D. java.servlet

7、 關於异常處理機制的敘述哪些正確 ( BC )
A. catch部分捕捉到异常情况時,才會執行finally部分
B. 當try區段的程序發生异常時,才會執行catch區段的程序
C. 不論程序是否發生錯誤及捕捉到异常情况,都會執行finally部分
D. 以上都是

三、簡答題( 共4題,每題10分 )

1、簡單分析Java語言中的final, finally, finalize三者的區別。
final:修飾符(關鍵字)有三種用法:修飾類、變量和方法。
修飾類時,意味著它不能再派生出新的子類,即不能被繼承,因此它和 abstract 是反義詞。修飾變量時,該變量使用中不被改變,必須在聲明時給定初值,在引用中只能讀取不可修改,即為常量。
修飾方法時,也同樣 只能使用,不能在子類中被重寫。

finally:通常放在 try…catch 的後面構造最終執行代碼塊,這就意味著程序無論正常執行
還是發生异常,這裏的代碼只要 JVM 不關閉都能執行,可以將釋放外部資源的代碼寫在 finally 塊中。

finalize:Object 類中定義的方法,Java 中允許使用 finalize() 方法在垃圾收集器將對象從內存中清除出去之前做必要的清理工作。這個方法是由垃圾收集器在銷毀對象時調用的,通過重寫 finalize() 方法可以整理系統資源或者執行其他清理工作。

2、Overload(方法重載)和Override(方法重寫)的區別。Overloaded的方法是否可以改變返回值的類型?
Overload是重載的意思,
Override是覆蓋的意思,也就是重寫。

Override覆蓋要注意以下的幾點:
1.覆蓋的方法的標志必須要和被覆蓋的方法的標志完全匹配,才能達到覆蓋的效果;

2.覆蓋的方法的返回值必須和被覆蓋的方法的返回值一致;

3.被覆蓋的方法不能為private,
否則在其子類中只是新定義了一個方法,並沒有對其進行覆蓋。

4.子類覆蓋父類方法,方法訪問權限必須大於等於父類

5.覆蓋的方法所拋出的异常必須和被覆蓋方法的所拋出的异常一致,或者是其子類;

overload要注意以下的幾點:
1.重載只和參數列錶有關。例如,不同的參數類型,不同的參數個數,不同的參數順序
2.不能通過訪問權限、返回類型、拋出的异常進行重載;
3.方法的异常類型和數目不會對重載造成影響;
4.對於繼承來說,如果某一方法在父類中是訪問權限是priavte,那麼就不能在子類對其進行重載,如果定義的話,也只是定義了一個新方法,而不會達到重載的效果。

3、abstract class(抽象類)和interface(接口)有什麼區別?
主要有以下6點區別:
1.抽象類可以有構造方法,接口中不能有構造方法。
2.抽象類中可以有普通成員變量,接口中沒有普通成員變量
3.抽象類中可以包含非抽象的普通方法,接口中的所有方法必須都是抽象的,不能有非抽象的普通方法。
抽象類中的抽象方法的訪問類型可以是public,protected和默認類型,但接口中的抽象方法只能是public類型的,並且默認即為public abstract類型。
5.抽象類和接口中都可以包含靜態成員變量,抽象類中的靜態成員變量的訪問類型可以任意,但接口中定義的變量只能是public static final類型,並且默認即為public static final類型。
6. 一個類可以實現多個接口,但只能繼承一個抽象類

4、ArrayList Vector LinkedList 的存儲性能好特性,HashMap和Hashtable的區別。
ArrayList Vector:以數組的方式存儲,增、删慢,查、改快
ArrayList:線程不安全,速度快
Vector:線程安全,速度慢(synchoronized)
LikedList: 以單鏈錶的方式存儲,增、删快,查、改慢
HashMap與Hashtable都實現的Map接口,
HashTable線程安全,HashMap線程不安全。

四、綜合題( 共1題,共16分 )

1、編寫程序,計算任意兩個日期之間間隔的天數。
package com.ct;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
/** * @author ChinaManor * #Description demo * #Date: 10/8/2021 22:56 */
public class demo {

public static void main(String[] args) {

System.out.println("請輸入第一個日期:");
String date = new Scanner(System.in).next();
System.out.println("請輸入第二個日期:");
String date2 = new Scanner(System.in).next();
count(date,date2);
}
private static void count(String date, String date2) {

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try {

Date d1 = sdf.parse(date);
Date d2 = sdf.parse(date2);
long time = d1.getTime();
long time2 = d2.getTime();
long day = (time - time2) / 1000 / 60 / 60 / 24;
System.out.println(day);
} catch (ParseException e) {

System.err.println("日期錯誤!!");
}
}
}

總結

我是manor 一個默默努力的菜鳥程序員,我們下期再見~
在這裏插入圖片描述

版权声明:本文为[manor的大數據奮鬥之路]所创,转载请带上原文链接,感谢。 https://gsmany.com/2021/08/20210815213646804b.html