1. 程式人生 > >JAVA基礎面試題 經典

JAVA基礎面試題 經典

               

第一階段題庫

基礎知識部分:

1. JDK是什麼?JRE是什麼?

a) 答:JDK:java開發工具包。JRE:java執行時環境。

2. 什麼是java的平臺無關性?

a) 答:Java原始檔被編譯成位元組碼的形式,無論在什麼系統環境下,只要有java虛

擬機就能執行這個位元組碼檔案。也就是一處編寫,處處執行。這就是java的跨平臺性。

3. 在一臺電腦上配置java環境,path起什麼作用?如何配置?

a) 答:path的作用是在DOS環境下,能在任意位置使用JDK目錄中bin資料夾中的

可執行程式,來編譯執行java程式。

b) 在環境變數中找到path變數,把bin資料夾的絕對路徑加上即可。

4. 什麼樣的識別符號是合法的?

a) 由字母、數字、_和$組成,長度不限。其中字母可以是大寫或小寫的英文字母,數

字為0到9。

b) 識別符號的第一個字元不能是數字。

c) 識別符號區分大小寫。

d) 識別符號不能包含空格。

5. Java有幾種基本資料型別?

a) byte,short,int,long,char,boolean,float,double

6. 什麼是隱式型別轉換?什麼是顯示型別轉換?

a) 當將佔位數少的型別賦值給佔位數多的型別時,Java自動使用隱式型別轉換。 b) 當把在級別高的變數的值賦給級別底變數時,必須使用顯示型別轉換運算。

7. &&和&區別,||和|區別?

a) &&和||是短路與,短路或,當左邊的表示式能判斷當前結果,則不判斷右邊的表

達式。

b) 而& 和|則將兩邊的表示式都運算完畢後,再算結果。

8. break,continue區別?

a) break結束最近的一個迴圈,continue結束當次迴圈,進入下次迴圈。

9. 類的命名規則是什麼?

a) 如果類名使用拉丁字母,那麼名字的首寫字母使用大寫字母。

b) 類名最好見名得意,當類名由幾個單詞複合而成時,每個單詞的首寫字母使用大寫。

10. 類體的內容由兩部分構成,哪兩部分?

a) 一部分是變數的定義,用來刻畫屬性。

b) 另一部分是方法的定義,用來刻畫功能。

11. 解釋什麼是類的成員變數,區域性變數,例項成員變數,類成員變數?

a) 變數定義部分所定義的變數被稱為類的成員變數。

b) 在方法體中定義的變數和方法的引數被稱為區域性變數。

c) 成員變數又分為例項成員變數和類成員變數(static修飾)。

12. 簡述this關鍵字用法。

a) this關鍵字使用在例項方法中,代表呼叫該方法的當前物件。

13. 如何確定方法的返回型別?

_____________________________________________________________________


a) 方法返回的值的型別就是方法的返回型別,如果無返回值,則返回型別為void。

14. 返回值為void的方法,可否有return?

a) 可以。但return後沒有任何值。

15. 解釋什麼是類方法,什麼是例項方法?

a) static修飾的方法是類方法,無static修飾的方法是例項方法。

16. 簡述方法和變數的命名規則?

a) 首寫字母使用小寫,如果由多個單片語成,從第2個單詞開始首字母使用大寫。

17. 什麼是方法過載?

a) 方法過載是指一個類中可以有多個方法具有相同的名字,但這些方法的引數必須不

同,即或者是引數的個數不同,或者是引數的型別不同。

18. 什麼是構造方法?

a) 構造方法是一種特殊方法,它的名字必須與它所在的類的名字完全相同,並且不返

回任何資料型別。

19. 如何建立一個物件?

a) 使用new 運算子和類的構造方法為物件分配記憶體,如果類中沒有構造方法,系統

會呼叫預設的構造方法。

20. 系統什麼情況下會為類提供構造方法,提供什麼樣的構造方法?

a) 如果類中沒有構造方法,系統會提供一個預設的構造方法,預設的構造方法是無參

的。

21. 物件如何呼叫自己的成員變數和方法?

a) 使用運算子” . ”來呼叫自己的成員變數和方法。

22. 為什麼可以直接用類名來訪問類成員變數和類方法?

a) 因為當類被載入到虛擬機器的時候,類成員變數就被分配記憶體,類方法被分配入口地

址,所以不用建立物件,可以直接通過類名呼叫。

23. 類變數有什麼特點?

