午夜精品福利视频,亚洲激情专区,免费看a网站,aa毛片,亚洲色图激情小说,亚洲一级毛片,免费一级毛片一级毛片aa

部分面試題答案

時(shí)間:2021-11-08 19:33:31 面試技巧 我要投稿

部分面試題答案

一、你對(duì)MVC的理解,MVC有什么優(yōu)缺點(diǎn)?結(jié)合Struts,說(shuō)明在一個(gè)Web應(yīng)用如何去使用?

部分面試題答案

答:

MVC設(shè)計(jì)模式(應(yīng)用觀察者模式的框架模式)

M: Model(Business process layer),模型,操作數(shù)據(jù)的業(yè)務(wù)處理層,并獨(dú)立于表現(xiàn)層(Independent of presentation)。

V: View(Presentation layer),視圖,通過(guò)客戶端數(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,分為業(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)模式二來(lái)實(shí)現(xiàn)的,也就是以控制器為核心。

Struts提供了一些組件使用MVC開(kāi)發(fā)應(yīng)用程序:

Model:Struts沒(méi)有提供model類。這個(gè)商業(yè)邏輯必須由Web應(yīng)用程序的開(kāi)發(fā)者以JavaBean或EJB的形式提供

View:Struts提供了action form創(chuàng)建form bean, 用于在controller和view間傳輸數(shù)據(jù)。此外,Struts提供了自定義JSP標(biāo)簽庫(kù),輔助開(kāi)發(fā)者用JSP創(chuàng)建交互式的以表單為基礎(chǔ)的應(yīng)用程序,應(yīng)用程序資源文件保留了一些文本常量和錯(cuò)誤消息,可轉(zhuǎn)變?yōu)槠渌Z(yǔ)言,可用于JSP中。

Controller:Struts提供了一個(gè)核心的控制器ActionServlet,通過(guò)這個(gè)核心的控制器來(lái)調(diào)用其他用戶注冊(cè)了的自定義的控制器Action,自定義Action需要符合Struts的自定義Action規(guī)范,還需要在struts-config.xml的特定配置文件中進(jìn)行配置,接收J(rèn)SP輸入字段形成Action form,然后調(diào)用一個(gè)Action控制器。Action控制器中提供了model的邏輯接口。

二、什么是WebService?

答:

WebService是一個(gè)SOA(面向服務(wù)的編程)的架構(gòu),它是不依賴于語(yǔ)言,不依賴于平臺(tái),可以實(shí)現(xiàn)不同的語(yǔ)言間的相互調(diào)用,通過(guò)Internet進(jìn)行基于Http協(xié)議的網(wǎng)絡(luò)應(yīng)用間的交互。

WebService實(shí)現(xiàn)不同語(yǔ)言間的調(diào)用,是依托于一個(gè)標(biāo)準(zhǔn),webservice是需要遵守WSDL(web服務(wù)定義語(yǔ)言)/SOAP(簡(jiǎn)單請(qǐng)求協(xié)議)規(guī)范的。

WebService=WSDL+SOAP+UDDI(webservice的注冊(cè))

Soap是由Soap的part和0個(gè)或多個(gè)附件組成,一般只有part,在part中有Envelope和Body。

Web Service是通過(guò)提供標(biāo)準(zhǔn)的協(xié)議和接口,可以讓不同的程序集成的一種SOA架構(gòu)。

Web Service的優(yōu)點(diǎn)

(1) 可以讓異構(gòu)的程序相互訪問(wèn)(跨平臺(tái))

(2) 松耦合

(3) 基于標(biāo)準(zhǔn)協(xié)議(通用語(yǔ)言,允許其他程序訪問(wèn))

Web Service的基本原理

(1) Service Provider采用WSDL描述服務(wù)

(2) Service Provider 采用UDDI將服務(wù)的描述文件發(fā)布到UDDI服務(wù)器(Register server)

(3) Service Requestor在UDDI服務(wù)器上查詢并 獲取WSDL文件

(4) Service requestor將請(qǐng)求綁定到SOAP,并訪問(wèn)相應(yīng)的服務(wù)。

三、什么是中間件?

中間件就是程序中可織入的,可重用的,與業(yè)務(wù)邏輯無(wú)關(guān)的各種組件。

