軟件工程師面試題含答案_第1頁
軟件工程師面試題含答案_第2頁
軟件工程師面試題含答案_第3頁
軟件工程師面試題含答案_第4頁
已閱讀5頁,還剩14頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、交換機(jī)是一種存儲(chǔ) 轉(zhuǎn)發(fā)設(shè)備。以太網(wǎng) 交換機(jī)采用存儲(chǔ)轉(zhuǎn)發(fā)(Store-Forward )技術(shù)或直通( Cut-Through )技術(shù)來實(shí)現(xiàn)信息幀的轉(zhuǎn)發(fā),也稱為交換式集線器。交換機(jī)和 網(wǎng)橋 的不同在于:交換機(jī)端口數(shù)較多,數(shù)據(jù)傳輸效率 高,轉(zhuǎn)發(fā)延遲很小,吞吐量大,丟失率低,網(wǎng)絡(luò)整體性能增強(qiáng),遠(yuǎn)遠(yuǎn)超過了普通網(wǎng)橋連接網(wǎng)絡(luò)時(shí)的轉(zhuǎn)發(fā)性能。一般用于互連相同類型的局域網(wǎng) ,如以太網(wǎng)與以太網(wǎng)的互連。一、你對 MVC 的理解,用?答:1MVC 有什么優(yōu)缺點(diǎn)?結(jié)合 Struts,說明在一個(gè)Web 應(yīng)用如何去使MVC 設(shè)計(jì)模式(應(yīng)用觀察者模式的框架模式)M: Model(Business process layer)

2、,模型,操作數(shù)據(jù)的業(yè)務(wù)處理層,并獨(dú)立于表現(xiàn)層(Independentof presentation) 。V: View(Presentation layer) ,視圖,通過客戶端數(shù)據(jù)類型顯示數(shù)據(jù),并回顯模型層的執(zhí)行結(jié)果。C: Controller(Control layer) ,控制器,也就是視圖層和模型層橋梁,控制數(shù)據(jù)的流向,接受視圖層發(fā)出的事件,并重繪視圖MVC 框架的一種實(shí)現(xiàn)模型模型二 (Servlet-centric) :JSP+Servlet+JavaBean,以控制為核心, JSP 只負(fù)責(zé)顯示和收集數(shù)據(jù), Sevlet,連接視圖和模型,將視圖層數(shù)據(jù),發(fā)送給模型層, JavaBean

3、,分為業(yè)務(wù)類和數(shù)據(jù)實(shí)體,業(yè)務(wù)類處理業(yè)務(wù)數(shù)據(jù),數(shù)據(jù)實(shí)體,承載數(shù)據(jù),基本上大多數(shù)的項(xiàng)目都是使用這種MVC 的實(shí)現(xiàn)模式。StrutsMVC 框架 (Web application frameworks)Struts 是使用 MVC 的實(shí)現(xiàn)模式二來實(shí)現(xiàn)的,也就是以控制器為核心。Struts 提供了一些組件使用MVC 開發(fā)應(yīng)用程序:Model :Struts 沒有提供 model 類。這個(gè)商業(yè)邏輯必須由 Web 應(yīng)用程序的開發(fā)者以 JavaBean 或 EJB 的形式提供View :Struts 提供了 action form 創(chuàng)建 form bean, 用于在 controller 和 view 間傳

4、輸數(shù)據(jù)。 此外, Struts 提供了自定義 JSP 標(biāo)簽庫,輔助開發(fā)者用 JSP 創(chuàng)建交互式的以表單為基礎(chǔ)的應(yīng)用程序,應(yīng)用程序資源文件保留了一些文本常量和錯(cuò)誤消息,可轉(zhuǎn)變?yōu)槠渌Z言,可用于JSP 中。Controller : Struts 提供了一個(gè)核心的控制器ActionServlet ,通過這個(gè)核心的控制器來調(diào)用其他用戶注冊了的自定義的控制器Action ,自定義Action 需要符合Struts 的自定義Action 規(guī)范,還需要在struts-config.xml 的特定配置文件中進(jìn)行配置,接收J(rèn)SP 輸入字段形成Actionform ,然后調(diào)用一個(gè)Action 控制器。 Actio

5、n 控制器中提供了model 的邏輯接口。二、什么是WebService?答:WebService 是一個(gè) SOA (面向服務(wù)的編程)的架構(gòu),它是不依賴于語言,不依賴于平臺,可以實(shí)現(xiàn)不同的語言間的相互調(diào)用,通過 Internet 進(jìn)行基于Http 協(xié)議的網(wǎng)絡(luò)應(yīng)用間的交互。WebService 實(shí)現(xiàn)不同語言間的調(diào)用,是依托于一個(gè)標(biāo)準(zhǔn),webservice 是需要遵守WSDL第1頁共17頁(web 服務(wù)定義語言)/SOAP(簡單請求協(xié)議)規(guī)范的。WebService=WSDL+SOAP+UDDI( webservice 的注冊)Soap 是由 Soap 的 part 和 0 個(gè)或多個(gè)附件組成,一般