a) 一個類的所有物件共享同一個類變數。

24. 類方法有什麼特點?

a) 類方法只能呼叫類變數和類方法。(同一類中)

25. package關鍵字有什麼作用,使用中注意什麼問題?

a) package指定一個類所在的包,該語句為原始碼第一行。

26. import關鍵字有什麼作用?

a) 引入程式中所用到的類。

27. 類有幾種訪問許可權?變數和方法有幾種訪問許可權?分別是什麼?

a) 類有兩種訪問許可權:public,友好的。

b) 方法和變數的訪問許可權:public,protected,友好的,private。

28. 簡述java的訪問許可權。

a) public:公有的,任何類都可以訪問。

b) protected:受保護的,同一個包的類可以訪問。不同包的子類可以訪問。 c) 友好的:同一個包的類可以訪問。

d) private:私有的,在同一個類中才能訪問。

29. 子類能繼承父類的哪些變數和方法?

a) 如果子類和父類在同一個包中,那麼,子類自然地繼承了其父類中不是private 的

成員變數作為自己的成員變數,並且也自然地繼承了父類中不是private 的方法作為自己的方法。

_____________________________________________________________________


b) 如果子類和父類不在同一個包中,那麼,子類繼承了父類的protected,public 成

員變數做為子類的成員變數,並且繼承了父類的protected,public 方法為子類的方法。

30. 子類重寫父類的方法,可否降低訪問許可權?

a) 不可以降低。

31. final關鍵字可以用來修飾什麼?分別起什麼作用?

a) final可以修飾類,這樣的類不能被繼承。

b) final可以修飾方法,這樣的方法不能被重寫。

c) final可以修飾變數,這樣的變數的值不能被修改,是常量。

32. 簡述super關鍵字作用?

a) 使用super呼叫父類的構造方法。

b) 使用super操作被隱藏的成員變數和方法。

33. 簡述什麼是物件上轉型?

a) 假設,A 類是B 類的父類,當我們用子類建立一個物件,並把這個物件的引用放

到父類的物件中時,我們稱這個父類物件是子類物件的上轉型物件。

34. 上轉型物件可以操作什麼?不可以操作什麼?

a) 上轉物件不能操作子類新增的成員變數,失掉了這部分屬性,不能使用子類新增的

方法,失掉了一些功能 。

b) 上轉型物件可以操作子類繼承或重寫的成員變數,也可以使用子類繼承的或重寫的

方法。

35. 什麼是抽象類?什麼是抽象方法?有什麼特點?

a) 用關鍵字abstract修飾類稱為抽象類,abstract類不能用new運算建立物件,必須

產生其子類,由子類建立物件。

b) 用關鍵字abstract修飾方法稱為抽象方法,abstract方法,只允許宣告,而不允許

實現。

36. 一個類宣告實現一個介面,那麼這個類需要做什麼工作?

a) 實現接口裡所有的方法,並且這些方法的訪問許可權必須是public。

37. 簡述什麼是陣列?

a) 陣列是相同型別的資料按順序組成的一種複合資料型別。通過陣列名加陣列下標,

來使用陣列中的資料。下標從 0 開始排序。

38. 建立陣列是否需要指定陣列長度,如何求陣列長度?

a) 必須指定陣列長度,陣列呼叫 .length來獲取陣列長度。

39. char陣列和byte陣列如何轉化成字串?如何求字串長度?

a) 利用String類本身的構造方法,String (char a[]),String (byte a[]),””.length()。

以下方法均為字串中方法

40. equals equalsIgnoreCase startsWith endsWith

a) 字串比較 。

b) 忽略大小寫比較。

c) 判斷是否以指定字串開頭、結尾。

41. regionMatches

a) 判斷一個字串的子串是否和另一個字串的子串匹配。

42. compareTo compareToIgnoreCase indexOf

a) 按字典順序比較字串。

b) 忽略大小寫的按字典順序比較字串。

c) 字串檢索。

43. substring replace trim()

a) 字串擷取

b) 字串替換

c) 去掉字串前後空格。

44. 字串如何轉化為int型,double型?

a) Integer.parseInt(“1”);

b) Double.parseDouble(“25。45”);

45. 簡述StringTokenizer作用?

a) 按照指定的分隔符,將字串解析成若干語言符號。

46. 如何判斷一個字元是不是數字,是不是大寫?

a) Character.isDigit(‘a’)

b) Character.isUpperCase(‘U’)

