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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

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

在一種Web應用怎樣去使用?

答:

MVC設計模式(應用觀測者模式的框架模式)

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

層(1ndependentofpresentation)o

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

的執(zhí)行成果。

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

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

MVC框架U勺一種實現模型

模型二(Servlet-centric):

JSP+Serv1et+JavaBean,以控制為關鍵,JSP只負責顯示和搜集數據,Sev1et,

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

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

StrutsMVC框架(Webeipplicationframeworks)

Struts是使用UVC的實現模式二來實現的,也就是以控制器為關鍵。

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

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

Bean或EJB口勺形式提供

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

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

基礎的應用程序,應用程序資源文獻保留了某些文本常量和錯誤消息,可轉變?yōu)槠渌Z言,可

用于JSP中。

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

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

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

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

1時邏輯接口。

二、什么是WebService?

答:

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

實現不同樣的語言間的互相調用,通過Internet進行基于協議的網絡應用間H勺交互。

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

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

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

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

pe和Body。

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

WebService口勺長處

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

(2)松耦合

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

WebService的基本原理

(1)ServiceProvider采用WSDL描述服務

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

server)

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

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

三、什么是中間件?

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

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

操作系統(tǒng)軟件與顧客的應用軟件H勺中間。中間件在操作系統(tǒng)、網絡和數據庫之上,應用軟件H勺

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

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

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

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

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

分類:數據訪問中間件,遠程調用中間件,消息中間件,交易中間件,對象中間件。

舉例:

1,RMI(RemoteMethodInvocations,遠程調用)

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

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

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

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

系統(tǒng))

6,Transaction事務(全局/局部)全局事務(分布式事務)局部事務(在同一數據庫聯接內

的事務)

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

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

9,Threading(多線程處理)

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

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

12,Rcsourcepooling(資源池)

13,Security(安全)

14,Caching(緩存)

四、什么是經典的軟件三層構造?軟件設計為何要分層?軟件分層有什么好處?

答:(1)Presentationlayer(體現層)

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

(2)接受祈求

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

(4)負責規(guī)則驗證(數據格式,數據非空等)

(5)流程控制

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

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

(2)負責事務,安全等服務

(3)Persistencelayer(持久層)

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

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

Domainlayer(域層)

(1)業(yè)務對象以及業(yè)務關系的體現

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

(3)域層H勺對象可以穿越體現層,業(yè)務層,持久層

軟件分層構造使得代碼維護非常以便,設計明確,各層獨立,專注自己擅長廿勺領域。

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

OOP,Object-orientedProgramming,面向對象編程不同樣于面向過程編程:

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

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

2)通過類構造實例;

3)通過依賴、繼承、實現等形式建立對象間的通信關系

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

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

現,人們可以很好地理解和建立起計算機中H勺抽象模型

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

答:

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

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

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

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

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

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

以變化返回值口勺類型。

七、談談HashMap和Hashtable日勺區(qū)別。

答:

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

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

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

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

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

shMap慢,由于它是同步的°

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

答:

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

2)假如需要復用或者共享部分代碼,應當用抽象類而不是接口;

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

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

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

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

等。

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

SingleIon模式一般形式:

定義一種類,它的構造函數為private的J,它有一■種static日勺private日勺該類變

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

調用其中的措施。

十、類R勺關鍵特性有哪些?

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

封裝性:

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

有變量和類中措施的實現細節(jié)。

繼承性:

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

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

多態(tài)性:

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

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

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

對象

在面向對象概念中,對象(Object)是類日勺實例(instance)。對象與類日勺關系就像變量與數

據類型口勺關系同樣。

十二、寫出生產者消費者模型日勺實現

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

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

FileWriter的區(qū)別

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

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

大的收獲是什么?

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

答:Nu1IpointException(空指針異常)

C1assNotFoundExccption(類找不到異常)

C1assCastExceplion(類型轉換異常)

IllcgalArgumentExccption(非法參數異常)

ArithmeticException(算術異常)

NumbcrFormatException(數據格式異常)

IndexOut0fBoundsException(數組下標越界異常)

IliegalStateException(非法語句異常)

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

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

二十、請問網絡7層協議,tcp/ip4層協議是什么?

二H^一、Java面向對象的四大特點

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

答:

pub1ic:全局可見

protected:繼承體系構造之間可見

default(或不寫):同包可見

Private:本類可見。

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

答:

public:全局可見

protected:繼承體系構造之間可見

defau1t(或不寫):同包可見

private:本類可見。

二十三、名詞解釋

CRM

[CustomerRelationshipManagement,客戶關系管理]

ERP

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

OSS

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

BSS

[BusinessSupportSystem,數據定義語言]

BOSS

[Business0perationSupportSystem,數據定義語言]

OA

[OfficeAutomatization,辦公自動化]

OOP

SOA

GUI

DDL

[DataDefinitionLanguage,數據定義語言]

DML

[DataManipulationLanguage,數據操作語言]

WYSIWYG

所見即所得[WhatYGUSeeisWhatYouGet]

CMP

CMT

B2B

C2C

B2C

IDE

DOM

Clicnt/Server

CMM

ORM

MIS

MVC

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

avaBean,EJB組件實現),"View"是應用日勺體現面(由JSP頁面產生),"Controller”

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

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

OLE

CORBA

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

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

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

議。其目的為:

用不同樣H勺程序設計語言書寫

在不同樣U勺進程中運行

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

UML

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

圖,合作圖),實現圖等。

XML

CMMI

JRE

J2EE

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

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

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

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

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

JDK

AOP

00

Container

W3C

JMS

Domain

POJO

JVM

JND【

JTA

SOAP

[Simp1eObjectAccessProtocol?簡樸對象訪問協議]

WSDL

JDO

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

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

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

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

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

更通用,提供到任何數據底層的存儲功能,例如關系數據庫、文獻、XML以及對象數據庫(0DBM

S)等等,使得應用可移植性更強。

TDD

DAO

IoC

[InversionofControl,控制反轉]

RMI

DNS

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

URL

URI

二十四、數據庫連接池的工作機制

二十五、互聯網提供哪些服務?

二十六、請寫出JSPH勺幾種隱含內置對象

答:JSP中隱含內置對象

名稱類型注釋和范圍

request

request

response

response

page

Page

Exception

page

pageContext

Page

session

session

application

ServletContext

out

OutputStream

config

ServletConfig

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

request

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

response

網頁傳回憶客端時回應

pageJSP

網頁自身

exception

針對錯誤網頁,未捕捉日勺例外

pageContext

網頁的屬性是在這里管理

session

與祈求有關的會話期

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

out

用來傳送回應的輸出

contig

Serv1et的構架部件

二十七、請你談談SSH整合

答:SSH:

Struts(體現層)+Spring(業(yè)務層)+Hibemate(持久層)

Struts:

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

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

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

g.xml,Action)

Hibemate:

Hibernate是一種持久層框架,它只負責與關系數據庫H勺操作。

Spring:

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

二十八、應用服務器與WebServer的|區(qū)別

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

答:

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

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

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

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

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

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

編程,讀服務器幾種字符,再寫入當地顯示?

答: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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論