中間件(middleware)是基礎(chǔ)軟件的一大類,屬于可復(fù)用軟件的范疇。顧名思義,中間件處于操作系統(tǒng)軟件與用戶的應(yīng)用軟件的中間。中間件在操作系統(tǒng)、網(wǎng)絡(luò)和數(shù)據(jù)庫(kù)之上,應(yīng)用軟件的下層,總的作用是為處于自己上層的應(yīng)用軟件提供運(yùn)行與開(kāi)發(fā)的環(huán)境,幫助用戶靈活、高效地開(kāi)發(fā)和集成復(fù)雜的應(yīng)用軟件。

在眾多關(guān)于中間件的定義中,比較普遍被接受的是IDC表述的:中間件是一種獨(dú)立的系統(tǒng)軟件或服務(wù)程序,分布式應(yīng)用軟件借助這種軟件在不同的技術(shù)之間共享資源,中間件位于客戶機(jī)服務(wù)器的操作系統(tǒng)之上,管理計(jì)算資源和網(wǎng)絡(luò)通信。

分類:數(shù)據(jù)訪問(wèn)中間件,遠(yuǎn)程調(diào)用中間件,消息中間件,交易中間件,對(duì)象中間件。 舉例:

1,RMI(Remote Method Invocations, 遠(yuǎn)程調(diào)用)

2,Load Balancing(負(fù)載均衡,將訪問(wèn)負(fù)荷分散到各個(gè)服務(wù)器中)

3,Transparent Fail-over(透明的故障切換)

4,Clustering(集群,用多個(gè)小的服務(wù)器代替大型機(jī))

5,Back-end-Integration(后端集成,用現(xiàn)有的、新開(kāi)發(fā)的系統(tǒng)如何去集成遺留的系統(tǒng)) 6,Transaction事務(wù)(全局/局部)全局事務(wù)(分布式事務(wù))局部事務(wù)(在同一數(shù)據(jù)庫(kù)聯(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ì)為什么要分層?軟件分層有什么好處? 答:(1) Presentation layer(表示層)

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

(2) 接收請(qǐng)求

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

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

(5) 流程控制

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

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

(2) 負(fù)責(zé)事務(wù),安全等服務(wù)

(3) Persistence layer(持久層)

(1) 封裝數(shù)據(jù)訪問(wèn)的'邏輯,暴露接口

(2) 提供方便的數(shù)據(jù)訪問(wèn)的方案(查詢語(yǔ)言,API,映射機(jī)制等)

Domain layer(域?qū)樱?/p>

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

(2) 處理簡(jiǎn)單的業(yè)務(wù)邏輯

(3) 域?qū)拥膶?duì)象可以穿越表示層,業(yè)務(wù)層,持久層

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

五、什么是OOP?OOP相對(duì)于面向過(guò)程編程有哪些優(yōu)點(diǎn)?

OOP,Object-Oriented Programming,面向?qū)ο缶幊滩煌诿嫦蜻^(guò)程編程:

(1)OOP關(guān)注對(duì)象和角色,也就是事物的本質(zhì)

1)OOP把客觀世界中的對(duì)象抽象成對(duì)應(yīng)的類;

2)通過(guò)類構(gòu)造實(shí)例;

3)通過(guò)依賴、繼承、實(shí)現(xiàn)等形式建立對(duì)象間的通信關(guān)系

(2)OOP易于擴(kuò)展,增加或改變業(yè)務(wù)的功能,無(wú)需大幅改動(dòng)改變?cè)创a

(3)OOP易于建模,OOP就是軟件架構(gòu)師在計(jì)算機(jī)高級(jí)語(yǔ)言中對(duì)客觀世界的抽象和再現(xiàn),人們可以很好地理解和建立起計(jì)算機(jī)中的抽象模型

六、談?wù)凮verload和Override的區(qū)別。

答:

