2024年Java軟件工程師面試考題集_第1頁
2024年Java軟件工程師面試考題集_第2頁
2024年Java軟件工程師面試考題集_第3頁
2024年Java軟件工程師面試考題集_第4頁
2024年Java軟件工程師面試考題集_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

Java軟件工程師面試筆試題.txt->根網(wǎng)線盡賺了多少人的青春有時候感動的就是

身邊微局限性道的小事。一破碎不是最殘酷的最殘酷的是踩著這些碎片卻假裝不疼痛。

固執(zhí)的尋找一未來就算我遇見再怎么完美的人,均有一種缺陷,他不是你,下輩子要做男

生,娶一種像我這樣的女生。一、你對MVC口勺理解,MYC有什么優(yōu)缺陷?結(jié)合Struts,闡明

在一種Web應(yīng)用怎樣去使用?

答:

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

M:Model(Businessprocesslayer),模型,操作數(shù)據(jù)II勺業(yè)務(wù)處理層,并獨立于體現(xiàn)

層(1ndependentofpresentation)o

V:View(Presentationlayer),視圖,通過客戶端數(shù)據(jù)類型顯示數(shù)據(jù),并回顯模型層

的執(zhí)行成果。

C:Controller(Contro1layer),控制器,也就是視圖層和模型層橋梁,控制數(shù)據(jù)的流向,

接受視圖層發(fā)出的事件,并重繪視圖

MVC框架U勺一種實現(xiàn)模型

模型二(Servlet-centric):

JSP+Serv1et+JavaBean,以控制為關(guān)鍵,JSP只負(fù)責(zé)顯示和搜集數(shù)據(jù),Sev1et,

連接視圖和模型,將視圖層數(shù)據(jù),發(fā)送給模型層,JavaBean,分為業(yè)務(wù)類和數(shù)據(jù)實體,業(yè)務(wù)類

處理業(yè)務(wù)數(shù)據(jù),數(shù)據(jù)實體,承載數(shù)據(jù),基本上大多數(shù)日勺項目都是使用這種MVC的實現(xiàn)模式。

StrutsMVC框架(Webeipplicationframeworks)

Struts是使用UVC的實現(xiàn)模式二來實現(xiàn)的,也就是以控制器為關(guān)鍵。

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

Model:Struts沒有提供model類。這個商業(yè)邏輯必須日Web應(yīng)用程序□勺開發(fā)者以Java

Bean或EJB口勺形式提供

View:Struts提供了actionform創(chuàng)立formbean,用丁一在controller和view間傳播

數(shù)據(jù)。此外,Struts提供了自定義JSP標(biāo)簽庫,輔助開發(fā)者用JSP創(chuàng)立交互式的以表單為

基礎(chǔ)的應(yīng)用程序,應(yīng)用程序資源文獻(xiàn)保留了某些文本常量和錯誤消息,可轉(zhuǎn)變?yōu)槠渌Z言,可

用于JSP中。

Contro1ler:Struts提供了一種關(guān)鍵的控制器ActionServlet,通過這個關(guān)鍵的控制器來

調(diào)用其他顧客注冊了『、J自定義日勺控制器Action,自定義Action需要符合Struts的自定

義Action規(guī)范,還需要在struts-config.xm1的特定配置文獻(xiàn)中進(jìn)行配置,接受JSP

輸入字段形成Actionform,然后調(diào)用一種Action控制器。Action控制器中提供了mode

1時邏輯接口。

二、什么是WebService?

答:

WebSorvice是一種S0A(面向服務(wù)口勺編程)日勺架構(gòu),它是不依賴于語言,不依賴于平臺:可以

實現(xiàn)不同樣的語言間的互相調(diào)用,通過Internet進(jìn)行基于協(xié)議的網(wǎng)絡(luò)應(yīng)用間H勺交互。

WebService實現(xiàn)不同樣語言間H勺調(diào)用,是依托于一種原則,webservice是需要遵守W

SDL(web服務(wù)定義語言)/SOAP(簡樸祈求協(xié)議)規(guī)范口勺。

WebService=WSDL+SOAP+UDDI(webservice日勺注冊)

Soap是由S。ap時part和。個或多種附件構(gòu)成一般只有part,在part中有Enve1o

