• 當前位置:好職網>職場指南>筆試>SSH筆試題

    SSH筆試題

    時間:2019-11-11 08:03:42 筆試 我要投稿

    SSH筆試題

    struts+spring+hibernate面試題集


    1 Action是不是線程安全的?如果不是 有什么方式可以保證Action的線程安全?如果是,說明原因
    不是
    聲明局部變量,或者擴展Requestprocessor,讓每次都創建一個Action,或者在spring中用scope=\"prototype\"來管理

    2.MVC,分析一下struts是如何實現MVC的
    m:JavaBean 或結合 EJB 組件或者pojo構成
    c:Action 來實現
    v:一組 JSp 文件及其標簽構成。

    3.struts中的幾個關鍵對象的作用(說說幾個關鍵對象的作用)
    Action:控制器類,ActionForm:表單對象,DynaValidatorForm:動態form,ActonMapping:配置文件中action節點的信息......

    4.說說AOp和IOC的概念以及在spring中是如何應用的
    AOp:面向方面編程,ioc:依賴注入;聲明式事務和編程式事務積極一些通用部分

    5.Hibernate有哪幾種查詢數據的方式
    hql查詢,sql查詢,條件查詢

    6.load()和get()的區別
    hibernate對于load方法認為該數據在數據庫中一定存在,可以放心的使用代理來延遲加載,load默認支持延遲加載,在用到對象中的其 他屬性數 據時才查詢數據庫,但是萬一數據庫中不存在該記錄,只能拋異常ObjectNotFoundEcception;所說的load方法拋異常是指在使用該對 象的數據時,數據庫中不存在該數據時拋異常,而不是在創建這個對象時。由于session中的緩存對于hibernate來說是個相當廉價的資源,所以在 load時會先查一下session緩存看看該id對應的對象是否存在,不存在則創建代理(load時候之查詢一級緩存,不存在則創建代理)。get() 現在一級緩存找,沒有就去二級緩存找,沒有就去數據庫找,沒有就返回null ;而對于get方法,hibernate一定要獲取到真實的數據,否則返回null。

    7.談談hibernate的延遲加載和openSessionInView
    延遲加載要在session范圍內,用到的時候再加載;opensessioninview是在web層寫了一個
    filter來打開和關閉session,這樣就表示在一次request過程中session一直開著,保證了延遲
    加載在session中的這個前提。

    8.spring的事務有幾種方式?談談spring事務的隔離級別和傳播行為。
    聲明事務和編程事務
    隔離級別:
    - DEFAULT使用數據庫默認的隔離級別
    - READ_UNCOMMITTED會出現臟讀,不可重復讀和幻影讀問題
    - READ_COMMITTED會出現重復讀和幻影讀
    - REpEATABLE_READ會出現幻影讀
    - SERIALIZABLE最安全,但是代價最大,性能影響極其嚴重
    和傳播行:
    - REQUIRED存在事務就融入該事務,不存在就創建事務
    - SUppORTS存在事務就融入事務,不存在則不創建事務
    - MANDATORY存在事務則融入該事務,不存在,拋異常
    - REQUIRES_NEW總是創建新事務
    - NOT_SUppORTED存在事務則掛起,一直執行非事務操作
    - NEVER總是執行非事務,如果當前存在事務則拋異常
    - NESTED嵌入式事務

    9.Hibernate中的update()和saveOrUpdate()的區別.
    摘自hibernate說明文檔:
    saveOrUpdate()做下面的事:
    如果對象已經在本session中持久化了,不做任何事
    如果另一個與本session關聯的對象擁有相同的持久化標識(identifier),拋出一個異常
    如果對象沒有持久化標識(identifier)屬性,對其調用save()
    如果對象的持久標識(identifier)表明其是一個新實例化的對象,對其調用save()
    如果對象是附帶版本信息的(通過 <version>或 <timestamp>) 并且版本屬性的值表明其是一個新實例化的對象,save()它。 否則update() 這個對象
    10.Spring對多種ORM框架提供了很好的支持,簡單描述在Spring中使用Hibernate的方法,并結合事務管理。
    getHiberanteTemplate里面提供了save,update,,find等方法。
    簡單說一個:如果配置了聲明式事務,當執行getHibernateTemplate的各種方法的時候,事務會
    自動被加載
    如果沒有配置事務,那么以上操作不會真正的被同步到數據庫,除非配置了hibernate的
    autocommit=true
    8.spring的事務有幾種方式?談談spring事務的隔離級別和傳播行為。
    spring事務分兩種形式,聲明式事務和編程式事務,spring提供了一個事務的接口
    paltformTractionManager接口,針對不同的事務,spring進行了不同的實現,對hibernate事務
    的實現HIbernateTractionManager,對JDBC的JdbcTractionManager,
    DataSourceTractionManager以及JdoTractionManager。接口platformTractionManager提供了三
    個方法,獲取事務,提交和回滾的方法。
    ******************************************************************************
    分享面試題二】Spring,hibernate,struts的面試筆試題(含答案)
    (聲明:這里不是為其他商業利益,是為學習討論使用)
    【鄭重聲明】:單純接分將被刪帖,希望大家有自己的感觸
    Hibernate工作原理及為什么要用?
    原理:
    1.讀取并解析配置文件
    2.讀取并解析映射信息,創建SessionFactory
    3.打開Sesssion
    4.創建事務Transation
    5.持久化操作
    6.提交事務
    7.關閉Session
    8.關閉SesstionFactory
    為什么要用:
    1. 對JDBC訪問數據庫的代碼做了封裝,大大簡化了數據訪問層繁瑣的重復性代碼。
    2. Hibernate是一個基于JDBC的主流持久化框架,是一個優秀的ORM實現。他很大程度的簡化DAO層的編碼工作
    3. hibernate使用Java反射機制,而不是字節碼增強程序來實現透明性。
    4. hibernate的性能非常好,因為它是個輕量級框架。映射的靈活性很出色。它支持各種關系數據庫,從一對一到多對多的各種復雜關系。
    2. Hibernate是如何延遲加載?
    1. Hibernate2延遲加載實現:a)實體對象 b)集合(Collection)
    2. Hibernate3 提供了屬性的延遲加載功能
    當Hibernate在查詢數據的時候,數據并沒有存在與內存中,當程序真正對數據的操作時,對象才存在與內存中,就實現了延遲加載,他節省了服務器的內存開銷,從而提高了服務器的性能。
    3.Hibernate中怎樣實現類之間的關系?(如:一對多、多對多的關系)
    類與類之間的關系主要體現在表與表之間的關系進行操作,它們都市對對象進行操作,我們程序中把所有的表與類都映射在一起,它們通過配置文件中的many-to-one、one-to-many、many-to-many、
    4. 說下Hibernate的緩存機制
    1. 內部緩存存在Hibernate中又叫一級緩存,屬于應用事物級緩存
    2. 二級緩存:
    a) 應用及緩存
    b) 分布式緩存
    條件:數據不會被第三方修改、數據大小在可接受范圍、數據更新頻率低、同一數據被系統頻繁使用、非 關鍵數據
    c) 第三方緩存的實現
    5. Hibernate的查詢方式
    Sql、Criteria,object comptosition
    Hql:
    1、 屬性查詢
    2、 參數查詢、命名參數查詢
    3、 關聯查詢
    4、 分頁查詢
    5、 統計函數
    6. 如何優化Hibernate?
    1.使用雙向一對多關聯,不使用單向一對多
    2.靈活使用單向一對多關聯
    3.不用一對一,用多對一取代
    4.配置對象緩存,不使用集合緩存
    5.一對多集合使用Bag,多對多集合使用Set
    6. 繼承類使用顯式多態
    7. 表字段要少,表關聯不要怕多,有二級緩存撐腰

    7. Struts工作機制?為什么要使用Struts?
    工作機制:
    Struts的工作流程:
    在web應用啟動時就會加載初始化ActionServlet,ActionServlet從
    struts-config.xml文件中讀取配置信息,把它們存放到各種配置對象
    當ActionServlet接收到一個客戶請求時,將執行如下流程.
    -(1)檢索和用戶請求匹配的ActionMapping實例,如果不存在,就返回請求路徑無效信息;
    -(2)如果ActionForm實例不存在,就創建一個ActionForm對象,把客戶提交的表單數據保存到ActionForm對象中;
    -(3)根據配置信息決定是否需要表單驗證.如果需要驗證,就調用ActionForm的validate()方法;
    -(4)如果ActionForm的validate()方法返回null或返回一個不包含ActionMessage的ActuibErrors對象, 就表示表單驗證成功;
    -(5)ActionServlet根據ActionMapping所包含的映射信息決定將請求轉發給哪個Action,如果相應 的 Action實例不存在,就先創建這個實例,然后調用Action的execute()方法;
    -(6)Action的execute()方法返回一個ActionForward對象,ActionServlet在把客戶請求轉發給 ActionForward對象指向的JSp組件;
    -(7)ActionForward對象指向JSp組件生成動態網頁,返回給客戶;
    為什么要用:
    JSp、Servlet、JavaBean技術的出現給我們構建強大的企業應用系統提供了可能。但用這些技術構建的系統非常的繁亂,所以在此之上,我們需要一個規則、一個把這些技術組織起來的規則,這就是框架,Struts便應運而生。
    基于Struts開發的應用由3類組件構成:控制器組件、模型組件、視圖組件
    8. Struts的validate框架是如何驗證的?
    在struts配置文件中配置具體的錯誤提示,再在FormBean中的validate()方法具體調用。
    9. 說下Struts的設計模式
    MVC模式: web應用程序啟動時就會加載并初始化ActionServler。用戶提交表單時,一個配置好的ActionForm對象被創建,并被填入表單相應的數 據,ActionServler根據Struts-config.xml文件配置好的設置決定是否需要表單驗證,如果需要就調用ActionForm的 Validate()驗證后選擇將請求發送到哪個Action,如果Action不存在,ActionServlet會先創建這個對象,然后調用 Action的execute()方法。Execute()從ActionForm對象中獲取數據,完成業務邏輯,返回一個ActionForward對 象,ActionServlet再把客戶請求轉發給ActionForward對象指定的jsp組件,ActionForward對象指定的jsp生成動 態的網頁,返回給客戶。
    10. spring工作機制及為什么要用?
    1.spring mvc請所有的請求都提交給DispatcherServlet,它會委托應用系統的其他模塊負責負責對請求進行真正的處理工作。
    2.DispatcherServlet查詢一個或多個HandlerMapping,找到處理請求的'Controller.
    3.DispatcherServlet請請求提交到目標Controller
    4.Controller進行業務邏輯處理后,會返回一個ModelAndView
    5.Dispathcher查詢一個或多個ViewResolver視圖解析器,找到ModelAndView對象指定的視圖對象
    6.視圖對象負責渲染返回給客戶端。
    為什么用:
    {AOp 讓開發人員可以創建非行為性的關注點,稱為橫切關注點,并將它們插入到應用程序代碼中。使用 AOp 后,公共服務 (比 如日志、持久性、事務等)就可以分解成方面并應用到域對象上,同時不會增加域對象的對象模型的復雜性。
    IOC 允許創建一個可以構造對象的應用環境,然后向這些對象傳遞它們的協作對象。正如單詞 倒置 所表明的,IOC 就像反 過來的 JNDI。沒有使用一堆抽象工廠、服務定位器、單元素(singleton)和直接構造(straight construction),每一個對象都是用其協作對象構造的。因此是由容器管理協作對象(collaborator)。
    Spring即使一個AOp框架,也是一IOC容器。 Spring 最好的地方是它有助于您替換對象。有了 Spring,只要用 JavaBean 屬性和配置文件加入依賴性(協作對象)。然后可以很容易地在需要時替換具有類似接口的協作對象。}
    Struts,Spring,Hibernate優缺點
    Struts跟Tomcat、Turbine等諸 多Apache項目一樣,是開源軟件,這是它的一大優點。使開發者能更深入的了解其內部實現機制。 Struts開放源碼框架的創建是為了使開發者在構建基于Java Servlet和JavaServer pages(JSp)技術的Web應用時更加容易。Struts框架為開放者提供了一個統一的標準框架,通過使用Struts作為基礎,開發者能夠更專注 于應用程序的商業邏輯。Struts框架本身是使用Java Servlet和JavaServer pages技術的一種Model-View-Controller(MVC)實現.
    具體來講,
    Struts的優點有:
    1. 實現MVC模式,結構清晰,使開發者只關注業務邏輯的實現.
    2. 有豐富的tag可以用 ,Struts的標記庫(Taglib),如能靈活動用,則能大大提高開發效率。另外,就目前國內的JSp開發者而言,除了使用JSp自帶的常用標記外,很少開發自己的標記,或許Struts是一個很好的起點。
    3. 頁面導航.頁面導航將是今后的一個發展方向,事實上,這樣做,使系統的脈絡更加清晰。通過一個配置文件,即可把握整個系統各部分之間的聯系,這對于后期的維護有著莫大的好處。尤其是當另一批開發者接手這個項目時,這種優勢體現得更加明顯。
    4. 提供Exception處理機制 .
    5. 數據庫鏈接池管理
    6. 支持I18N
    缺點:
    一、轉到展示層時,需要配置forward,每一次轉到展示層,相信大多數都是直接轉到jsp,而涉及到轉向, 需要配置forward,如果有十個展示層的jsp,需要配置十次struts,而且還不包括有時候目錄、文件變更,需要重新修改forward,注意, 每次修改配置之后,要求重新部署整個項目,而tomcate這樣的服務器,還必須重新啟動服務器,如果業務變更復雜頻繁的系統,這樣的操作簡單不可想象。 現在就是這樣,幾十上百個人同時在線使用我們的系統,大家可以想象一下,我的煩惱有多大。
    二、 Struts 的Action必需是thread-safe方式,它僅僅允許一個實例去處理所有的請求。所以action用到的所有的資源都必需統一同步,這個就引起了線程安全的問題。
    三、 測試不方便. Struts的每個Action都同Web層耦合在一起,這樣它的測試依賴于Web容器,單元測試也很難實現。不過有一個Junit的擴展工具Struts TestCase可以實現它的單元測試。
    四、 類型的轉換. Struts的FormBean把所有的數據都作為String類型,它可以使用工具Commons-Beanutils進行類型轉化。但它的轉化都是在Class級別,而且轉化的類型是不可配置的。類型轉化時的錯誤信息返回給用戶也是非常困難的。
    五、 對Servlet的依賴性過強. Struts處理Action時必需要依賴ServletRequest 和ServletResponse,所有它擺脫不了Servlet容器。
    六、前端表達式語言方面.Struts集成了JSTL,所以它主要使用JSTL的表達式語言來獲取數據?墒荍STL的表達式語言在Collection和索引屬性方面處理顯得很弱。
    七、 對Action執行的控制困難. Struts創建一個Action,如果想控制它的執行順序將會非常困難。甚至你要重新去寫Servlet來實現你的這個功能需求。
    八、 對Action 執行前和后的處理. Struts處理Action的時候是基于class的hierarchies,很難在action處理前和后進行操作。
    九、 對事件支持不夠. 在struts中,實際是一個表單Form對應一個Action類(或DispatchAction),換一句話說:在Struts中實際是一個表單只能 對應一個事件,struts這種事件方式稱為application event,application event和component event相比是一種粗粒度的事件。

    Struts重要的表單對象ActionForm是一種對象,它代表了一種應用,這個對象中至少包含幾個字段, 這些字段是Jsp頁面表單中的input字段,因為一個表單對應一個事件,所以,當我們需要將事件粒度細化到表單中這些字段時,也就是說,一個字段對應一 個事件時,單純使用Struts就不太可能,當然通過結合JavaScript也是可以轉彎實現的。
    2.Hibernate
    Hibernate是一個開放源代碼的對象關系映射框架,它對JDBC進行了非常輕量級的對象封裝,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數據庫。
    Hibernate可以應用在任何使用JDBC的場合,既可以在Java的客戶端程序實用,也可以在Servlet/JSp的Web應用中使用,最具革命意義的是,Hibernate可以在應用EJB的J2EE架構中取代CMp,完成數據持久化的重任。
    大多數開發機構經常采取創建各自獨立的數據持久層。一旦底層的數據結構發生改變,那么修改應用的其余部分使之適應這種改變的代價將是十分巨大的。 Hibernate適時的填補了這一空白,它為Java應用提供了一個易用的、高效率的對象關系映射框架。hibernate是個輕量級的持久性框架,功 能卻非常豐富。
    優點:
    a.Hibernate 使用 Java 反射機制而不是字節碼增強程序來實現透明性。
    b.Hibernate 的性能非常好,因為它是個輕量級框架。映射的靈活性很出色。
    c.它支持各種關系數據庫,從一對一到多對多的各種復雜關系。
    缺點:它限制您所使用的對象模型。(例如,一個持久性類不能映射到多個表)其獨有的界面和可憐的市場份額也讓人不安,盡管如 此,Hibernate 還是以其強大的發展動力減輕了這些風險。其他的開源持久性框架也有一些,不過都沒有 Hibernate 這樣有市場沖擊力。
    上面回貼情緒有點激動,希望諒解,我不是因為有人批評Hibernate而感到不快,而是因為帖子里面的觀點實在讓我覺得荒謬。不管覺得 Hibernate好也吧,不好也吧,我唯一覺得遺憾的是,在中文論壇里面找不到一個對Hibernate的真正高水平的評價。在TSS上有一個關于 Hibernate的hot thread,跟了幾百貼,其中包括Hibernate作者Gavin和LiDO JDO的CTO,對于JDO和Hibernate有過一些激烈的爭論,我曾經耐心的看了一遍,仍然沒有發現針對Hibernate真正有力的攻擊,那些所 謂的攻擊無非針對Hibernate沒有一個GUI的配置工具,沒有商業公司支持,沒有標準化等等這些站不住腳的理由。
    補充幾點我的意見:
    一、Hibernate是JDBC的輕量級的對象封裝,它是一個獨立的對象持久層框架,和App Server,和EJB沒有什么必然的聯系。Hibernate可以用在任何JDBC可以使用的場合,例如Java應用程序的數據庫訪問代碼,DAO接口 的實現類,甚至可以是BMp里面的訪問數據庫的代碼。從這個意義上來說,Hibernate和EB不是一個范疇的東西,也不存在非此即彼的關系。
    二、Hibernate是一個和JDBC密切關聯的框架,所以Hibernate的兼容性和JDBC驅動,和數據庫都有一定的關系,但是和使用它的Java程序,和App Server沒有任何關系,也不存在兼容性問題。
    三、Hibernate不能用來直接和Entity Bean做對比,只有放在整個J2EE項目的框架中才能比較。并且即使是放在軟件整體框架中來看,Hibernate也是做為JDBC的替代者出現的,而 不是Entity Bean的替代者出現的,讓我再列一次我已經列n次的框架結構:
    傳統的架構:
    1) Session Bean <-> Entity Bean <-> DB
    為了解決性能障礙的替代架構:
    2) Session Bean <-> DAO <-> JDBC <-> DB
    使用Hibernate來提高上面架構的開發效率的架構:
    3) Session Bean <-> DAO <-> Hibernate <-> DB
    就上面3個架構來分析:
    1、內存消耗:采用JDBC的架構2無疑是最省內存的,Hibernate的架構3次之,EB的架構1最差。
    2、運行效率:如果JDBC的代碼寫的非常優化,那么JDBC架構運行效率最高,但是實際項目中,這一點幾乎做不到,這需要程序員非常精通 JDBC,運用 Batch語句,調整preapredStatement的Batch Size和Fetch Size等參數,以及在必要的情況下采用結果集cache等等。而一般情況下程序員是做不到這一點的。因此Hibernate架構表現出最快的運行效率。 EB的架構效率會差的很遠。
    3、開發效率:在有JBuilder的支持下以及簡單的項目,EB架構開發效率最高,JDBC次之,Hibernate最差。但是在大的項目,特別是持久層關系映射很復雜的情況下,Hibernate效率高的驚人,JDBC次之,而EB架構很可能會失敗。
    4、分布式,安全檢查,集群,負載均衡的支持
    由于有SB做為Facade,3個架構沒有區別。
    四、EB和Hibernate學習難度在哪里?
    EB的難度在哪里?不在復雜的XML配置文件上,而在于EB運用稍微不慎,就有嚴重的性能障礙。所以難在你需要學習很多EJB設計模式來避開性能 問題,需 要學習App Server和EB的配置來優化EB的運行效率。做EB的開發工作,程序員的大部分精力都被放到了EB的性能問題上了,反而沒有更多的精力關注本身就主要 投入精力去考慮的對象持久層的設計上來。
    Hibernate難在哪里?不在Hibernate本身的復雜,實際上Hibernate非常的簡單,難在Hibernate太靈活了。
    當你用EB來實現持久層的時候,你會發現EB實在是太笨拙了,笨拙到你根本沒有什么可以選擇的余地,所以你根本就不用花費精力去設計方案,去平衡方案的好壞,去費腦筋考慮選擇哪個方案,因為只有唯一的方案擺在你面前,你只能這么做,沒得選擇。
    Hibernate相反,它太靈活了,相同的問題,你至少可以設計出十幾種方案來解決,所以特別的犯難,究竟用這個,還是用那個呢?這些方案之間 到底有什 么區別呢?他們的運行原理有什么不同?運行效率哪個比較好?光是主鍵生成,就有七八種方案供你選擇,你為難不為難?集合屬性可以用Set,可以用 List,還可以用Bag,到底哪個效率高,你為難不為難?查詢可以用iterator,可以用list,哪個好,有什么區別?你為難不為難?復合主鍵你 可以直接在hbm里面配置,也可以自定義CustomerType,哪種比較好些?你為難不為難?對于一個表,你可以選擇單一映射一個對象,也可以映射成 父子對象,還可以映射成兩個1:1的對象,在什么情況下用哪種方案比較好,你為難不為難?
    這個列表可以一直開列下去,直到你不想再看下去為止。當你面前擺著無數的眼花繚亂的方案的時候,你會覺得幸福呢?還是悲哀呢?如果你是一個負責的 程序員, 那么你一定會仔細研究每種方案的區別,每種方案的效率,每種方案的適用場合,你會覺得你已經陷入進去拔不出來了。如果是用EB,你第一秒種就已經做出了決 定,根本沒得選擇,比如說集合屬性,你只能用Collection,如果是Hibernate,你會在Bag,List和Set之間來回猶豫不決,甚至搞 不清楚的話,程序都沒有辦法寫。
    3. Spring
    它是一個開源的項目,而且目前非;钴S;它基于IoC(Inversion of Control,反向控制)和AOp的構架多層j2ee系統的框架,但它不強迫你必須在每一層中必須使用Spring,因為它模塊化的很好,允許你根據自 己的需要選擇使用它的某一個模塊;它實現了很優雅的MVC,對不同的數據訪問技術提供了統一的接口,采用IoC使得可以很容易的實現bean的裝配,提供 了簡潔的AOp并據此實現Transcation Managment,等等
    優點:
    a. Spring能有效地組織你的中間層對象,不管你是否選擇使用了EJB。如果你僅僅使用了Struts或其他為J2EE的 ApI特制的framework,Spring致力于解決剩下的問題。
    b. Spring能消除在許多工程中常見的對Singleton的過多使用。根據我的經驗,這是一個很大的問題,它降低了系統的可測試性和面向對象的程度。
    c. 通過一種在不同應用程序和項目間一致的方法來處理配置文件,Spring能消除各種各樣自定義格式的屬性文件的需要。曾經對某個類要尋找的是哪個魔法般的 屬性項或系統屬性感到不解,為此不得不去讀Javadoc甚至源編碼?有了Spring,你僅僅需要看看類的JavaBean屬性。Inversion of Control的使用(在下面討論)幫助完成了這種簡化。
    d.通過把對接口編程而不是對類編程的代價幾乎減少到沒有,Spring能夠促進養成好的編程習慣。
    e. Spring被設計為讓使用它創建的應用盡可能少的依賴于他的ApIs。在Spring應用中的大多數業務對象沒有依賴于Spring。
    f. 使用Spring構建的應用程序易于單元測試。
    g.Spring能使EJB的使用成為一個實現選擇,而不是應用架構的必然選擇。你能選擇用pOJOs或local EJBs來實現業務接口,卻不會影響調用代碼。
    h. Spring幫助你解決許多問題而無需使用EJB。Spring能提供一種EJB的替換物,它們適用于許多web應用。例如,Spring能使用AOp提供聲明性事務管理而不通過EJB容器,如果你僅僅需要與單個數據庫打交道,甚至不需要一個JTA實現。
    i. Spring為數據存取提供了一個一致的框架,不論是使用的是JDBC還是O/R mapping產品(如Hibernate)。
    Spring確實使你能通過最簡單可行的解決辦法來解決你的問題。而這是有有很大價值的。
    缺點:
    使用人數不多、jsp中要寫很多代碼、控制器過于靈活,缺少一個公用控制器。

    【SSH筆試題】相關文章:

    1.360筆試題

    2.12580筆試題

    3.SSH面試問題

    4.筆試-CRI 2010筆試題

    5.筆試題

    6.五礦筆試題專業筆試題

    7.KPMG筆試題

    8.華為筆試題