方法的重寫(xiě)Overriding和重載Overloading是Java多態(tài)性的不同表現(xiàn)。重寫(xiě)Overriding是父類與子類之間多態(tài)性的一種表現(xiàn),重載Overloading是一個(gè)類中多態(tài)性的一種表現(xiàn)。如果在子類中定義某方法與其父類有相同的名稱和參數(shù),我們說(shuō)該方法被重寫(xiě)(Overriding)。子類的對(duì)象使用這個(gè)方法時(shí),將調(diào)用子類中的定義,對(duì)它而言,父類中的定義如同被“屏蔽”了。如果在一個(gè)類中定義了多個(gè)同名的方法,它們或有不同的參數(shù)個(gè)數(shù)或有不同的參數(shù)類型,則稱為方法的重載(Overloading)。Overloaded的方法是可以改變返回值的類型。

七、談?wù)凥ashMap和Hashtable的區(qū)別。

答: HashMap是輕量級(jí)的(線程不安全的,效率高的)集合,Hashtable是重量級(jí)的(線程安全的,效率低的)集合。

都屬于Map接口的類,實(shí)現(xiàn)了將惟一鍵映射到特定的值上。

HashMap 類沒(méi)有分類或者排序。它允許一個(gè) null 鍵和多個(gè) null 值。

Hashtable 類似于 HashMap,但是不允許 null 鍵和 null 值。它也比 HashMap 慢,因?yàn)樗峭降摹?/p>

八、請(qǐng)問(wèn)abstract class和interface有什么區(qū)別?

答:

1) 接口沒(méi)有任何的實(shí)現(xiàn),而抽象類它可以有部分的實(shí)現(xiàn)也可以沒(méi)有;

2) 如果需要復(fù)用或者共享部分代碼,應(yīng)該用抽象類而不是接口;

3) 繼承無(wú)法解決類型的轉(zhuǎn)換問(wèn)題,接口就是為了解決這一問(wèn)題而產(chǎn)生的(Java的單繼

承是接口產(chǎn)生的根本原因) 接口是一種抽象的第三方規(guī)范,跟對(duì)象沒(méi)什么直接關(guān)系。

九、請(qǐng)問(wèn)軟件開(kāi)發(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í)例話,通過(guò)一個(gè)public的getInstance方法獲取對(duì)它的引用,繼而調(diào)用其中的方法。

十、類的核心特性有哪些?

類具有封裝性、繼承性和多態(tài)性。

封裝性:

類的封裝性為類的成員提供公有、缺省、保護(hù)和私有等多級(jí)訪問(wèn)權(quán)限,目的是隱藏類中的私有變量和類中方法的實(shí)現(xiàn)細(xì)節(jié)。

繼承性:

類的繼承性提供從已存在的類創(chuàng)建新類的機(jī)制,繼承(inheritance)使一個(gè)新類自動(dòng)擁有被繼承類(父類)的全部成員。

多態(tài)性:

類的多態(tài)性提供類中方法執(zhí)行的多樣性,多態(tài)性有兩種表現(xiàn)形式:重載和覆蓋。

十一、請(qǐng)問(wèn)類與對(duì)象有什么區(qū)別?

類就是某一種事物的一般性的集合體,是相同或相似的各個(gè)事物共同特性的一種抽象。 對(duì)象

在面向?qū)ο蟾拍钪,?duì)象(Object)是類的實(shí)例(instance)。對(duì)象與類的關(guān)系就像變量與數(shù)據(jù)類型的關(guān)系一樣。

十二、寫(xiě)出生產(chǎn)者消費(fèi)者模型的實(shí)現(xiàn)

十三、用軟件工程和Java來(lái)敘述購(gòu)物車(shopping cart)系統(tǒng)實(shí)現(xiàn)

十四、文件系統(tǒng)的幾個(gè)類:FileInputStream、FileOutputStream、FileReader、FileWriter的區(qū)別 十五、請(qǐng)寫(xiě)出Java API中最常用的五個(gè)包,并且各舉兩個(gè)類加以說(shuō)明。

十六、請(qǐng)問(wèn)你在做過(guò)的項(xiàng)目中遇到了哪些問(wèn)題?你是怎么解決的?做這個(gè)項(xiàng)目你最大的收獲是什么?

十七、請(qǐng)說(shuō)出幾個(gè)常用的異常類

答:NullpointException(空指針異常)

ClassNotFoundException(類找不到異常)

ClassCastException(類型轉(zhuǎn)換異常)