47. 已知一個java.util.Date物件,如何格式化成如下格式 YYYY-MM-dd hh:mm:ss

a) SimpleDateFormat formate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

formate.format(new Date()));

48. 如何生成一個0-100的隨即整數?

a) (int)(Math.random()*100)

49. 簡述java異常處理的機制?

a) 當所呼叫的方法出現異常時,呼叫者可以捕獲異常使之得到處理;也可以迴避異常。

50. 簡述如下關鍵字用途try、catch、throw、throws、finally

a) try:保護程式碼,如果try中某行程式碼出現異常,則try中程式碼不再繼續執行。 b) catch:捕獲異常,當try中出現異常,則catch負責捕獲異常,並處理。

c) throw:丟擲異常。

d) throws:宣告異常。

e) finally:無論try中是否出現異常,finally一定執行。

51. LinkedList和ArrayList區別?

a) LinkedList底層通過鏈式儲存結構實現。

b) ArrayList底層通過陣列實現。

52. 什麼是I/O流,有什麼作用?

a) 指資料輸入輸出的流, I/O 流提供一條通道程式,可以使用這條通道把源中的字

節序列送給目的地。

53. 如何檢視一個檔案的大小,絕對路徑,是否可讀?

a) File file = new File(“e://a.txt”);

b) file.length();

c) file.getAbsolutePath();

d) file.canRead();

54. 已知如下程式碼

File f = new File("myfile.dat");

FileInputStream istream = new FileInputStream(f); 如何從流中讀取資料。

a) byte[] buff = new byte[100];

b) istream.read(buff);

55. 實現多執行緒的兩種方法?

a) 從Java.lang.Thread類派生一個新的執行緒類,重寫它的run()方法。

b) 實現Runnable介面,重寫Runable介面中的run()方法。

56. 簡述一個執行緒的生命週期?

a) 新建---執行---中斷---死亡

57. 如何讓一個準備就緒的執行緒執行?

a) 呼叫執行緒的start方法讓一個處於準備就緒的狀態的執行緒執行。

58. 如何讓一個執行緒休眠1000毫秒?

a) 呼叫執行緒的sleep方法,引數為1000。

59. 如何使執行緒同步?

a) 使用同步方法

synchronized void methodA() { }

b) 使用同步塊

synchronized(object) {

//要同步的語句

}

60. 什麼是GC?為什麼有GC?

a) GC是垃圾收集器。Java 程式設計師不用擔心記憶體管理,因為垃圾收集器會自動進行管

理。

61. 構造方法能否被重寫?為什麼?

a) 不能,因為構造方法不能被繼承,所以不能重寫。

62. 是否可以繼承String類,為什麼?

a) 因為String類是final類,final修飾的類不能被繼承。

63. java關鍵字區分大小寫嗎?

a) java關鍵字一律小寫。所以無所謂區分大小寫,大寫的不是關鍵字。

64. java採用什麼字符集?該字符集有多少字元

a) Java 使用 unicode 字符集,所以常量共有 65535 個

65. 列舉算術運算子?

a) +,-,*,/,%

66. 算術混合運算結果精度如何確定?

a) Java按照運算子兩邊的操作元的最高精度保留結果的精度。

67. &是位運算子,與運算的規則是什麼?

a) 全1則1,否則為0

68. | 是位運算子,或運算的規則是什麼?

a) 全0則0,否則是1

69. ^是位運算子,異或運算的規則是什麼?

a) 相同0,不同1

70. ~是位運算子,非運算的規則是什麼?

a) 遇1則0,遇0則1

71. if語句後邊有個括號,該括號裡表示式為什麼型別?

a) boolean型別

72. switch語句後括號裡的表示式是什麼型別?case後型別如何確定?

a) char,int,byte,short,列舉型別。

b) case後面是一個常量,該常量型別由switch後括號內表示式來確定。

73. switch語句後,default關鍵字起什麼作用?break起什麼作用?

a) default:當用戶指定的表示式與任何case都不匹配的時候,執行default後的語句。 b) break:退出當前case。

74. for迴圈後括號裡三個表示式分別起什麼作用?

a) 1:迴圈初始化的時候執行,只執行一次。

b) 2:迴圈成立的條件。

c) 3:迴圈每次執行都會呼叫該表示式,一般做變數自增。

75. while 和do。。while區別?

a) while先判斷條件,再執行。

b) do……while先執行,再判斷條件

c) do……while至少執行一次。

76. 什麼是編譯執行的語言?什麼是解釋執行的語言?

