
前言
大家好,我是程式員
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、下列說法正確的有( B )
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 一個默默努力的菜鳥程式員,我們下期再見~

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/293349.html
標籤:java
上一篇:SpringBoot?SpringClould常用注解史詩級匯總
下一篇:資料結構(線性表之單鏈表)