IllegalArgumentException(非法參數(shù)異常)

ArithmeticException(算術(shù)異常)

NumberFormatException(數(shù)據(jù)格式異常)

IndexOutOfBoundsException(數(shù)組下標(biāo)越界異常)

IllegalStateException(非法語(yǔ)句異常)

十八、什么是進(jìn)程和線程??jī)烧叩膮^(qū)別是什么?

十九、請(qǐng)簡(jiǎn)要描述一下你做的ShoppingCart項(xiàng)目。

二十、請(qǐng)問(wèn)網(wǎng)絡(luò)7層協(xié)議,tcp/ip4 層協(xié)議是什么?

二十一、Java面向?qū)ο蟮乃拇筇攸c(diǎn)

二十二、public,private,protected,default訪問(wèn)權(quán)限(可見(jiàn)性)

答:

public:全局可見(jiàn)

protected:繼承體系結(jié)構(gòu)之間可見(jiàn)

default(或不寫(xiě)):同包可見(jiàn)

private:本類可見(jiàn)。

二十三、名詞解釋

CRM

[Customer Relationship Management, 客戶關(guān)系管理]

ERP

[Enterprise Resource Planning, 企業(yè)資源規(guī)劃]

OSS

[Operation Support System, 運(yùn)營(yíng)支撐系統(tǒng)]

BSS

[Business Support System, 數(shù)據(jù)定義語(yǔ)言]

BOSS

[Business Operation Support System, 數(shù)據(jù)定義語(yǔ)言]

OA

[Office Automatization, 辦公自動(dòng)化]

HTTP

OOP

SOA

GUI

DDL

[Data Definition Language, 數(shù)據(jù)定義語(yǔ)言]

DML

[Data Manipulation Language, 數(shù)據(jù)操作語(yǔ)言]

WYSIWYG

所見(jiàn)即所得 [What You See is What You Get]

CMP

CMT

B2B

C2C

B2C

IDE

DOM

Client/Server

CMM

ORM

MIS

MVC

MVC是Model-View-Controller的簡(jiǎn)寫(xiě)。"Model" 代表的是應(yīng)用的業(yè)務(wù)邏輯(通過(guò)JavaBean,EJB組件實(shí)現(xiàn)), "View" 是應(yīng)用的表示面(由JSP頁(yè)面產(chǎn)生),"Controller" 是

提供應(yīng)用的處理過(guò)程控制(一般是一個(gè)Servlet),通過(guò)這種設(shè)計(jì)模型把應(yīng)用邏輯,處理過(guò)程和顯示邏輯分成不同的組件實(shí)現(xiàn)。這些組件可以進(jìn)行交互和重用。

OLE

CORBA

CORBA 標(biāo)準(zhǔn)是公共對(duì)象請(qǐng)求代理結(jié)構(gòu)(Common Object Request Broker Architecture),由對(duì)象管理組織 (Object Management Group,縮寫(xiě)為 OMG)標(biāo)準(zhǔn)化。它的組成是接口定義語(yǔ)言(IDL), 語(yǔ)言綁定(binding:也譯為聯(lián)編)和允許應(yīng)用程序間互操作的協(xié)議。 其目的為:

用不同的程序設(shè)計(jì)語(yǔ)言書(shū)寫(xiě)

在不同的進(jìn)程中運(yùn)行

為不同的操作系統(tǒng)開(kāi)發(fā)。

UML

UML,標(biāo)準(zhǔn)建模語(yǔ)言,包含用例圖,靜態(tài)圖(包括類圖、對(duì)象圖和包圖),行為圖,交互圖(順序圖,合作圖),實(shí)現(xiàn)圖等。

XML

CMMI

JRE

J2EE

J2EE是Sun公司提出的多層(multi-diered),分布式(distributed),基于組件(component-base)的企業(yè)級(jí)應(yīng)用模型(enterpriese application model).在這樣的一個(gè)應(yīng)用系統(tǒng)中,可按照功能劃分為不同的組件,這些組件又可在不同計(jì)算機(jī)上,并且處于相應(yīng)的層次(tier)中。所屬層次包括客戶層(clietn tier)組件,web層和組件,Business層和組件,企業(yè)信息系統(tǒng)(EIS)層。