6、只有part,在 part 中有 Envelope 和Body 。Web Service 是通過提供標(biāo)準(zhǔn)的協(xié)議和接口,可以讓不同的程序集成的一種SOA 架構(gòu)。Web Service 的優(yōu)點(diǎn)(1) 可以讓異構(gòu)的程序相互訪問(跨平臺)(2) 松耦合(3) 基于標(biāo)準(zhǔn)協(xié)議(通用語言,允許其他程序訪問)Web Service 的基本原理(1) Service Provider 采用 WSDL 描述服務(wù)(2) Service Provider采用 UDDI 將服務(wù)的描述文件發(fā)布到UDDI 服務(wù)器( Register server)(3) Service Requestor 在 UDDI 服務(wù)器上查詢并獲取

7、 WSDL 文件(4) Service requestor 將請求綁定到SOAP,并訪問相應(yīng)的服務(wù)。三、什么是中間件?中間件就是程序中可織入的,可重用的,與業(yè)務(wù)邏輯無關(guān)的各種組件。中間件( middleware )是基礎(chǔ)軟件的一大類,屬于可復(fù)用軟件的范疇。顧名思義,中間件處于操作系統(tǒng)軟件與用戶的應(yīng)用軟件的中間。中間件在操作系統(tǒng)、網(wǎng)絡(luò)和數(shù)據(jù)庫之上,應(yīng)用軟件的下層, 總的作用是為處于自己上層的應(yīng)用軟件提供運(yùn)行與開發(fā)的環(huán)境,幫助用戶靈活、高效地開發(fā)和集成復(fù)雜的應(yīng)用軟件。在眾多關(guān)于中間件的定義中,比較普遍被接受的是IDC 表述的:中間件是一種獨(dú)立的系統(tǒng)軟件或服務(wù)程序,分布式應(yīng)用軟件借助這種軟件在不同的

8、技術(shù)之間共享資源,中間件位于客戶機(jī)服務(wù)器的操作系統(tǒng)之上,管理計(jì)算資源和網(wǎng)絡(luò)通信。分類:數(shù)據(jù)訪問中間件,遠(yuǎn)程調(diào)用中間件,消息中間件,交易中間件,對象中間件。舉例:1, RMI (Remote Method Invocations,遠(yuǎn)程調(diào)用)2, Load Balancing( 負(fù)載均衡,將訪問負(fù)荷分散到各個(gè)服務(wù)器中)3, Transparent Fail-over( 透明的故障切換)4, Clustering( 集群 ,用多個(gè)小的服務(wù)器代替大型機(jī))5, Back-end-Integration( 后端集成,用現(xiàn)有的、新開發(fā)的系統(tǒng)如何去集成遺留的系統(tǒng))6, Transaction 事務(wù)(全局 /局

9、部)全局事務(wù)(分布式事務(wù))局部事務(wù)(在同一數(shù)據(jù)庫聯(lián)接內(nèi)的事務(wù))7, Dynamic Redeployment( 動(dòng)態(tài)重新部署 ,在不停止原系統(tǒng)的情況下,部署新的系統(tǒng))8, System Management(系統(tǒng)管理 )9, Threading( 多線程處理 )10, Message-oriented Middleware 面向消息的中間件(異步的調(diào)用編程)11,Component Life Cycle( 組件的生命周期管理)12, Resource pooling (資源池)13, Security (安全)14, Caching(緩存)四、什么是典型的軟件三層結(jié)構(gòu)?軟件設(shè)計(jì)為什么要分層?軟

10、件分層有什么好處?答: (1) Presentation layer(表示層)第2頁共17頁(1)表示邏輯(生成界面代碼)(2)接收請求(3)處理業(yè)務(wù)層拋出的異常(4)負(fù)責(zé)規(guī)則驗(yàn)證(數(shù)據(jù)格式,數(shù)據(jù)非空等)(5)流程控制(2) Service layer (服務(wù)層 /業(yè)務(wù)層)(1)封裝業(yè)務(wù)邏輯處理,并且對外暴露接口(2)負(fù)責(zé)事務(wù),安全等服務(wù)(3) Persistence layer(持久層)(1)封裝數(shù)據(jù)訪問的邏輯,暴露接口(2)提供方便的數(shù)據(jù)訪問的方案(查詢語言,API ,映射機(jī)制等)Domain layer (域?qū)樱?1) 業(yè)務(wù)對象以及業(yè)務(wù)關(guān)系的表示(2) 處理簡單的業(yè)務(wù)邏輯(3) 域?qū)拥膶?/p>