a) 編譯方式:Compilation:針對當前的機器處理器晶片,將源程式全部翻譯成機器指令,

稱做目標程式,再將目標程式交給計算機執行.

b) 解釋方式:Interpretation:這種方式不產生整個的目標程式,而是根據當前的機器處

理器晶片,邊翻譯邊執行,翻譯一句執行一句.

77. 簡述一個java程式執行的過程?

a) 首先編寫java原始檔(副檔名為.java的文字文件)。

b) 用javac命令把原始檔編譯成位元組碼檔案(.class檔案)

c) 用java命令執行位元組碼檔案。

78. 成員變數的作用範圍?區域性變數的作用範圍?

a) 成員變數在整個類內都有效

b) 區域性變數只在定義它的類內有效。

79. 構造方法有什麼作用?

a) 在建立物件的時候,java虛擬機器會呼叫類的構造方法來建立物件。一般物件的初始

化工作可以放在構造方法裡。

80. java三大特性?

a) 封裝,繼承,多型。

資料庫部分

81. 簡述什麼是關係型資料庫?

a) 所謂關係型資料庫,是指採用了關係模型來組織資料的資料庫。關係模型指的就是

二維表格模型,而一個關係型資料庫就是由二維表及其之間的聯絡組成的一個數據組織。

b) 關係型資料庫是由許多資料表(Table)所組成,表又是由許多記錄(Row 或Record)

所組成,而紀錄又是由許多的欄位(Column 或Filed)所組成。

82. 什麼是主鍵?

a) 設定一個表中的某個欄位為主鍵,這個欄位能夠唯一的確定該表中某條記錄,這樣

的欄位我們稱為主鍵。

83. 什麼是外來鍵?

a) 外部鍵約束用於強制參照完整性,提供單個欄位或者多個欄位的參照完整性。


84. 主外來鍵關聯的作用?

a) 保證資料完整性。

b) 消除冗餘資料。

85. SQL語句中文含義是?

a) Structured Query Language,結構化查詢語言。

86. 什麼是資料庫?

a) 資料庫是長期儲存在計算機內的、有組織的、可共享的資料集合。

87. 什麼資料庫管理系統?

a) DBMS就是實現把使用者意義下的抽象的邏輯資料轉換成計算機中的具體的物理數

據的處理軟體。

JDBC部分

88. JDBC含義?

a) JDBC(Java DataBase Connectivity) java資料庫連線,是java連線資料庫的AIP。

89. JDBC連線資料庫步驟?

a) 載入驅動

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

b) 建立連線

Connection conn = DriverManager.getConnection(dbURL,username,password);

c) 建立語句物件

Statement stmt = conn.createStatement()

90. 如何使用sql語句操作資料庫?

a) 得到語句物件之後,使用語句物件呼叫executeUpdate(sql)方法和executeQuery(sql)

方法分別執行更新語句和查詢語句。

91. executeUpdate(sql)方法的返回值表示什麼含義?

a) 表示該更新方法影響了幾行記錄。

92. executeQuery(sql)方法的返回值如何使用?

a) 該方法的返回值為一個結果集,即ResultSet型別的物件。

b) ResultSet型別的物件有一個遊標,指向當前操作的行。該遊標預設指向第一行記錄

之前,如果我們想操作結果集,需要先將遊標下移,我們呼叫ResultSet介面的next()方法將遊標下移,如果結果集裡有資料,則遊標下移,指向第一行,如果結果集裡沒有記錄,則下移失敗。當遊標指向具體的某一行時,我們就可以從結果集裡邊獲取值了。獲取的值為當前遊標指向行的值。

93. 如何獲取遊標所指的行的資料?

a) 當遊標指向某一行時,我們可以使用ResultSet介面的getString(列名)方法來獲取某

一列的值,列名作為方法的引數。

94. 建立語句物件時,createStatement(引數1,引數2),兩個引數分別表示什麼含義?

a) 第一個引數指定該語句物件生成的結果集是否可滾動以及是否敏感,

b) 第二個引數指定該語句物件生成的結果集是否可以更新資料庫。


學習有困難可以加扣:578024144進行交流得到幫助還可以關注微信公眾號:javaniuniu獲取免費得聽課許可權

           

再分享一下我老師大神的人工智慧教程吧。零基礎!通俗易懂!風趣幽默!還帶黃段子!希望你也加入到我們人工智慧的隊伍中來!https://blog.csdn.net/jiangjunshow