pe和Body。

WebService是通過提供原則的協(xié)議和接II,可以讓不同樣的程序集成的一種SOA架構(gòu)。

WebService口勺長處

(1)可以讓異構(gòu)的程序互相訪問(跨平臺)

(2)松耦合

(3)基于原則協(xié)議(通用語言,容許其他程序訪問)

WebService的基本原理

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

(2)ServiceProvid已r采用UDDI將服務(wù)的描述文獻(xiàn)公布到UDDI服務(wù)器(Register

server)

(3)ServiceRequest。r在UDDI服務(wù)器上查詢并獲取WSDL文獻(xiàn)

(4)Scrvicercquostor將祈求綁定到S。AP,并訪問對應(yīng)的J服務(wù)。

三、什么是中間件?

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

中間件(middleware)是基礎(chǔ)軟件的一大類,屬于可復(fù)用軟件的范圍。顧名思義,中間件處在

操作系統(tǒng)軟件與顧客的應(yīng)用軟件H勺中間。中間件在操作系統(tǒng)、網(wǎng)絡(luò)和數(shù)據(jù)庫之上,應(yīng)用軟件H勺

卜.層,總的作用是為處在自己上層時應(yīng)用軟件提供運行與開發(fā)H勺環(huán)境,協(xié)助顧客靈活■、高效地

開發(fā)和集成復(fù)雜的應(yīng)用軟件。

在眾多有關(guān)中間件的定義中,比較普遍被接受的是IDC表述的:中間件是一種獨立的系

統(tǒng)軟件或服務(wù)程序,分布式應(yīng)用軟件借助這種軟件在不同樣的J技術(shù)之間共享資源,中間件位

于客戶機(jī)服務(wù)器日勺操作系統(tǒng)之上,管理計算資源和網(wǎng)絡(luò)通信。

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

舉例:

1,RMI(RemoteMethodInvocations,遠(yuǎn)程調(diào)用)

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

3,TransparentFail-over(透明歐J故障切換)

4,Clustering(集群,用多種小日勺服務(wù)器替代大型機(jī))

5,Back-end-Integration(后端集成,用既有的、新開發(fā)口勺系統(tǒng)怎樣去集成遺留日勺

系統(tǒng))

6,Transaction事務(wù)(全局/局部)全局事務(wù)(分布式事務(wù))局部事務(wù)(在同一數(shù)據(jù)庫聯(lián)接內(nèi)

的事務(wù))

7,DynamicRedcployment(動態(tài)重新布署,在不停止原系統(tǒng)日勺狀況下,布署新的J系統(tǒng))

8,SystemManagement(系統(tǒng)管理)

9,Threading(多線程處理)

10,Message-orientedMiddleware面向消息的中間件(異步口勺調(diào)用編程)

11,ComponentLifeCyc1e(組件11勺生命周期管理)

12,Rcsourcepooling(資源池)

13,Security(安全)

14,Caching(緩存)

四、什么是經(jīng)典的軟件三層構(gòu)造?軟件設(shè)計為何要分層?軟件分層有什么好處?

答:(1)Presentationlayer(體現(xiàn)層)

(1)體現(xiàn)邏輯(生成界面代碼)

(2)接受祈求

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

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

(5)流程控制

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

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

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

(3)Persistencelayer(持久層)

(1)封裝數(shù)據(jù)訪問及I邏輯,暴露接口

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

Domainlayer(域?qū)?

(1)業(yè)務(wù)對象以及業(yè)務(wù)關(guān)系的體現(xiàn)

(2)處理簡樸的業(yè)務(wù)邏輯

(3)域?qū)親勺對象可以穿越體現(xiàn)層,業(yè)務(wù)層,持久層

軟件分層構(gòu)造使得代碼維護(hù)非常以便,設(shè)計明確,各層獨立,專注自己擅長廿勺領(lǐng)域。

五、什么是00P?00P相對于面向過程編程有哪些長處?

OOP,Object-orientedProgramming,面向?qū)ο缶幊滩煌瑯佑诿嫦蜻^程編程:

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

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

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

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

(2)OOP易于擴(kuò)展,增長或變化業(yè)務(wù)的功能,無需大幅改動變化源代碼

