題目整理

一、在類方法中調用本類的類方法可以直接調用

類方法:屬於整個類,不能有與類對象有關的內容,具體限制如下:

  • 類方法中不能引用對象變量
  • 類方法中不能調用類的對象方法
  • 在類方法中不能使用super、this關鍵字
  • 類方法不能被覆蓋

實例方法:屬於類的某個對象,幾乎沒什麼限制

在類方法中絕不能調用實例方法。——錯(可通過生成類的實例對象來調用)

二、(單選題)下面程序的運行結果(t2>t3

        Object obj=new Object();
        List aList=new ArrayList();
        List bList=new LinkedList();
        
        long t1=System.currentTimeMillis();
        for(int i=0;i<50000;i++){
            aList.add(0,obj);
        }
        long t2=System.currentTimeMillis()-t1;
        
        t1=System.currentTimeMillis();
        for(int i=0;i<50000;i++){
            bList.add(0,obj);
        }
        long t3=System.currentTimeMillis()-t1; 

因爲ArrayList的add慢,LinkedList的add快

三、結構型模式

結構型模式是描述如何將類對象結合在一起,形成一個更大的結構。

結構模式描述兩種不同的東西:類與類的實例。故可以分爲類結構模式和對象結構模式。

在GoF設計模式中,結構型模式有:

  • 適配器模式 Adapter
    • 適配器模式是將一個類的接口轉換成客戶希望的另外一個接口。
    • 適配器模式使得原本由於接口不兼容而不能一起工作的那些類可以一起工作。
    • 兩個成熟的類需要通信,但是接口不同,由於開閉原則,我們不能去修改這兩個類的接口,所以就需要一個適配器來完成銜接過程。
  • 橋接模式 Bridge
    • 橋接模式將抽象部分與它的實現部分分離,使它們都可以獨立地變化。
    • 它很好的支持了開閉原則和組合鋸和複用原則。
    • 實現系統可能有多角度分類,每一種分類都有可能變化,那麼就把這些多角度分離出來讓他們獨立變化,減少他們之間的耦合。
  • 組合模式 Composite
    • 組合模式將對象組合成樹形結構以表示部分-整體的層次結構。
    • 組合模式使得用戶對單個對象和組合對象的使用具有一致性。
  • 裝飾模式 Decorator
    • 裝飾模式動態地給一個對象添加一些額外的職責
    • 就增加功能來說,它比生成子類更靈活。
    • 也可以這樣說,裝飾模式把複雜類中的核心職責和裝飾功能區分開了,這樣既簡化了複雜類,有去除了相關類中重複的裝飾邏輯。
    • 裝飾模式沒有通過繼承原有類來擴展功能,但卻達到了一樣的目的,而且比繼承更加靈活,所以可以說裝飾模式是繼承關係的一種替代方案。
  • 外觀模式 Facade
    • 外觀模式爲子系統中的一組接口提供了統一的的界面,外觀模式定義了一個高層接口,這個接口使得這一子系統更加容易使用。
    • 外觀模式中,客戶對各個具體的子系統是不瞭解的,所以對這些子系統進行了封裝,對外只提供了用戶所明白的單一而簡單的接口,用戶直接使用這個接口就可以完成操作,而不用去理睬具體的過程,而且子系統的變化不會影響到用戶,這樣就做到了信息隱蔽。
  • 享元模式 Flyweight
    • 享元模式爲運用共享技術有效的支持大量細粒度的對象。
    • 因爲它可以通過共享大幅度地減少單個實例的數目,避免了大量非常相似類的開銷。.
    • 享元模式是一個類別的多個對象共享這個類別的一個對象,而不是各自再實例化各自的對象。這樣就達到了節省內存的目的。
  • 代理模式 Proxy
    • 爲其他對象提供一種代理,並由代理對象控制對原對象的引用,以間接控制對原對象的訪問。

四、(單選題) 給定includel.isp文件代碼片段,如下,橫線處應填寫的是(B)

<% pageContext.setAttribute(“User”,”HAHA”);%>
______ // 此處填寫代碼
給定include2.jsp文件代碼片段如下: 
<%=pageContext.getAttribute(“User”)%> 
要求運行include1.jsp時,瀏覽器上輸出:HAHA

B選項是靜態包含,相當於不include2.jsp頁面內容拷貝到此處,因此可以輸出User屬性值 。

JSP 共有以下 6 種基本動作:

  • jsp:include:在頁面被請求的時候引入一個文件;
  • jsp:useBean:尋找或者實例化一個JavaBean;
  • jsp:setProperty:設置 JavaBean 的屬性;
  • jsp:getProperty:輸出某個 JavaBean 的屬性;
  • jsp:forward:把請求轉到一個新的頁面;
  • jsp:plugin:根據瀏覽器類型爲 Java 插件生成 OBJECT 或 EMBED 標記。

五、Struts框架

答案:B
A,structs可以進行文件上傳
B,structs基於MVC模式,MVC是模型,視圖,控制器,是一種設計模式
C,structs框架讓流程結構更清晰
D,structs需要很多 action類,會增加類文件數目

六、

選D。

A:JDK1.8 的 ConcurrentHashMap 採用CAS+Synchronized保證線程安全。 JDK1.7 及以前採用segment的分段鎖機制實現線程安全,其中segment繼承自ReentrantLock,因此採用Lock鎖來保證線程安全。

B中,HashMap定義規則如下:

public class HashMap<K,V>  extends AbstractMap<K,V> 
                           implements Map<K,V>, Cloneable, Serializable

C:應該是Arrays.asList(),其將一個數組轉化爲一個List對象,這個方法會返回一個ArrayList類型的對象, 這個ArrayList類並非java.util.ArrayList類,而是Arrays類的內部類: 

七、(不定項選擇題) 以下關於Histroy對象的屬性或方法描述正確的是(A、D)

考察的是瀏覽器的內置對象管理模型,簡稱BOM(Browser Object Model)中的Histroy屬性和方法。 

  • length 返回瀏覽器歷史列表中的URL數量。所以C中表述的長度信息是錯誤的。 
  • back() 加載 history列表中的前一個URL。 
  • forward() 加載  history  列表中的下一個URL。 
  • go() 加載history列表中的某個具體頁面。所以B的表述刷新當前頁面是錯誤的。

 

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