11、象可以穿越表示層,業(yè)務(wù)層,持久層軟件分層結(jié)構(gòu)使得代碼維護(hù)非常方便,設(shè)計(jì)明確,各層獨(dú)立,專注自己擅長的領(lǐng)域。五、什么是OOP ?OOP 相對于面向過程編程有哪些優(yōu)點(diǎn)?OOP,Object-Oriented Programming ,面向?qū)ο缶幊滩煌诿嫦蜻^程編程:( 1) OOP 關(guān)注對象和角色,也就是事物的本質(zhì)1) OOP 把客觀世界中的對象抽象成對應(yīng)的類;2)通過類構(gòu)造實(shí)例;3)通過依賴、繼承、實(shí)現(xiàn)等形式建立對象間的通信關(guān)系( 2) OOP 易于擴(kuò)展,增加或改變業(yè)務(wù)的功能,無需大幅改動(dòng)改變源代碼( 3) OOP 易于建模, OOP 就是軟件架構(gòu)師在計(jì)算機(jī)高級語言中對客觀世界的抽象和再現(xiàn),人們

12、可以很好地理解和建立起計(jì)算機(jī)中的抽象模型六、談?wù)?Overload 和 Override 的區(qū)別。答:方法的重寫Overriding 和重載 Overloading 是 Java 多態(tài)性的不同表現(xiàn)。重寫Overriding是父類與子類之間多態(tài)性的一種表現(xiàn),重載Overloading 是一個(gè)類中多態(tài)性的一種表現(xiàn)。如果在子類中定義某方法與其父類有相同的名稱和參數(shù),我們說該方法被重寫(Overriding) 。子類的對象使用這個(gè)方法時(shí), 將調(diào)用子類中的定義, 對它而言, 父類中的定義如同被 “屏蔽”了。如果在一個(gè)類中定義了多個(gè)同名的方法, 它們或有不同的參數(shù)個(gè)數(shù)或有不同的參數(shù)類型,則稱為方法的重載

13、(Overloading) 。 Overloaded 的方法是可以改變返回值的類型。七、談?wù)?HashMap 和 Hashtable 的區(qū)別。答:HashMap 是輕量級的(線程不安全的,效率高的)集合,Hashtable 是重量級的(線程安全的,效率低的)集合。都屬于 Map 接口的類,實(shí)現(xiàn)了將惟一鍵映射到特定的值上。HashMap 類沒有分類或者排序。它允許一個(gè)null鍵和多個(gè)null 值。Hashtable 類似于 HashMap ,但是不允許 null 鍵和 null 值。它也比 HashMap 慢,因?yàn)樗峭降摹5?頁共17頁八、請問abstract class 和 interfa

14、ce 有什么區(qū)別?答:1) 接口沒有任何的實(shí)現(xiàn),而抽象類它可以有部分的實(shí)現(xiàn)也可以沒有;2) 如果需要復(fù)用或者共享部分代碼 ,應(yīng)該用抽象類而不是接口 ;3) 繼承無法解決類型的轉(zhuǎn)換問題,接口就是為了解決這一問題而產(chǎn)生的(Java 的單繼承是接口產(chǎn)生的根本原因) 接口是一種抽象的第三方規(guī)范,跟對象沒什么直接關(guān)系。九、請問軟件開發(fā)中的設(shè)計(jì)模式你會(huì)使用哪些?答:我熟悉的設(shè)計(jì)模式有單例模式, DAO 模式,模板方法, 工廠模式, 委托代理模式, MVC 模式等。Singleton 模式主要作用是保證在Java 應(yīng)用程序中,一個(gè)類Class 只有一個(gè)實(shí)例存在。Singleton 模式一般形式:定義一個(gè)類,

15、它的構(gòu)造函數(shù)為 private 的,它有一個(gè) static 的 private 的該類變量,在類初始化時(shí)實(shí)例話, 通過一個(gè) public 的 getInstance 方法獲取對它的引用 ,繼而調(diào)用其中的方法。十、類的核心特性有哪些?類具有封裝性、繼承性和多態(tài)性。封裝性:類的封裝性為類的成員提供公有、 缺省、保護(hù)和私有等多級訪問權(quán)限, 目的是隱藏類中的私有變量和類中方法的實(shí)現(xiàn)細(xì)節(jié)。繼承性:類的繼承性提供從已存在的類創(chuàng)建新類的機(jī)制,繼承(inheritance )使一個(gè)新類自動(dòng)擁有被繼承類(父類)的全部成員。多態(tài)性:類的多態(tài)性提供類中方法執(zhí)行的多樣性,多態(tài)性有兩種表現(xiàn)形式:重載和覆蓋。十一、請問類