(3)OOP易于建模,OOP就是軟件架構(gòu)師在計算機(jī)高級語言中對客觀世界的抽象和再

現(xiàn),人們可以很好地理解和建立起計算機(jī)中H勺抽象模型

六、談?wù)?ver1oad和0verride的區(qū)別。

答:

措施的重寫Overriding和重教Overloading是Java多態(tài)性U勺不同樣體現(xiàn)。重

寫0verriding是父類與子類之間多態(tài)性U勺一種體現(xiàn),重載0verloading是一種類中多態(tài)

性的一種體現(xiàn)。假如在子類中定義某措施與其父類有相似U勺名稱和參數(shù),我們說該措施被重寫

(Overriding)。子類的對象使用這個措施時,將調(diào)用子類中日勺定義,對它而言,父類中的定義

如同被“屏蔽”了。假如在一種類中定義了多種同名H勺措施,它們或有不同樣的參數(shù)個數(shù)或

有不同樣的I參數(shù)類型,則稱為措施的I重載(Overloading)。0verloadcd的措施是可

以變化返回值口勺類型。

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

答:

HashMap是輕量級H勺(線程不安全的,效率高的)集合,Hashtable是重量級時[線程

安全的,效率低I向)集合。

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

HashMap類沒有分類或者排序。它容許一種null鍵和多種nul1值。

Hashtable類似于HashMap,不過不容許null鍵和nul1值。它也比Ha

shMap慢,由于它是同步的°

八、請問abstractclass和interface有什么區(qū)別?

答:

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

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

3)繼承無法處理類型的I轉(zhuǎn)換問題,接口就是為了處理這一問題而產(chǎn)生口勺(Java的單繼承是接

口產(chǎn)生的主線原因)接口是一種抽象的第三方規(guī)范,跟對象沒什么直接關(guān)系。

九、請問軟件開發(fā)中的設(shè)計模式你會使用哪些?

答:我熟悉H勺設(shè)計模式有些例模式,DAO模式,模板措施,工廠模式,委托代理模式,MVC模式

等。

Sing1eton模式重要作用是保證在Java應(yīng)用程序中,一種類Class只有一種實例存在。

SingleIon模式一般形式:

定義一種類,它的構(gòu)造函數(shù)為private的J,它有一■種static日勺private日勺該類變

量,在類初始化時實例話,通過一種pub1ic『、JgetInstance措施獲取對它日勺引用,繼而

調(diào)用其中的措施。

十、類R勺關(guān)鍵特性有哪些?

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

封裝性:

類的封裝性為類的組員提供公有、缺省、保護(hù)和私有等多級訪問權(quán)限,目的是隱藏類中口勺私

有變量和類中措施的實現(xiàn)細(xì)節(jié)。

繼承性:

類的繼承性提供從已存在肉類創(chuàng)立新類的機(jī)制,繼承(inhcritance)使一種新類自動擁

有被繼承類(父類)H勺所有組員。

多態(tài)性:

類艮I多態(tài)性提供類中措施執(zhí)行日勺多樣性,多態(tài)性有兩種體現(xiàn)形式:重載和覆蓋。

十一、請問類與對象有什么區(qū)別?

類就是某一種事物的一般性的集合體,是相似或相似的各個事物共同特性的一種抽象。

對象

在面向?qū)ο蟾拍钪?對象(Object)是類日勺實例(instance)。對象與類日勺關(guān)系就像變量與數(shù)

據(jù)類型口勺關(guān)系同樣。

十二、寫出生產(chǎn)者消費者模型日勺實現(xiàn)

十三、用軟件工程和Java來論述購物車(shoppingcart)系統(tǒng)實現(xiàn)

十四、文獻(xiàn)系統(tǒng)的J幾種類:FileInputStream、FileOutputStream^FileReader、

FileWriter的區(qū)別

十五、請寫出JavaAPI中最常用的五個包,并且各舉兩個類加以闡明。

十六、請問你在“電信運行支撐系統(tǒng)”中碰到了哪些問題?你是怎么處理的I?做這個項目你最

大的收獲是什么?

十七、請說出幾種常用的異常類

答:Nu1IpointException(空指針異常)

