牛客網---Java專項練習(2)(第二題單例設計模式)

牛客網—Java專項練習(2)

1.在異常處理中,以下描述不正確的有

a. try塊不可以省略
b. 可以使用多重catch塊
c. finally塊可以省略
d. catch塊和finally塊可以同時省略

正確答案 D

//try塊的表現形式有三種 catch和finally不能同時省略
try-catch
try-catch-finally
try-finally
  1. 下面代碼的執行結果是 :
class Chinese{private static  Chinese objref =new Chinese();private Chinese(){}public static Chinese getInstance() {         return objref;     } 

 } 

 public class TestChinese {public static void main(String [] args)       { 

​    Chinese obj1 = Chinese.getInstance(); 

​    Chinese obj2 = Chinese.getInstance(); 

​    System.out.println(obj1 == obj2); 

 } 

 } 

a. true
b. false
c. TRUE
d. FALSE

正確答案 a

初看的時候 以爲這道題在考察static關鍵字 想到static關鍵字修飾的靜態變量只在方法區中內存維護了一份共享數據 那麼obj1和obj2的內存地址就應該相同 所以返回true

接下來 又看牛客網友的評論 發現這是單例設計模式(自己真菜真辣雞)

下面簡單複習一下單例設計模式

單例設計模式的目標 一個類在內存中只有一個對象

我們來看一下單例設計模式的三個步驟

​ (1) 私有化構造函數

​ (2) 聲明一個本類的引用類型變量 創建本類的對象

​ (3) 提供一個公共的方法來獲取本類的對象

我們再來看一下單例設計模式要注意的細節

public static Chinese getInstance() {         return objref;     }

這個獲取本類對象的公共方法 應該用static來修飾 試想如果這個方法是非靜態的 那麼我們在調用這個方法時要使用對象.方法名()的形式進行訪問(非靜態成員只能用對象的形式訪問) 但構造方法已經被我們私有化了 我們只能通過類名.方法名()的這個方法來拿到該類對象 這就要求這個公共方必須是static修飾的靜態方法

Chinese obj1 = Chinese.getInstance();

我們也是使用類名進行調用

3.關於數據庫連接的程序,以下哪個語句的註釋是錯誤的

a. Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”); //指定MySQL JDBC驅動程序
b. String url=”jdbc:odbc:student_access”; //指定數據源爲student_access
c. Connection con=DriverManager.getConnection(url); //創建連接指定數據庫的對象
d. Statement stmt=con.creatStatement();//創建執行SQL語句的Statement對象

正確答案 a

害 最後這個題有點水 這個題的原因我個人認爲是這樣的

Class.forName("com.mysql.jdbc.Driver")//俺覺得這個是mysql驅動

寫在最後

害 今天本來準備衝5個題了 可是如圖

在這裏插入圖片描述

真的衝的累了(其實是想玩會手機了) 歇了歇了 晚上不累再衝 沖沖衝

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章