JDK

AOP

OO

Container

W3C

JMS

Domain

POJO

JVM

JNDI

JTA

SOAP

[Simple Object Access Protocol,簡(jiǎn)單對(duì)象訪問(wèn)協(xié)議]

WSDL

JDO

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

TDD

DAO

IoC

[Inversion of Control, 控制反轉(zhuǎn)]

RMI

DNS

[Internet Domain Name System, 因特網(wǎng)域名系統(tǒng)]

URL

URI

二十四、數(shù)據(jù)庫(kù)連接池的工作機(jī)制

二十五、互聯(lián)網(wǎng)提供哪些服務(wù)?

二十六、請(qǐng)寫(xiě)出JSP的幾個(gè)隱含內(nèi)置對(duì)象

答:JSP中隱含內(nèi)置對(duì)象

名稱 類型 注釋和范圍

request javax.servlet.http.HttpServletRequest request

response javax.servlet.http.HttpServletResponse response

page javax.lang.Object page

Exception java.lang.Throwable page

pageContext javax.servlet.jsp.PageContext page

session javax.servlet.http.HttpSession session

application javax.servlet.ServletContext ServletContext

out javax.servlet.jsp.JspWriter OutputStream

config javax.servlet.ServletConfig ServletConfig

JSP共有以下9種基本內(nèi)置組件(可與ASP的6種內(nèi)部組件相對(duì)應(yīng)):

request 用戶端請(qǐng)求,此請(qǐng)求會(huì)包含來(lái)自GET/POST請(qǐng)求的參數(shù)

response 網(wǎng)頁(yè)傳回用戶端的回應(yīng)

page JSP 網(wǎng)頁(yè)本身

exception 針對(duì)錯(cuò)誤網(wǎng)頁(yè),未捕捉的例外

pageContext 網(wǎng)頁(yè)的屬性是在這里管理

session 與請(qǐng)求有關(guān)的會(huì)話期

application servlet 正在執(zhí)行的內(nèi)容

out 用來(lái)傳送回應(yīng)的輸出

config Servlet的構(gòu)架部件

二十七、請(qǐng)你談?wù)凷SH整合

答:SSH:

Struts(表示層)+Spring(業(yè)務(wù)層)+Hibernate(持久層)

Struts:

Struts是一個(gè)表示層框架,主要作用是界面展示,接收請(qǐng)求,分發(fā)請(qǐng)求。

在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ù)庫(kù)的操作。

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ì)得到跳轉(zhuǎn)的地址,并重新發(fā)送請(qǐng)求鏈接。這樣,從瀏覽器的地址欄中可以看到跳轉(zhuǎn)后的鏈接地址。所以,前者更加高效,在前者可以滿足需要時(shí),盡量使用forward()方法,并且,這樣也有助于隱藏實(shí)際的鏈接。在有些情況下,比如,需要跳轉(zhuǎn)到一個(gè)其它服務(wù)器上的資源,則必須使用sendRedirect()方法。

三十、寫(xiě)一個(gè)簡(jiǎn)單的C/S結(jié)構(gòu)程序,Java 的通信編程,編程題(或問(wèn)答),用JAVA SOCKET編程,讀服務(wù)器幾個(gè)字符,再寫(xiě)入本地顯示?

答:Server端程序:

package test;

import java.net.*;

import java.io.*;

public class Server