16、與對象有什么區(qū)別?類類就是某一種事物的一般性的集合體,是相同或相似的各個(gè)事物共同特性的一種抽象。對象在面向?qū)ο蟾拍钪?,對象?Object )是類的實(shí)例( instance)。對象與類的關(guān)系就像變量與數(shù)據(jù)類型的關(guān)系一樣。十二、寫出生產(chǎn)者消費(fèi)者模型的實(shí)現(xiàn)十三、用軟件工程和Java 來敘述購物車(shopping cart)系統(tǒng)實(shí)現(xiàn)十四、文件系統(tǒng)的幾個(gè)類 :FileInputStream 、FileOutputStream 、FileReader、FileWriter 的區(qū)別十五、請寫出 Java API 中最常用的五個(gè)包,并且各舉兩個(gè)類加以說明。十六、 請問你在 “電信運(yùn)營支撐系統(tǒng)” 中遇到了哪

17、些問題?你是怎么解決的?做這個(gè)項(xiàng)目你最大的收獲是什么?十七、請說出幾個(gè)常用的異常類答: NullpointException (空指針異常)ClassNotFoundException (類找不到異常)ClassCastException (類型轉(zhuǎn)換異常)IllegalArgumentException (非法參數(shù)異常)ArithmeticException (算術(shù)異常)NumberFormatException (數(shù)據(jù)格式異常)第4頁共17頁IndexOutOfBoundsException (數(shù)組下標(biāo)越界異常)IllegalStateException (非法語句異常)十八、什么是進(jìn)程和線

18、程?兩者的區(qū)別是什么?十九、請簡要描述一下你做的ShoppingCart 項(xiàng)目。二十、請問網(wǎng)絡(luò)7 層協(xié)議, tcp/ip4 層協(xié)議是什么?二十一、 Java 面向?qū)ο蟮乃拇筇攸c(diǎn)二十二、 public,private,protected , default 訪問權(quán)限(可見性)答:public :全局可見protected:繼承體系結(jié)構(gòu)之間可見default (或不寫):同包可見private :本類可見。二十三、名詞解釋CRMCustomer Relationship Management,客戶關(guān)系管理ERPEnterprise Resource Planning,企業(yè)資源規(guī)劃 OSSOpera

19、tion Support System,運(yùn)營支撐系統(tǒng)BSSBusiness Support System, 數(shù)據(jù)定義語言 BOSSBusiness Operation Support System,數(shù)據(jù)定義語言O(shè)AOffice Automatization,辦公自動(dòng)化 HTTPOOPSOAGUIDDLData Definition Language,數(shù)據(jù)定義語言DMLData Manipulation Language,數(shù)據(jù)操作語言WYSIWYG所見即所得What You See is What You GetCMPCMTB2BC2CB2CIDEDOMClient/ServerCMM第5頁共1

20、7頁ORMMISMVCMVC是 Model View Controller的簡寫。 "Model"代表的是應(yīng)用的業(yè)務(wù)邏輯(通過JavaBean, EJB 組件實(shí)現(xiàn)), "View"是應(yīng)用的表示面(由JSP 頁面產(chǎn)生), "Controller"是提供應(yīng)用的處理過程控制(一般是一個(gè)Servlet),通過這種設(shè)計(jì)模型把應(yīng)用邏輯,處理過程和顯示邏輯分成不同的組件實(shí)現(xiàn)。這些組件可以進(jìn)行交互和重用。OLECORBACORBA標(biāo)準(zhǔn)是公共對象請求代理結(jié)構(gòu)(Common Object Request Broker Architecture) ,由對象

