国产精品亚洲综合久久系列,一本大道香蕉青青久久,播放高清的播放器,国产在线观看无码不卡

蜜蜂職場文庫 > 面試技巧 >

java軟件開發(fā)面試題

時間: 小龍 面試技巧

  Java軟件開發(fā)的面試問題你有了解了嗎?面試前的準(zhǔn)備很重要,以下是小編幫你們整理的java軟件開發(fā)面試題,一起來學(xué)習(xí)啦。

  java軟件開發(fā)面試題(一)

  1.描述J2EE框架的多層結(jié)構(gòu),并簡要說明各層的作用。

  1)Presenttation layer(表示層)

  A.表示邏輯(生成界面代碼)

  B.接受請求

  C.處理業(yè)務(wù)層拋出的異常

  D.負(fù)責(zé)規(guī)則驗(yàn)證(數(shù)據(jù)格式,數(shù)據(jù)非空等)

  E.流程控制

  2)Service layer(服務(wù)層、業(yè)務(wù)層)

  A.封裝業(yè)務(wù)邏輯處理,并且對外暴露接口

  B.負(fù)責(zé)事務(wù)、安全等服務(wù)

  3)Pesistence layer(持久層)

  A.封裝數(shù)據(jù)訪問的邏輯,暴露接口

  B.提供方便的數(shù)據(jù)訪問方案(查詢語言,API,映射機(jī)制等)

  4)Domain layer(域?qū)?

  A.業(yè)務(wù)對象以及業(yè)務(wù)關(guān)系的表示

  B.處理簡單的業(yè)務(wù)邏輯

  C.域?qū)拥膶ο罂梢源┰奖硎緦?,業(yè)務(wù)層,持久層

  軟件分層結(jié)構(gòu)使得代碼維護(hù)非常方便,設(shè)計(jì)明確,各層獨(dú)立,專注自己擅長的領(lǐng)域。

  2.請談?wù)剬OA的認(rèn)識。

  面向服務(wù)的體系結(jié)構(gòu)(Service-Oriented Architecture,SOA)是一個組建模型,他將相應(yīng)程序的不同功能單元(稱為服務(wù))通過這些服務(wù)之間定義良好的接口和契約聯(lián)系起來。接口是采用中立的方式進(jìn)行定義的,他應(yīng)該獨(dú)立與實(shí)現(xiàn)服務(wù)的硬件平臺、操作系統(tǒng)和編程語言。這使得構(gòu)建在各種這樣的系統(tǒng)中的服務(wù)可以以一種統(tǒng)一和通用的方式進(jìn)行交互。

  3.簡要描述如何結(jié)合Struts、hibernate、spring開發(fā)web應(yīng)用?

  Struts可以將jsp頁面的表單關(guān)聯(lián)起來,就是把JSP頁面的表單數(shù)據(jù)封裝成javaBean,這樣的話,在action中再也不需要使用創(chuàng)痛的request.getParameter(“name”);還有struts有一個控制器,在Struts變成中的控制器(XxxAction)都是繼承總的ActionServlet,他能集中處理請求,然后轉(zhuǎn)到相關(guān)的頁面。還有struts的表單驗(yàn)證組件,不能自己寫js驗(yàn)證了,只需要配置一下文件就可以了。另外struts的令牌機(jī)制可以防止表單的重復(fù)提交。

  Spring是一個輕量級容器,非侵入性,包含依賴注入,AOP等。他是為了解決企業(yè)開發(fā)應(yīng)用程序復(fù)雜性而構(gòu)建的??蚣艿闹饕獌?yōu)勢之一就是其分層架構(gòu),分層架構(gòu)允許選擇是用哪一個組件,同時為J2EE應(yīng)用程序開發(fā)提供集成的框架。

  Hibernate他可以讓我們一OO的方式操作數(shù)據(jù)庫,這讓我們看到了Hibernate的強(qiáng)大之處,體驗(yàn)到操作數(shù)據(jù)的方便。但是Hibernate最耀眼之處是Hibernate的緩存機(jī)制,而不是以O(shè)O的方式操作數(shù)據(jù)庫。Hibernate的緩存機(jī)制不外乎是一級緩存session,二級緩存sessionfactory,和第三方緩存如ehcache。也就是hibernate的最強(qiáng)大的地方就是它的緩存,理解了這個才能真正的理解hibernate,Hibernate的命名查詢/命名參數(shù)查詢,就是講hql語句放在一個單獨(dú)的xml文件之中,他仍然讓人們以面向?qū)ο蟮姆绞讲倏v數(shù)據(jù)庫,而不用在以O(shè)O的方式寫著代碼的同時,然后再轉(zhuǎn)變思維,用面向關(guān)系的方式去寫那些sql語句。但是Hibernate不僅做了這些,它的native sql查詢方式,完全滿足sql語句的偏愛者,他就像ibatis一樣,將sql語句放在配置文件中。

  4.說明反轉(zhuǎn)控制(IOC)和面向方面編程(AOP)在Spring中的應(yīng)用。

  Spring核心容器(Core)提供Spring框架的基本功能。核心容器的主要組建市BeanFactory,它是工廠模式的實(shí)現(xiàn)。beanFactory使用控制反轉(zhuǎn)(IOC)模式將應(yīng)用程序的配置和依賴性規(guī)范與實(shí)際的應(yīng)用代碼程序分開。Spring的聲明式事務(wù)基于AOP實(shí)現(xiàn),卻不需要程序開發(fā)者成為AOP專家,亦可輕易使用Spring的聲明式事務(wù)管理。

  java軟件開發(fā)面試題(二)

  1.列出自己常用的jdk包

  Java.lang:這個是系統(tǒng)的基礎(chǔ)類,比如String等都是這里面的,這個package是唯一一個可以不用import就可以使用的Package

  Java.io:這里面是所有輸入輸出有關(guān)的類,比如穩(wěn)健操作等。

  Java.net:這里面是與網(wǎng)絡(luò)有關(guān)的類,比如URL,URLConnection等。

  Java.util:這個是系統(tǒng)輔助類,特別是集合類Collection,List,Map等。

  Java.sql:這個是數(shù)據(jù)庫操作類,Connection,Statement,ResultSet等

  2.列出自己常用的jdk中的數(shù)據(jù)結(jié)構(gòu)

  線程表,鏈表,hash表都是常用的數(shù)據(jù)結(jié)構(gòu)

  3.List,Map,Set三個接口存儲元素時各有什么特點(diǎn)?

  1)List是有序的Collection,使用此接口能夠精確的控制每個元素插入的位置。用戶能夠使用索引(元素在List中的位置,類似于數(shù)組下表)來訪問List中的元素,這類似于Java的數(shù)組。

  2)Set是一種不包含重復(fù)元素的Collection,即任意的兩個元素e1和e2都有e1..equals(e2)=false,Set最多有一個null元素。

  3)Map接口:Map沒有繼承Collection接口,Map提供Key到Value的映射

  4.簡述基于Struts框架Web應(yīng)用的工作流程

  在Web應(yīng)用啟動時就會加載初始化ActionServlet,ActionServlet從struts-config.xml文件中讀取配置信息,把他們存放到各種配置文對象中,當(dāng)ActionServlet接收到一個客戶的請求時,將執(zhí)行如下流程:

  1)檢索和用戶請求匹配的ActionMapPing實(shí)例,如果不存在,就返回請求路徑無效信息。

  2)如果ActionForm實(shí)例不存在,就創(chuàng)建ActionForm對象,把客戶提交的表單數(shù)據(jù)保存到ActionForm對象中。

  3)根據(jù)配置信息決定是否需要表單驗(yàn)證,如果需要驗(yàn)證,就調(diào)用ActionForm的validate()方法;

  4)如果ActionForm的validate()方法返回null或者返回一個不好喊ActionMessager的ActionErrors對象,就表示表單驗(yàn)證成功;

  5)ActionServlet根據(jù)ActionMapping所包含的映射信息決定將請求轉(zhuǎn)發(fā)給哪個Action,如果相應(yīng)的Action實(shí)例不存在,就先創(chuàng)建這個實(shí)例,然后調(diào)用Action的execute()方法;

  6)Action的execute()方法返回一個ActionForward對象,ActionServlet在把客戶請求轉(zhuǎn)發(fā)給ActionForward對象指向JSP組件生成動態(tài)網(wǎng)頁,返回給客戶。

  java軟件開發(fā)面試題(三)

  1.在項(xiàng)目中用過Spring的哪些方面?及用過哪些Ajax框架?

  在項(xiàng)目中使用過SpringIOC,AOP,DAO,ORM,還有上下文環(huán)境

  在項(xiàng)目中使用過JQuery,EXtjs等Ajax框架。

  (Ajax框架:最長用的就是,prototype、jquery 和EXtjs,Jquery用起來比較方便,EXtjs可能對初學(xué)者比較困難。

  常用的基本就是Dojo,Extjs,GWT,Prototype,JQuery ,MooTools,Backbase

  這些了,他們使用的概率大約是

  Prototype jQuery Ext Script.aculo.us Mootools YUI JSON Dojo Backbase

  34.1% 29.3% 22.5% 22.3% 14.3% 13% 12.9% 11.8% 8.3%)

  2.Abstract class和interface有什么區(qū)別?

  聲明方法的存在而不去實(shí)現(xiàn)它的類被叫做抽象類(abstract class),它用于要創(chuàng)建一個體現(xiàn)某些基本行為的類,并為該類聲明方法,但不能在該類中實(shí)現(xiàn)該類的情況。不能創(chuàng)建abstract類的實(shí)例。然而可以創(chuàng)建一個變量,其類型是一個抽象類,并讓他指向具體子類的一個實(shí)例。不能有抽象構(gòu)造函數(shù)或抽象靜態(tài)方法。Abstract類的自雷為他們父類中的所有抽象方法提供實(shí)現(xiàn),否則他們也是抽象類。取而代之,在子類中實(shí)現(xiàn)該方法。知道其行為的其他類可以再類中實(shí)現(xiàn)這些方法。

  接口(interface)是抽象類的變體。新型多繼承性可通過實(shí)現(xiàn)這樣的接口而獲得。接口中的所有方法都是抽象的,所有成員變量都是public static final的。一個類可以實(shí)現(xiàn)多個接口,當(dāng)類實(shí)現(xiàn)接口時,必須實(shí)現(xiàn)接口的所有方法。抽象類在java語言中表示的是一種單繼承的關(guān)系,對于interface來說則不然,并不要求interface的實(shí)現(xiàn)者和interface定義在概念本質(zhì)上是一致的,僅僅是實(shí)現(xiàn)了interface定義的契約而已。

  抽象類中可以定義自己的成員變量,也可以包含非抽象類的方法,而在接口中只能由靜態(tài)的敞亮,所有的方法必須是抽象的;實(shí)現(xiàn)抽象類是可以實(shí)現(xiàn)其中的部分方法,而是要實(shí)現(xiàn)一個接口的話就必須實(shí)現(xiàn)這個接口中的所有抽象方法。

  3.MVC模式中M、V、C每個代表的含義,并簡述在Struts中的MVC的表現(xiàn)的方式。

  MVC是MOdel-View-Controller的縮寫,Model代表的是應(yīng)用的業(yè)務(wù)邏輯(通過JaveBean,EJB組件實(shí)現(xiàn)),View是應(yīng)用的表示層(由JSP頁面產(chǎn)生),Controller是通過應(yīng)用的處理過程控制,(一般是一個servert)通過這種設(shè)計(jì)模型把應(yīng)用邏輯,處理過程和現(xiàn)實(shí)邏輯分成不同的組件實(shí)現(xiàn),這些組件可以進(jìn)行交互和重用。

  在Struts框架中Controller功能由ActionServlert和ActionMapping對象構(gòu)成,核心是一個Servlet類型的對象ActionServlet,他用來接受客戶端的請求。ActionServlet包括一組基于配置的ActionMapping對象,每個ActionMapping對象實(shí)現(xiàn)了一個請求到具體的Model部分的Action處理器對象都是開發(fā)者從Struts的Action類派生的子類。Action處理器對象封裝了具體的處理邏輯,調(diào)用業(yè)務(wù)邏輯模塊,并且把響應(yīng)提交到合適的View組件以產(chǎn)生響應(yīng)。Struts提供的ActionForm組件對象可以通過定義屬性描述客戶端表單數(shù)據(jù),開發(fā)者可以從他派生子類對象,并利用它和Struts提供的自定義標(biāo)記庫相結(jié)合,可以實(shí)現(xiàn)對客戶端的表單數(shù)據(jù)的良好封裝和支持,Action處理器對象可以直接對他進(jìn)行讀寫,而不再需要和request、response對象進(jìn)行數(shù)據(jù)交互。通過ActionForm組件對象實(shí)現(xiàn)了對View和model之間的交互支持(View部分是通過JSP技術(shù)實(shí)現(xiàn)的)。Struts提供了自定義的標(biāo)記庫,通過這些自定義標(biāo)記庫可以非常容易地和系統(tǒng)Model部分交互,通過使用這些自定義標(biāo)記庫創(chuàng)建的JSP表單,可以實(shí)現(xiàn)對Model部分中的ActionForm的映射,完成對用戶數(shù)據(jù)的封裝。

  
看了“java軟件開發(fā)面試題”

50425