{

private ServerSocket ss;

private Socket socket;

private BufferedReader in;

private PrintWriter out;

public Server()

{

try

{

ss=new ServerSocket(10000);

while(true)

{

socket = ss.accept();

String RemoteIP = socket.getInetAddress().getHostAddress();

String RemotePort = ":"+socket.getLocalPort();

System.out.println("A client come in!IP:"+RemoteIP+RemotePort);

in = new BufferedReader(new

InputStreamReader(socket.getInputStream()));

String line = in.readLine();

System.out.println("Cleint send is :" + line);

out = new PrintWriter(socket.getOutputStream(),true);

out.println("Your Message 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 java.net.*;

public class Client

{

Socket socket;

BufferedReader in;

PrintWriter out;

public Client()

{

try

{

System.out.println("Try to Connect to 127.0.0.1:10000");

socket = new Socket("127.0.0.1",10000);

System.out.println("The Server Connected!");

System.out.println("Please enter some Character:");

BufferedReader line = new BufferedReader(new

InputStreamReader(System.in));

out = 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)

{

out.println("Wrong");

}

}

public static void main(String[] args)

{

new Client();

}

};

九、請(qǐng)問(wèn)軟件開(kāi)發(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í)例話,通過(guò)一個(gè)public的getInstance方法獲取對(duì)它的引用,繼而調(diào)用其中的方法。

十、類的核心特性有哪些?

類具有封裝性、繼承性和多態(tài)性。

封裝性:

類的封裝性為類的成員提供公有、缺省、保護(hù)和私有等多級(jí)訪問(wèn)權(quán)限,目的是隱藏類中的私有變量和類中方法的實(shí)現(xiàn)細(xì)節(jié)。

繼承性:

類的繼承性提供從已存在的類創(chuàng)建新類的機(jī)制,

繼承(inheritance)使一個(gè)新類自動(dòng)擁有被繼承類(父類)的全部成員。

多態(tài)性:

類的多態(tài)性提供類中方法執(zhí)行的多樣性,多態(tài)性

有兩種表現(xiàn)形式:重載和覆蓋。

十一、請(qǐng)問(wèn)類與對(duì)象有什么區(qū)別?

類就是某一種事物的一般性的集合體,是相同或

相似的各個(gè)事物共同特性的一種抽象。

對(duì)象

在面向?qū)ο蟾拍钪校瑢?duì)象(Object)是類的實(shí)例

(instance)。對(duì)象與類的關(guān)系就像變量與數(shù)據(jù)類型的關(guān)系一樣。

十二、寫(xiě)出生產(chǎn)者消費(fèi)者模型的實(shí)現(xiàn)

十三、用軟件工程和Java來(lái)敘述購(gòu)物車(shopping cart)系統(tǒng)實(shí)現(xiàn)

十四、文件系統(tǒng)的幾個(gè)類:FileInputStream、

FileOutputStream、FileReader、FileWriter的區(qū)別

十五、請(qǐng)寫(xiě)出Java API中最常用的五個(gè)包,并且各舉兩個(gè)類加以說(shuō)明。

十六、請(qǐng)問(wèn)你在“電信運(yùn)營(yíng)支撐系統(tǒng)”中遇到了哪些問(wèn)題?你是怎么解決的?做這個(gè)項(xiàng)目你最大的收獲是什么?

十七、請(qǐng)說(shuō)出幾個(gè)常用的異常類

答:NullpointException(空指針異常)

ClassNotFoundException(類找不到異常) ClassCastException(類型轉(zhuǎn)換異常)

IllegalArgumentException(非法參數(shù)異常) ArithmeticException(算術(shù)異常)

NumberFormatException(數(shù)據(jù)格式異常) IndexOutOfBoundsException(數(shù)組下標(biāo)越界異常)

IllegalStateException(非法語(yǔ)句異常)

十八、什么是進(jìn)程和線程??jī)烧叩膮^(qū)別是什么?

十九、請(qǐng)簡(jiǎn)要描述一下你做的ShoppingCart項(xiàng)目。 二十、請(qǐng)問(wèn)網(wǎng)絡(luò)7層協(xié)議,tcp/ip4 層協(xié)議是什么? 二十一、Java面向?qū)ο蟮乃拇筇攸c(diǎn)

二十二、public,private,protected,default訪問(wèn)權(quán)限(可見(jiàn)性)

答:

public:全局可見(jiàn)

protected:繼承體系結(jié)構(gòu)之間可見(jiàn)

default(或不寫(xiě)):同包可見(jiàn)

private:本類可見(jiàn)。

二十三、名詞解釋

CRM

[Customer Relationship Management, 客戶關(guān)系管

理]

ERP

[Enterprise Resource Planning, 企業(yè)資源規(guī)劃]

OSS

[Operation Support System, 運(yùn)營(yíng)支撐系統(tǒng)]

BSS

[Business Support System, 數(shù)據(jù)定義語(yǔ)言]

BOSS

[Business Operation Support System, 數(shù)據(jù)定義語(yǔ)言] OA

[Office Automatization, 辦公自動(dòng)化]

HTTP

OOP

SOA

GUI

DDL

[Data Definition Language, 數(shù)據(jù)定義語(yǔ)言]

DML

[Data Manipulation Language, 數(shù)據(jù)操作語(yǔ)言]

WYSIWYG

所見(jiàn)即所得 [What You See is What You Get]

CMP

CMT

B2B

C2C

B2C

IDE

DOM

Client/Server

CMM

ORM

MIS

MVC

MVC是Model-View-Controller的簡(jiǎn)寫(xiě)。"Model" 代表的是應(yīng)用的業(yè)務(wù)邏輯(通過(guò)JavaBean,EJB組件實(shí)現(xiàn)), "View" 是應(yīng)用的表示面(由JSP頁(yè)面產(chǎn)生),"Controller" 是提供應(yīng)用的處理過(guò)程控制(一般是一個(gè)Servlet),通過(guò)這種設(shè)計(jì)模型把應(yīng)用邏輯,處理過(guò)程

和顯示邏輯分成不同的組件實(shí)現(xiàn)。這些組件可以進(jìn)行交互和重用。

OLE

CORBA

CORBA 標(biāo)準(zhǔn)是公共對(duì)象請(qǐng)求代理結(jié)構(gòu)(Common Object Request Broker Architecture),由對(duì)象管理組織 (Object Management Group,縮寫(xiě)為 OMG)標(biāo)準(zhǔn)化。它的組成是接口定義語(yǔ)言(IDL), 語(yǔ)言綁定(binding:也譯為聯(lián)編)和允許應(yīng)用程序間互操作的協(xié)議。 其目的為: 用不同的程序設(shè)計(jì)語(yǔ)言書(shū)寫(xiě)

在不同的進(jìn)程中運(yùn)行

為不同的操作系統(tǒng)開(kāi)發(fā)。

UML

UML,標(biāo)準(zhǔn)建模語(yǔ)言,包含用例圖,靜態(tài)圖(包括類圖、對(duì)象圖和包圖),行為圖,交互圖(順序圖,合作圖),實(shí)現(xiàn)圖等。

XML

CMMI

JRE

J2EE

J2EE是Sun公司提出的多層(multi-diered),分布式

(distributed),基于組件(component-base)的企業(yè)級(jí)應(yīng)用

模型(enterpriese application model).在這樣的一個(gè)應(yīng)用系統(tǒng)中,可按照功能劃分為不同的組件,這些組件又可在不同計(jì)算機(jī)上,并且處于相應(yīng)的層次(tier)中。所屬層次包括客戶層(clietn tier)組件,web層和組

件,Business層和組件,企業(yè)信息系統(tǒng)(EIS)層。

JDK

AOP

OO

Container

W3C

JMS

Domain

POJO

JVM

JNDI

JTA

SOAP

[Simple Object Access Protocol,簡(jiǎn)單對(duì)象訪問(wèn)協(xié)議] WSDL

JDO

JDO是Java對(duì)象持久化的新的規(guī)范,為Java Data Object的簡(jiǎn)稱,也是一個(gè)用于存取某種數(shù)據(jù)倉(cāng)庫(kù)中的部分面試題答案對(duì)

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

TDD

DAO

IoC

[Inversion of Control, 控制反轉(zhuǎn)]

RMI

DNS

[Internet Domain Name System, 因特網(wǎng)域名系統(tǒng)]

URL

URI

二十四、數(shù)據(jù)庫(kù)連接池的工作機(jī)制

二十五、互聯(lián)網(wǎng)提供哪些服務(wù)?

二十六、請(qǐng)寫(xiě)出JSP的幾個(gè)隱含內(nèi)置對(duì)象

答:JSP中隱含內(nèi)置對(duì)象

名稱 類型 注釋和范圍

request javax.servlet.http.HttpServletRequest request

response javax.servlet.http.HttpServletResponse response

page javax.lang.Object page

Exception java.lang.Throwable page

pageContext javax.servlet.jsp.PageContext page

session javax.servlet.http.HttpSession session

application javax.servlet.ServletContext ServletContext

out javax.servlet.jsp.JspWriter OutputStream

config javax.servlet.ServletConfig ServletConfig

JSP共有以下9種基本內(nèi)置組件(可與ASP的6種內(nèi)部組件相對(duì)應(yīng)):

request 用戶端請(qǐng)求,此請(qǐng)求會(huì)包含來(lái)自GET/POST請(qǐng)求的參數(shù)

response 網(wǎng)頁(yè)傳回用戶端的回應(yīng)

page JSP 網(wǎng)頁(yè)本身

exception 針對(duì)錯(cuò)誤網(wǎng)頁(yè),未捕捉的例外 pageContext 網(wǎng)頁(yè)的屬性是在這里管理

session 與請(qǐng)求有關(guān)的會(huì)話期

application servlet 正在執(zhí)行的內(nèi)容

out 用來(lái)傳送回應(yīng)的輸出

config Servlet的構(gòu)架部件

二十七、請(qǐng)你談?wù)凷SH整合