21、管理組織(Object Management Group,縮寫為OMG) 標(biāo)準(zhǔn)化。它的組成是接口定義語言(IDL),語言綁定 (binding: 也譯為聯(lián)編 )和允許應(yīng)用程序間互操作的協(xié)議。其目的為:用不同的程序設(shè)計(jì)語言書寫在不同的進(jìn)程中運(yùn)行為不同的操作系統(tǒng)開發(fā)。UMLUML ,標(biāo)準(zhǔn)建模語言, 包含用例圖 ,靜態(tài)圖 (包括類圖、 對象圖和包圖 ),行為圖 ,交互圖 (順序圖,合作圖 ),實(shí)現(xiàn)圖等。XMLCMMIJREJ2EEJ2EE 是 Sun 公司提出的多層 (multi-diered), 分布式 (distributed), 基于組件 (component-base) 的企業(yè)級應(yīng)用模型 (

22、enterpriese application model). 在這樣的一個(gè)應(yīng)用系統(tǒng)中, 可按照功能劃分為不同的組件, 這些組件又可在不同計(jì)算機(jī)上, 并且處于相應(yīng)的層次 (tier) 中。所屬層次包括客戶層 (clietn tier) 組件 ,web 層和組件 ,Business 層和組件 ,企業(yè)信息系統(tǒng) (EIS) 層。JDKAOPOOContainerW3CJMSDomainPOJOJVMJNDIJTASOAPSimple Object Access Protocol ,簡單對象訪問協(xié)議WSDLJDOJDO 是 Java 對象持久化的新的規(guī)范,為 Java Data Object 的簡稱

23、,也是一個(gè)用于存取某種數(shù)據(jù)倉庫中的對象的標(biāo)準(zhǔn)化API 。JDO 提供了透明的對象存儲(chǔ),因此對開發(fā)人員來說,存儲(chǔ)數(shù)據(jù)對象完全不需要額外的代碼(如 JDBC API 的使用)。這些繁瑣的例行工作已經(jīng)轉(zhuǎn)移到JDO第6頁共17頁產(chǎn)品提供商身上,使開發(fā)人員解脫出來,從而集中時(shí)間和精力在業(yè)務(wù)邏輯上。另外,JDO很靈活,因?yàn)樗梢栽谌魏螖?shù)據(jù)底層上運(yùn)行。JDBC 只是面向關(guān)系數(shù)據(jù)庫(RDBMS)JDO 更通用,提供到任何數(shù)據(jù)底層的存儲(chǔ)功能,比如關(guān)系數(shù)據(jù)庫、文件、XML以及對象數(shù)據(jù)庫(ODBMS )等等,使得應(yīng)用可移植性更強(qiáng)。TDDDAOIoCInversion of Control, 控制反轉(zhuǎn) RMIDNSI

24、nternet Domain Name System, 因特網(wǎng)域名系統(tǒng) URLURI二十四、數(shù)據(jù)庫連接池的工作機(jī)制二十五、互聯(lián)網(wǎng)提供哪些服務(wù)?二十六、請寫出 JSP的幾個(gè)隱含內(nèi)置對象答: JSP 中隱含內(nèi)置對象名稱類型注釋和范圍requestjavax.servlet.http.HttpServletRequestrequestresponsejavax.servlet.http.HttpServletResponseresponsepagejavax.lang.ObjectpageExceptionjava.lang.ThrowablepagepageContextjavax.servlet

25、.jsp.PageContextpagesessionjavax.servlet.http.HttpSessionsessionapplicationjavax.servlet.ServletContextServletContextoutjavax.servlet.jsp.JspWriterOutputStreamconfigjavax.servlet.ServletConfigServletConfigJSP共有以下9 種基本內(nèi)置組件(可與ASP 的 6 種內(nèi)部組件相對應(yīng)) :request用戶端請求,此請求會(huì)包含來自GET/POST 請求的參數(shù)response網(wǎng)頁傳回用戶端的回應(yīng)page

26、 JSP網(wǎng)頁本身exception針對錯(cuò)誤網(wǎng)頁,未捕捉的例外pageContext網(wǎng)頁的屬性是在這里管理session與請求有關(guān)的會(huì)話期application servlet 正在執(zhí)行的內(nèi)容out用來傳送回應(yīng)的輸出configServlet 的構(gòu)架部件二十七、請你談?wù)凷SH 整合答: SSH:Struts(表示層) +Spring (業(yè)務(wù)層) +Hibernate (持久層)Struts:Struts 是一個(gè)表示層框架,主要作用是界面展示,接收請求,分發(fā)請求。第7頁共17頁在 MVC 框架中, Struts 屬于 VC 層次,負(fù)責(zé)界面表現(xiàn), 負(fù)責(zé) MVC 關(guān)系的分發(fā)。( View :沿用 JS

27、P,HTTP ,F(xiàn)orm ,Tag,Resourse ;Controller :ActionServlet ,struts-config.xml ,Action )Hibernate:Hibernate 是一個(gè)持久層框架,它只負(fù)責(zé)與關(guān)系數(shù)據(jù)庫的操作。Spring :Spring 是一個(gè)業(yè)務(wù)層框架,是一個(gè)整合的框架,能夠很好地黏合表示層與持久層。二十八、應(yīng)用服務(wù)器與Web Server 的區(qū)別二十九、 Java Servlet API 中 forward()與 redirect() 的區(qū)別答:前者僅是容器中控制權(quán)的轉(zhuǎn)向,在客戶端瀏覽器地址欄中不會(huì)顯示出轉(zhuǎn)向后的地址;后者則是完全的跳轉(zhuǎn),瀏覽器將會(huì)