C1assNotFoundExccption(類找不到異常)

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

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

ArithmeticException(算術(shù)異常)

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

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

IliegalStateException(非法語句異常)

卜八、什么是進(jìn)程和線程?兩者的區(qū)別是什么?

十九、請簡要描述一下你做歐IShoppingCart項目。

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

二H^一、Java面向?qū)ο蟮乃拇筇攸c

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

答:

pub1ic:全局可見

protected:繼承體系構(gòu)造之間可見

default(或不寫):同包可見

Private:本類可見。

二十二、pub1ic,priv£te,protected,default訪問權(quán)限(可見性)

答:

public:全局可見

protected:繼承體系構(gòu)造之間可見

defau1t(或不寫):同包可見

private:本類可見。

二十三、名詞解釋

CRM

[CustomerRelationshipManagement,客戶關(guān)系管理]

ERP

[EnterpriseResourcePlanning,企業(yè)資源規(guī)劃]

OSS

[0perationSupportSystem,運行支撐系統(tǒng)]

BSS

[BusinessSupportSystem,數(shù)據(jù)定義語言]

BOSS

[Business0perationSupportSystem,數(shù)據(jù)定義語言]

OA

[OfficeAutomatization,辦公自動化]

OOP

SOA

GUI

DDL

[DataDefinitionLanguage,數(shù)據(jù)定義語言]

DML

[DataManipulationLanguage,數(shù)據(jù)操作語言]

WYSIWYG

所見即所得[WhatYGUSeeisWhatYouGet]

CMP

CMT

B2B

C2C

B2C

IDE

DOM

Clicnt/Server

CMM

ORM

MIS

MVC

MVC是ModeI-View-Controller的簡寫。"Model”代表的是應(yīng)用日勺業(yè)務(wù)邏輯(通過J

avaBean,EJB組件實現(xiàn)),"View"是應(yīng)用日勺體現(xiàn)面(由JSP頁面產(chǎn)生),"Controller”

是提供應(yīng)用H勺處理過程控制(一般是一種Servlet),通過這種設(shè)計模型把應(yīng)用邏輯,處理

過程和顯示邏輯提成不同樣日勺組件實現(xiàn)。這些組件可以進(jìn)行交互和重用。

OLE

CORBA

CORBA原貝ij是公共對象祈求代理構(gòu)造(CommonObjectRequestBrokerArchitect

ure),由對象管理組織(ObjectManagenientGroup,縮寫為OMG)原則化。它的構(gòu)

成是接口定義語言(IDL),語言綁定(binding:也譯為聯(lián)編)和容許應(yīng)用程序間互操作的協(xié)

議。其目的為:

用不同樣H勺程序設(shè)計語言書寫

在不同樣U勺進(jìn)程中運行

為不同樣日勺操作系統(tǒng)開發(fā)。

UML

UML,原則建模語言,包括用例圖,靜態(tài)圖(包括類圖、對象圖和包圖),行為圖,交互圖(次序

圖,合作圖),實現(xiàn)圖等。

XML

CMMI

JRE

J2EE

J2EE是Sun企業(yè)提出的多層(multi-diered),分布式(distributed),基于組件(comp

onent-base)日勺企業(yè)級應(yīng)用模型(enterprieseapplicationmodel).在這樣的?種

應(yīng)用系統(tǒng)中,可按照功能劃分為不同樣口勺組件,這些組件又可在不同樣計算機(jī)上,并且史在對

應(yīng)時層次(tier)中。所屬層次包括客戶層(c1ietntier)組件,web層和組件,Business

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

JDK

AOP

00

Container

W3C

JMS

Domain

POJO

JVM

JND【

JTA

SOAP

[Simp1eObjectAccessProtocol?簡樸對象訪問協(xié)議]

WSDL

JDO

JDO是Java對象持久化的新的規(guī)范,為JavaDataObjectI內(nèi)簡稱,也是一種用于存取

某種數(shù)據(jù)倉庫中的對象的原則化API。JDO提供了透明的對象存儲,因此對開發(fā)人員來說,存

儲數(shù)據(jù)對象完全不需要額外的代碼(如JDBCAPI的使用)。這些繁瑣的例行工作已經(jīng)轉(zhuǎn)移到