答:SSH:

Struts(表示層)+Spring(業(yè)務(wù)層)+Hibernate(持久層)

Struts:

Struts是一個(gè)表示層框架,主要作用是界面展示,接收請(qǐng)求,分發(fā)請(qǐng)求。

在MVC框架中,Struts屬于VC層次,負(fù)責(zé)界面表現(xiàn),負(fù)責(zé)MVC關(guān)系的分發(fā)。(View:沿用JSP,HTTP,

Form,Tag,Resourse ;Controller:ActionServlet,struts-config.xml,Action)

Hibernate:

Hibernate是一個(gè)持久層框架,它只負(fù)責(zé)與關(guān)系數(shù)據(jù)庫(kù)的操作。

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ì)得到跳轉(zhuǎn)的地址,并重新發(fā)送請(qǐng)求鏈接。這樣,從瀏覽器的地址欄中可以看到跳轉(zhuǎn)后的鏈接地址。所以,前者更加高效,在前者可以滿足需要時(shí),盡量使用forward()方法,并且,這樣也有助于隱藏實(shí)際的鏈接。在有些情況下,比如,需要跳轉(zhuǎn)到一個(gè)其它服務(wù)器上的資源,則必須使用sendRedirect()方法。

三十、寫(xiě)一個(gè)簡(jiǎn)單的C/S結(jié)構(gòu)程序,Java 的通信編程,編程題(或問(wèn)答),用JAVA SOCKET編程,讀服務(wù)器幾個(gè)字符,再寫(xiě)入本地顯示?

