軟件工程師面試題及參考答案
軟件工程師面試題及參考答案
面試題的完成情況會間接影響軟件工程師的面試成功幾率。學習啦小編整理了一些軟件工程師面試題及參考答案,有興趣的親可以來閱讀一下!
軟件工程師面試題及參考答案(一)
1, Android dvm的進程和Linux的進程, 應用程序的進程是否為同一個概念 。
解答:DVM指dalivk的虛擬機。每一個Android應用程序都在它自己的進程中運行,都擁有一個獨立的Dalvik虛擬機實例。而每一個DVM都是在Linux 中的一個進程,所以說可以認為是同一個概念。 2, sim卡的EF 文件有何作用
解答:sim卡的文件系統有自己規范,主要是為了和手機通訊,sim本 身可以有自己的操作系統cos,EF(Eiementary File)基本文件就是作存儲并和手機通訊用的
3,嵌入式操作系統內存管理有哪幾種,各有何特性
解答:頁式,段式,段頁,用到了MMU(內存管理單元),虛擬空間等技術
4,什么是嵌入式實時操作系統, Android 操作系統屬于實時操作系統嗎? 解答:嵌入式實時操作系統是指當外界事件或數據產生時,能夠接受并以足夠快的速度予以處理,其處理的結果又能在規定的時間之作出快速響應,并控制所有實時任務協調一致運行的嵌入式操作系統。主要用于工業控制、軍事設備、航空航天等領域對系統的響應時間有苛刻的要求,這就需要使用實時系統。又可分為軟實時和硬實時兩種,而android是基于linux內核的,因此屬于軟實時。
5,一條最長的短信息約占多少byte(字節)?
解答:中文70(包括標點),英文160,160個字節。
6,android中的動畫有哪幾類,它們的特點和區別是什么?
解答:兩種,
Tween動畫、這種實現方式可以使視圖組件移動、放大、縮小以及產
生透明度的變化;
Frame動畫。傳統的動畫方法,通過順序的播放排列好的圖片來實現,類似電影。
7、handler機制的原理
andriod提供了 Handler 和 Looper 來滿足線程間的通信。當Android
系統啟動時,就創建了一個Looper與MessageQueue對象,并且與前線程相綁定.當在主線程使用Handler并創建該對象時,他會獲得該Looper。Handler對象發送消息有兩種方式:sendMessage... / Psot...但是最終調用的都是sendMessageAtTime方法,該方法主要作用有兩個:指定目標Handler對象把消息放入到消息隊列當中Looper中使用loop方法用于不斷的循環監聽消息隊列,看源碼可知,監聽消息隊列并不是另外開一個線程來實現,loop方法主要是,對消息進行分發,最終交給目標Handler并由HandleMessage方法最終處理.
8、說說mvc模式的原理,它在android中的運用
MVC(Model_view_contraller)”模型_視圖_控制器”。 MVC應用程序
總是由這三個部分組成。Event(事件)會導致Controller來改變Model或View,或者同時改變兩者。只要 Controller改變了Models的數據或者屬性,所有依賴的View都會自動更新。類似的,只要Controller改變了View,View會從潛在的Model中獲取數據來刷新自己。View重繪(刷新)和內存泄露的的問題
1. View的刷新:在需要刷新的地方,使用handle.sendmessage發送信息,然后在handle的getmessage里面執行invaliate或者postinvaliate.
2. GC內存泄露出現情況:
1.數據庫的cursor沒有關閉
2.構造adapter時,沒有使用緩存contentview衍生listview的優化問題-----減少創建view的對象,充分使用contentview,可以使用一靜態類來優化處理getview的過程/
3.Bitmap對象不使用時采用recycle()釋放內存
4.activity中的對象的生命周期大于activity
調試方法: DDMS==> HEAPSZIE==>dataobject==>[Total Size]
還有其他問題,大家歡迎提出阿,可以是整體架構的,還有這個Hal層.
軟件工程師面試題及參考答案(二)
你對MVC的理解,MVC有什么優缺點?結合Struts,說明在一個Web應用如何去使用?
答:
MVC設計模式(應用觀察者模式的框架模式)
M: Model(Business process layer),模型,操作數據的業務處理層,并獨立于表現層(Independent of presentation)。
V: View(Presentation layer),視圖,通過客戶端數據類型顯示數據,并回顯模型層的執行結果。 C: Controller(Control layer),控制器,也就是視圖層和模型層橋梁,控制數據的流向,接受視圖層發出的事件,并重繪視圖
MVC框架的一種實現模型
模型二(Servlet-centric):
JSP+Servlet+JavaBean,以控制為核心,JSP只負責顯示和收集數據,Sevlet,連接視圖和模型,將視圖層數據,發送給模型層,JavaBean,分為業務類和數據實體,業務類處理業務數據,數據實體,承載數據,基本上大多數的項目都是使用這種MVC的實現模式。
StrutsMVC框架(Web application frameworks)
Struts是使用MVC的實現模式二來實現的,也就是以控制器為核心。
Struts提供了一些組件使用MVC開發應用程序:
Model:Struts沒有提供model類。這個商業邏輯必須由Web應用程序的開發者以JavaBean或EJB的形式提供
View:Struts提供了action form創建form bean, 用于在controller和view間傳輸數據。此外,Struts提供了自定義JSP標簽庫,輔助開發者用JSP創建交互式的以表單為基礎的應用程序,應用程序資源文件保留了一些文本常量和錯誤消息,可轉變為其它語言,可用于JSP中。
Controller:Struts提供了一個核心的控制器ActionServlet,通過這個核心的控制器來調用其他用戶注冊了的自定義的控制器Action,自定義Action需要符合Struts的自定義Action規范,還需要在struts-config.xml的特定配置文件中進行配置,接收JSP輸入字段形成Action form,然后調用一個Action控制器。Action控制器中提供了model的邏輯接口。
軟件工程師面試題及參考答案(三)
什么是WebService?
答:
WebService是一個SOA(面向服務的編程)的架構,它是不依賴于語言,不依賴于平臺,可以實現不同的語言間的相互調用,通過Internet進行基于Http協議的網絡應用間的交互。
WebService實現不同語言間的調用,是依托于一個標準,webservice是需要遵守WSDL(web服務定義語言)/SOAP(簡單請求協議)規范的。
WebService=WSDL+SOAP+UDDI(webservice的注冊)
Soap是由Soap的part和0個或多個附件組成,一般只有part,在part中有Envelope和Body。
Web Service是通過提供標準的協議和接口,可以讓不同的程序集成的一種SOA架構。
Web Service的優點
(1) 可以讓異構的程序相互訪問(跨平臺)
(2) 松耦合
(3) 基于標準協議(通用語言,允許其他程序訪問)
Web Service的基本原理
(1) Service Provider采用WSDL描述服務
(2) Service Provider 采用UDDI將服務的描述文件發布到UDDI服務器(Register server)
(3) Service Requestor在UDDI服務器上查詢并 獲取WSDL文件
(4) Service requestor將請求綁定到SOAP,并訪問相應的服務。
軟件工程師面試題及參考答案(四)
什么是中間件?
中間件就是程序中可織入的,可重用的,與業務邏輯無關的各種組件。
中間件(middleware)是基礎軟件的一大類,屬于可復用軟件的范疇。顧名思義,中間件處于操作系統軟件與用戶的應用軟件的中間。中間件在操作系統、網絡和數據庫之上,應用軟件的下層,總的作用是為處于自己上層的應用軟件提供運行與開發的環境,幫助用戶靈活、高效地開發和集成復雜的應用軟件。
在眾多關于中間件的定義中,比較普遍被接受的是IDC表述的:中間件是一種獨立的系統軟件或服務程序,分布式應用軟件借助這種軟件在不同的技術之間共享資源,中間件位于客戶機服務器的操作系統之上,管理計算資源和網絡通信。
分類:數據訪問中間件,遠程調用中間件,消息中間件,交易中間件,對象中間件。 舉例:
1,RMI(Remote Method Invocations, 遠程調用)
2,Load Balancing(負載均衡,將訪問負荷分散到各個服務器中)
3,Transparent Fail-over(透明的故障切換)
4,Clustering(集群,用多個小的服務器代替大型機)
5,Back-end-Integration(后端集成,用現有的、新開發的系統如何去集成遺留的系統) 6,Transaction事務(全局/局部)全局事務(分布式事務)局部事務(在同一數據庫聯接內的事務)
7,Dynamic Redeployment(動態重新部署,在不停止原系統的情況下,部署新的系統) 8,System Management(系統管理)
9,Threading(多線程處理)
10,Message-oriented Middleware面向消息的中間件(異步的調用編程)
11,Component Life Cycle(組件的生命周期管理)
12,Resource pooling(資源池)
13,Security(安全)
14,Caching(緩存)
看過“軟件工程師面試題及參考答案”的人還看了: