刷題 day06 Java
1.Java 中建立一個物件使用的關鍵字是(C)
A class
B interface
C new
D creat
解析:class是一個類的關鍵字,建立一個物件關鍵字肯定是new。
2.先進先出的容器是(B)
A 堆疊(Stack)
B 佇列(Queue)
C 字串(String)
D 跌送器(Iterator)
解析:堆疊具有先進後出的特點如子彈人彈夾一樣;佇列具有先進先出的特點如排隊過隧道;字串是一個儲存資料的結構沒有嚴格地出入要求;跌送器的讀取取決於讀取的方式。
3.JSP 表示式的寫法:(C)
A <% expression %>
B <= expression %>
C <%= expression %>
D
解析:A中可以插入一些語句;B中只能放置全域性變數,全域性常量,類,函式;C中只能放置一個變數,常量。
4.如果一個介面Glass有個方法setColor(),有個類BlueGlass實現介面Glass,則在類BlueGlass中正確的是? ( C)
A protected void setColor() { …}
B void setColor() { …}
C public void setColor() { …}
D 以上語句都可以用在類BlueGlass中
解析:JAVA 子類重寫繼承的方法時,不可以降低方法的訪問許可權,子類繼承父類的訪問修飾符要比父類的更大,也就是更加開放,假如我父類是protected修飾的,其子類只能是protected或者public,絕對不能是friendly(預設的訪問範圍)或者private,當然使用private就不是繼承了。還要注意的是,繼承當中子類丟擲的異常必須是父類丟擲的異常的子異常,或者子類丟擲的異常要比父類丟擲的異常要少。
5.socket程式設計中,以下哪個socket的操作是不屬於服務端操作的(C)
A accept
B listen
C connect
D close
解析:伺服器端,首先是伺服器初始化Socket,然後是與埠進行繫結(blind()),埠建立ServerSocket進行監聽(listen()),然後呼叫阻塞(accept()),等待客戶端連線。與客戶端發生連線後,會進行相關的讀寫操作(read(),write()),最後呼叫close()關閉連線。
6.以下(D)不是 Object 類的方法
A clone()
B finalize()
C toString()
D hasNext()
解析:1.clone方法
保護方法,實現物件的淺複製,只有實現了Cloneable接口才可以呼叫該方法,否則丟擲CloneNotSupportedException異常。
2.getClass方法
final方法,獲得執行時型別。
3.toString方法
該方法用得比較多,一般子類都有覆蓋。
4.finalize方法
該方法用於釋放資源。因為無法確定該方法什麼時候被呼叫,很少使用。
5.equals方法
該方法是非常重要的一個方法。一般equals和==是不一樣的,但是在Object中兩者是一樣的。子類一般都要重寫這個方法。
6.hashCode方法
該方法用於雜湊查詢,重寫了equals方法一般都要重寫hashCode方法。這個方法在一些具有雜湊功能的Collection中用到。
一般必須滿足obj1.equals(obj2)==true。可以推出obj1.hash- Code()==obj2.hashCode(),但是hashCode相等不一定就滿足equals。不過為了提高效率,應該儘量使上面兩個條件接近等價。
7.wait方法
wait方法就是使當前執行緒等待該物件的鎖,當前執行緒必須是該物件的擁有者,也就是具有該物件的鎖。wait()方法一直等待,直到獲得鎖或者被中斷。wait(long timeout)設定一個超時間隔,如果在規定時間內沒有獲得鎖就返回。
呼叫該方法後當前執行緒進入睡眠狀態,直到以下事件發生。
(1)其他執行緒呼叫了該物件的notify方法。
(2)其他執行緒呼叫了該物件的notifyAll方法。
(3)其他執行緒呼叫了interrupt中斷該執行緒。
(4)時間間隔到了。
此時該執行緒就可以被排程了,如果是被中斷的話就丟擲一個InterruptedException異常。
8.notify方法
該方法喚醒在該物件上等待的某個執行緒。
9.notifyAll方法
該方法喚醒在該物件上等待的所有執行緒。
7.protected訪問許可權要小於包(default )訪問許可權。( B )
A 正確
B 錯誤
解析:
8.Thread. sleep()是否會丟擲checked exception(A)
A 會
B 不會
解析:checked exception:指的是編譯時異常,該類異常需要本函式必須處理的,用try和catch處理,或者用throws丟擲異常,然後交給呼叫者去處理異常。
runtime exception:指的是執行時異常,該類異常不必須本函式必須處理,當然也可以處理。
Thread.sleep()丟擲的InterruptException屬於checked exception;IllegalArgumentException屬於Runtime exception;
8.下面哪一項不屬於優化Hibernate所鼓勵的?
A 使用單向一對多關聯,不使用雙向一對多
B 不用一對一,用多對一取代
C 配置物件快取,不使用集合快取
D 繼承類使用顯式多型
解析:優化Hibernate所鼓勵的7大措施:
1.儘量使用many-to-one,避免使用單項one-to-many
2.靈活使用單向one-to-many
3.不用一對一,使用多對一代替一對一
4.配置物件快取,不使用集合快取
5.一對多使用Bag 多對一使用Set
6.繼承使用顯示多型 HQL:from object polymorphism=“exlicit” 避免查處所有物件
7.消除大表,使用二級快取
9.下面有關servlet的層級結構和常用的類,說法正確的有(ABDC)
A GenericServlet類:抽象類,定義一個通用的、獨立於底層協議的Servlet。
B 大多數Servlet通過從GenericServlet或HttpServlet類進行擴充套件來實現
C ServletConfig介面定義了在Servlet初始化的過程中由Servlet容器傳遞給Servlet得配置資訊物件
D HttpServletRequest介面擴充套件ServletRequest介面,為HTTP Servlet提供HTTP請求資訊
解析:HttpServlet是GenericServlet的子類。
GenericServlet是個抽象類,必須給出子類才能例項化。它給 出了設計servlet的一些骨架,定義了servlet生命週期,還有一些得到名字、配置、初始化引數的方法,其設計的是和應用層協議無關的,也就是說 你有可能用非http協議實現它。
HttpServlet是子類,當然就具有GenericServlet的一切特性,還添加了doGet, doPost, doDelete, doPut, doTrace等方法對應處理http協議裡的命令的請求響應過程。
一般沒有特殊需要,自己寫的Servlet都擴充套件HttpServlet 。