答:Server端程序:

package test;

import java.net.*;

import java.io.*;

public class Server

{

private ServerSocket ss;

private Socket socket;

private BufferedReader in;

private PrintWriter out;

public Server()

{

try

{

ss=new ServerSocket(10000);

while(true)

{

socket = ss.accept();

String RemoteIP =

socket.getInetAddress().getHostAddress();

String RemotePort = ":"+socket.getLocalPort(); System.out.println("A client come

in!IP:"+RemoteIP+RemotePort);

in = new BufferedReader(new

InputStreamReader(socket.getInputStream())); String line = in.readLine();

System.out.println("Cleint send is :" + line); out = new

PrintWriter(socket.getOutputStream(),true); out.println("Your Message 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 java.net.*;

public class Client

{

Socket socket;

BufferedReader in;

PrintWriter out;

public Client()

{

try

{

System.out.println("Try to Connect to 127.0.0.1:10000");

socket = new Socket("127.0.0.1",10000);

System.out.println("The Server Connected!"); System.out.println("Please enter some Character:");

BufferedReader line = new BufferedReader(new

InputStreamReader(System.in));

out = 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)

{

out.println("Wrong");

}

}

public static void main(String[] args) {

new Client();

}

};

【部分面試題答案】相關(guān)文章:

外企部分面試題01-01

YY產(chǎn)品經(jīng)理面試題(部分)02-08

寶潔核心部分面試題01-01

面試題:自我介紹部分01-01

謎語(yǔ)成語(yǔ)問(wèn)題部分答案:01-27

android面試題及答案精選02-10

PHP面試題與答案02-10

美工面試題及答案01-17

競(jìng)聘面試題及答案01-15