28、得到跳轉(zhuǎn)的地址,并重新發(fā)送請求鏈接。這樣,從瀏覽器的地址欄中可以看到跳轉(zhuǎn)后的鏈接地址。所以,前者更加高效,在前者可以滿足需要時(shí),盡量使用forward() 方法,并且,這樣也有助于隱藏實(shí)際的鏈接。在有些情況下,比如,需要跳轉(zhuǎn)到一個(gè)其它服務(wù)器上的資源,則必須使用sendRedirect()方法。三十、寫一個(gè)簡單的C/S 結(jié)構(gòu)程序, Java 的通信編程,編程題( 或問答 ) ,用 JAVA SOCKET編程,讀服務(wù)器幾個(gè)字符,再寫入本地顯示?答:Server端程序 :package test;import .*;import java.io.*;public class Serverprivat

29、e ServerSocket ss;private Socket socket;private BufferedReader in;private PrintWriter out;public Server()tryss=new ServerSocket(10000);while(true)socket = ss.accept();String RemoteIP = socket.getInetAddress().getHostAddress(); String RemotePort = ":"+socket.getLocalPort(); System.out.print

30、ln("A client come in!IP:"+RemoteIP+RemotePort); in = new BufferedReader(newInputStreamReader(socket.getInputStream();String line = in.readLine();System.out.println("Cleint send is :" + line);out = new PrintWriter(socket.getOutputStream(),true);第8頁共17頁out.println("Your Messag

31、e Received!");out.close();in.close();socket.close();catch (IOException e)out.println("wrong");public static void main(String args)new Server();Client端程序 :package test;import java.io.*;import .*;public class ClientSocket socket;BufferedReader in;PrintWriter out;public Client()trySystem

32、.out.println("Try to Connect to :10000");socket = new Socket("",10000);System.out.println("The Server Connected!");System.out.println("Please enter some Character:");BufferedReader line = new BufferedReader(newInputStreamReader(System.in);out

33、 = new PrintWriter(socket.getOutputStream(),true);out.println(line.readLine();in = new BufferedReader(new InputStreamReader(socket.getInputStream();System.out.println(in.readLine();out.close();in.close();socket.close();catch(IOException e)第9頁共17頁out.println("Wrong");public static void main

34、(String args)new Client();九、請問軟件開發(fā)中的設(shè)計(jì)模式你會(huì)使用哪些?答:我熟悉的設(shè)計(jì)模式有單例模式, DAO 模式,模板方法, 工廠模式, 委托代理模式, MVC 模式等。Singleton 模式主要作用是保證在Java 應(yīng)用程序中,一個(gè)類Class 只有一個(gè)實(shí)例存在。Singleton 模式一般形式:定義一個(gè)類,它的構(gòu)造函數(shù)為 private 的,它有一個(gè) static 的 private 的該類變量,在類初始化時(shí)實(shí)例話, 通過一個(gè) public 的 getInstance 方法獲取對它的引用 ,繼而調(diào)用其中的方法。十、類的核心特性有哪些?類具有封裝性、繼承性和多態(tài)

35、性。封裝性:類的封裝性為類的成員提供公有、 缺省、保護(hù)和私有等多級訪問權(quán)限, 目的是隱藏類中的私有變量和類中方法的實(shí)現(xiàn)細(xì)節(jié)。繼承性:類的繼承性提供從已存在的類創(chuàng)建新類的機(jī)制,繼承(inheritance )使一個(gè)新類自動(dòng)擁有被繼承類(父類)的全部成員。多態(tài)性:類的多態(tài)性提供類中方法執(zhí)行的多樣性,多態(tài)性有兩種表現(xiàn)形式:重載和覆蓋。十一、請問類與對象有什么區(qū)別?類類就是某一種事物的一般性的集合體,是相同或相似的各個(gè)事物共同特性的一種抽象。對象在面向?qū)ο蟾拍钪校瑢ο螅?Object )是類的實(shí)例( instance)。對象與類的關(guān)系就像變量與數(shù)據(jù)類型的關(guān)系一樣。十二、寫出生產(chǎn)者消費(fèi)者模型的實(shí)現(xiàn)十三、

36、用軟件工程和Java 來敘述購物車(shopping cart)系統(tǒng)實(shí)現(xiàn)第10頁共17頁十四、文件系統(tǒng)的幾個(gè)類:FileInputStream 、FileOutputStream 、FileReader、FileWriter 的區(qū)別十五、請寫出Java API 中最常用的五個(gè)包,并且各舉兩個(gè)類加以說明。十六、 請問你在 “電信運(yùn)營支撐系統(tǒng)”中遇到了哪些問題?你是怎么解決的?做這個(gè)項(xiàng)目你最大的收獲是什么?十七、請說出幾個(gè)常用的異常類答: NullpointException (空指針異常)ClassNotFoundException (類找不到異常)ClassCastException (類型轉(zhuǎn)

37、換異常)IllegalArgumentException (非法參數(shù)異常)ArithmeticException (算術(shù)異常)NumberFormatException (數(shù)據(jù)格式異常)IndexOutOfBoundsException (數(shù)組下標(biāo)越界異常)IllegalStateException (非法語句異常)十八、什么是進(jìn)程和線程?兩者的區(qū)別是什么?十九、請簡要描述一下你做的ShoppingCart 項(xiàng)目。二十、請問網(wǎng)絡(luò)7 層協(xié)議, tcp/ip4 層協(xié)議是什么?二十一、 Java 面向?qū)ο蟮乃拇筇攸c(diǎn)二十二、 public,private,protected , default 訪問權(quán)

38、限(可見性)答:public :全局可見protected:繼承體系結(jié)構(gòu)之間可見default (或不寫):同包可見private :本類可見。二十三、名詞解釋CRMCustomer Relationship Management,客戶關(guān)系管理ERPEnterprise Resource Planning,企業(yè)資源規(guī)劃 OSSOperation Support System,運(yùn)營支撐系統(tǒng)BSSBusiness Support System, 數(shù)據(jù)定義語言 BOSSBusiness Operation Support System,數(shù)據(jù)定義語言O(shè)AOffice Automatization,辦公

39、自動(dòng)化 第11頁共17頁HTTPOOPSOAGUIDDLData Definition Language,數(shù)據(jù)定義語言DMLData Manipulation Language,數(shù)據(jù)操作語言WYSIWYG所見即所得What You See is What You GetCMPCMTB2BC2CB2CIDEDOMClient/ServerCMMORMMISMVCMVC 是 Model View Controller 的簡寫。 "Model"代表的是應(yīng)用的業(yè)務(wù)邏輯(通過JavaBean,EJB 組件實(shí)現(xiàn)),"View"是應(yīng)用的表示面(由JSP 頁面產(chǎn)生),

40、"Controller"是提供應(yīng)用的處理過程控制(一般是一個(gè)Servlet),通過這種設(shè)計(jì)模型把應(yīng)用邏輯,處理過程和顯示邏輯分成不同的組件實(shí)現(xiàn)。這些組件可以進(jìn)行交互和重用。OLECORBACORBA標(biāo)準(zhǔn)是公共對象請求代理結(jié)構(gòu)(Common Object Request Broker Architecture) ,由對象管理組織(Object Management Group ,縮寫為OMG) 標(biāo)準(zhǔn)化。它的組成是接口定義語言(IDL),語言綁定 (binding: 也譯為聯(lián)編 )和允許應(yīng)用程序間互操作的協(xié)議。其目的為:用不同的程序設(shè)計(jì)語言書寫在不同的進(jìn)程中運(yùn)行為不同的操作系統(tǒng)

41、開發(fā)。UML第12頁共17頁UML ,標(biāo)準(zhǔn)建模語言, 包含用例圖 ,靜態(tài)圖 (包括類圖、 對象圖和包圖),行為圖 ,交互圖 (順序圖,合作圖 ),實(shí)現(xiàn)圖等。XMLCMMIJREJ2EEJ2EE 是 Sun 公司提出的多層(multi-diered), 分布式 (distributed), 基于組件 (component-base)的企業(yè)級應(yīng)用模型(enterpriese application model). 在這樣的一個(gè)應(yīng)用系統(tǒng)中,可按照功能劃分為不同的組件, 這些組件又可在不同計(jì)算機(jī)上, 并且處于相應(yīng)的層次 (tier) 中。所屬層次包括客戶層 (clietn tier) 組件 ,web

42、層和組件 ,Business 層和組件 ,企業(yè)信息系統(tǒng) (EIS) 層。JDKAOPOOContainerW3CJMSDomainPOJOJVMJNDIJTASOAPSimple Object Access Protocol ,簡單對象訪問協(xié)議WSDLJDOJDO 是 Java 對象持久化的新的規(guī)范,為 Java Data Object 的簡稱 ,也是一個(gè)用于存取某種數(shù)據(jù)倉庫中的對象的標(biāo)準(zhǔn)化API 。JDO 提供了透明的對象存儲(chǔ),因此對開發(fā)人員來說,存儲(chǔ)數(shù)據(jù)對象完全不需要額外的代碼(如 JDBC API 的使用)。這些繁瑣的例行工作已經(jīng)轉(zhuǎn)移到JDO產(chǎn)品提供商身上,使開發(fā)人員解脫出來,從而集中時(shí)

43、間和精力在業(yè)務(wù)邏輯上。另外,JDO很靈活,因?yàn)樗梢栽谌魏螖?shù)據(jù)底層上運(yùn)行。JDBC 只是面向關(guān)系數(shù)據(jù)庫(RDBMS)JDO 更通用,提供到任何數(shù)據(jù)底層的存儲(chǔ)功能,比如關(guān)系數(shù)據(jù)庫、文件、XML 以及對象數(shù)據(jù)庫(ODBMS )等等,使得應(yīng)用可移植性更強(qiáng)。TDDDAOIoCInversion of Control,控制反轉(zhuǎn) 第13頁共17頁RMIDNSInternet Domain Name System,因特網(wǎng)域名系統(tǒng)URLURI二十四、數(shù)據(jù)庫連接池的工作機(jī)制二十五、互聯(lián)網(wǎng)提供哪些服務(wù)?二十六、請寫出JSP的幾個(gè)隱含內(nèi)置對象答: JSP 中隱含內(nèi)置對象名稱類型注釋和范圍requestjavax.s

44、ervlet.http.HttpServletRequestrequestresponsejavax.servlet.http.HttpServletResponseresponsepagejavax.lang.ObjectpageExceptionjava.lang.ThrowablepagepageContextjavax.servlet.jsp.PageContextpagesessionjavax.servlet.http.HttpSessionsessionapplicationjavax.servlet.ServletContextServletContextoutjavax.se

45、rvlet.jsp.JspWriterOutputStreamconfigjavax.servlet.ServletConfigServletConfigJSP共有以下9 種基本內(nèi)置組件(可與ASP 的 6 種內(nèi)部組件相對應(yīng)):request用戶端請求,此請求會(huì)包含來自GET/POST 請求的參數(shù)response網(wǎng)頁傳回用戶端的回應(yīng)page JSP網(wǎng)頁本身exception針對錯(cuò)誤網(wǎng)頁,未捕捉的例外pageContext網(wǎng)頁的屬性是在這里管理session與請求有關(guān)的會(huì)話期application servlet 正在執(zhí)行的內(nèi)容out用來傳送回應(yīng)的輸出configServlet 的構(gòu)架部件二十七

46、、請你談?wù)凷SH 整合答: SSH:Struts(表示層) +Spring (業(yè)務(wù)層) +Hibernate (持久層)Struts:Struts 是一個(gè)表示層框架,主要作用是界面展示,接收請求,分發(fā)請求。第14頁共17頁在 MVC 框架中, Struts 屬于 VC 層次,負(fù)責(zé)界面表現(xiàn), 負(fù)責(zé) MVC 關(guān)系的分發(fā)。( View :沿用 JSP,HTTP ,F(xiàn)orm ,Tag,Resourse ;Controller :ActionServlet ,struts-config.xml ,Action )Hibernate:Hibernate 是一個(gè)持久層框架,它只負(fù)責(zé)與關(guān)系數(shù)據(jù)庫的操作。Spr

47、ing :Spring 是一個(gè)業(yè)務(wù)層框架,是一個(gè)整合的框架,能夠很好地黏合表示層與持久層。二十八、應(yīng)用服務(wù)器與Web Server 的區(qū)別二十九、 Java Servlet API 中 forward()與 redirect() 的區(qū)別答:前者僅是容器中控制權(quán)的轉(zhuǎn)向,在客戶端瀏覽器地址欄中不會(huì)顯示出轉(zhuǎn)向后的地址;后者則是完全的跳轉(zhuǎn),瀏覽器將會(huì)得到跳轉(zhuǎn)的地址,并重新發(fā)送請求鏈接。這樣,從瀏覽器的地址欄中可以看到跳轉(zhuǎn)后的鏈接地址。所以,前者更加高效,在前者可以滿足需要時(shí),盡量使用 forward() 方法,并且,這樣也有助于隱藏實(shí)際的鏈接。在有些情況下,比如,需要跳轉(zhuǎn)到一個(gè)其它服務(wù)器上的資源,則必須使用sendRedirect()方法。三十、寫一個(gè)簡單的C/S 結(jié)構(gòu)程序, Java 的通信編程,編程題( 或問答 ) ,用 JAVA SOCKET編程,讀服務(wù)器幾個(gè)字符,再寫入本地顯示?答:Server 端程序 : package test; import .

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論