JDO產(chǎn)品提供商身上,使開發(fā)人員解脫出來,從而集中時間和精力在業(yè)務(wù)邏輯上。此外,JD

o很靈活,由于它可以在任何數(shù)據(jù)底層上運行。JDBC只是面向關(guān)系數(shù)據(jù)庫(RDBMS)JDO

更通用,提供到任何數(shù)據(jù)底層的存儲功能,例如關(guān)系數(shù)據(jù)庫、文獻(xiàn)、XML以及對象數(shù)據(jù)庫(0DBM

S)等等,使得應(yīng)用可移植性更強(qiáng)。

TDD

DAO

IoC

[InversionofControl,控制反轉(zhuǎn)]

RMI

DNS

[InternetDomainNcjneSystem,因特網(wǎng)域名系統(tǒng)]

URL

URI

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

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

二十六、請寫出JSPH勺幾種隱含內(nèi)置對象

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

名稱類型注釋和范圍

request

request

response

response

page

Page

Exception

page

pageContext

Page

session

session

application

ServletContext

out

OutputStream

config

ServletConfig

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

request

顧客端祈求,此祈求會包括來自GET/POST祈求U勺參數(shù)

response

網(wǎng)頁傳回憶客端時回應(yīng)

pageJSP

網(wǎng)頁自身

exception

針對錯誤網(wǎng)頁,未捕捉日勺例外

pageContext

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

session

與祈求有關(guān)的會話期

applicationservlet正在執(zhí)行II勺內(nèi)容

out

用來傳送回應(yīng)的輸出

contig

Serv1et的構(gòu)架部件

二十七、請你談?wù)凷SH整合

答:SSH:

Struts(體現(xiàn)層)+Spring(業(yè)務(wù)層)+Hibemate(持久層)

Struts:

Struts是一種體現(xiàn)層框架,重要作用是界面展示,接受祈求,分發(fā)祈求。

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

用JSP,,Form,Tag,Resourse;Controlior:ActionServ1ct,struts—confi

g.xml,Action)

Hibemate:

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

Spring:

Spring是一種業(yè)務(wù)層框架,是一種整合的框架,可以很好地黏合體現(xiàn)層與持久層。

二十八、應(yīng)用服務(wù)器與WebServer的|區(qū)別

二十九、JavaServletAPI中forward()與redirect()的區(qū)別

答:

前者僅是容器中控制權(quán)的轉(zhuǎn)向,在客戶端瀏覽器地址欄中不會顯示出轉(zhuǎn)向后歐I地址;后者則是

完全的跳轉(zhuǎn),瀏覽器將會得到跳轉(zhuǎn)的I地址,并重新發(fā)送祈求鏈接。這樣,從瀏覽器的地址欄

中可以看到跳轉(zhuǎn)后的鏈接地址。因此,前者愈加高效,在前者可以滿足需要時,盡量使用forwa

rd()措施,并且,這樣也有助于隱藏實際口勺鏈接。在有些狀況下,例如,需要跳轉(zhuǎn)到一種其

他服務(wù)器上的資源,則必須使用sendRedirect()措施。

三十、寫一-種簡樸的C/S構(gòu)造程序,Java日勺通信編程,編程題(或問答),用JAVASOCKET

編程,讀服務(wù)器幾種字符,再寫入當(dāng)?shù)仫@示?

答:Server端程序:

packagetest;

importj.*;

importjava.io.*;

publicclassServer

(

privateServerSocketss;

privateSocketsocket;

privateBufferedReaderin;

privatePrintWriterout;

publicServer()

try

ss=newServerSocket(10000);

while(true)

socket=ss.accept0;

StringRemoteIP=socket.getInetAddress().getHostAddress();

StringRemotePort=*:z,+socket.getLocalPort();

System.out.printlnC'Aclientcomein!IP:"+RemoteIP+RemotePort):

in=newBuffercdReader(new

InputStreamReader(socket.getInputStream()));

String1ine=in.readLine();

System.out.printeintsendis:〃+1ine);

out=newPrintWriter(socket.getOutputStreamO,true);

out.pr

溫馨提示

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

最新文檔

評論

0/150

提交評論