日韩欧美另类久久久精品_亚洲大色堂人在线无码_国产三级aⅴ在线播放_在线无码aⅴ精品动漫_国产精品精品国产专区

我要投稿 投訴建議

軟件工程師面試問題

時間:2023-02-09 10:55:37 面試問題 我要投稿

軟件工程師面試問題

  軟件工程師一般指從事軟件開發(fā)職業(yè)的人。本文將介紹軟件工程師面試問題。

軟件工程師面試問題

  1、java中會存在內存泄漏嗎,請簡單描述。

  會。如:int i,i2; return (i-i2); 當 i為足夠大的正數,i2為足夠大的負數。結果會造成溢位,導致錯誤。

  2、java中實現多態(tài)的機制是什么?

  方法的重寫Overriding和重載Overloading是Java多態(tài)性的不同表現。重寫Overriding是父類與子類之間多態(tài)性的一種表現,重載Overloading是一個類中多態(tài)性的一種表現。

  3、垃圾回收器的基本原理是什么?垃圾回收器可以馬上回收內存嗎?有什么辦法主動通知虛擬機進行垃圾回收?

  對于GC來說,當程序員創(chuàng)建對象時,GC就開始監(jiān)控這個對象的地址、大小以及使用情況。通常,GC采用有向圖的方式記錄和管理堆(heap)中的所有對象。通過這種方式確定哪些對象是"可達的",哪些對象是"不可達的"。當GC確定一些對象為"不可達"時,GC就有責任回收這些內存空間?梢浴3绦騿T可以手動執(zhí)行System.gc(),通知GC運行,但是Java語言規(guī)范并不保證GC一定會執(zhí)行。

  4、靜態(tài)變量和實例變量的區(qū)別?

  static i = ; file://常量

  class A a; a.i =;//可變

  5、什么是java序列化,如何實現java序列化?

  序列化就是一種用來處理對象流的機制,所謂對象流也就是將對象的內容進行流化?梢詫α骰蟮膶ο筮M行讀寫操作,也可將流化后的對象傳輸于網絡之間。序列化是為了解決在對對象流進行讀寫操作時所引發(fā)的問題。

  序列化的實現:將需要被序列化的類實現Serializable接口,該接口沒有需要實現的方法,implements Serializable只是為了標注該對象是可被序列化的,然后使用一個輸出流(如:FileOutputStream)來構造一個ObjectOutputStream(對象流)對象,接著,使用ObjectOutputStream對象的writeObject(Object obj)方法就可以將參數為obj的對象寫出(即保存其狀態(tài)),要恢復的話則用輸入流。

  6、是否可以從一個static方法內部發(fā)出對非static方法的調用?

  不可以,如果其中包含對象的method();不能保證對象初始化.

  7、寫clone()方法時,通常都有一行代碼,是什么?

  Clone 有缺省行為,super.clone();他負責產生正確大小的空間,并逐位復制。

  8、在JAVA中,如何跳出當前的多重嵌套循環(huán)?

  用break; return 方法。

  9、List、Map、Set三個接口,存取元素時,各有什么特點?

  List 以特定次序來持有元素,可有重復元素。Set 無法擁有重復元素,內部排序。Map 保存key-value值,value可多值。

  10、J2EE是什么?

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

  11、UML方面

  標準建模語言UML。用例圖,靜態(tài)圖(包括類圖、對象圖和包圖),行為圖,交互圖(順序圖,合作圖),實現圖。

  12、說出一些常用的類,包,接口,請各舉5個

  常用的類:BufferedReader BufferedWriter FileReader FileWirter String Integer

  常用的包:java.lang java.awt java.io java.util java.sql

  常用的接口:Remote List Map Document NodeList

  13、開發(fā)中都用到了那些設計模式?用在什么場合?

  每個模式都描述了一個在我們的環(huán)境中不斷出現的問題,然后描述了該問題的解決方案的核心。通過這種方式,你可以無數次地使用那些已有的解決方案,無需在重復相同的工作。主要用到了MVC的設計模式。用來開發(fā)JSP/Servlet或者J2EE的相關應用。簡單工廠模式等。

  14、jsp有哪些動作?作用分別是什么?

  JSP共有以下6種基本動作 jsp:include:在頁面被請求的時候引入一個文件。 jsp:useBean:尋找或者實例化一個JavaBean。 jsp:setProperty:設置JavaBean的屬性。 jsp:getProperty:輸出某個JavaBean的屬性。 jsp:forward:把請求轉到一個新的頁面。 jsp:plugin:根據瀏覽器類型為Java插件生成OBJECT或EMBED標記。

  15、Anonymous Inner Class (匿名內部類) 是否可以extends(繼承)其它類,是否可以implements(實現)interface(接口)?

  可以繼承其他類或完成其他接口,在swing編程中常用此方式。

  16、應用服務器與WEB SERVER的區(qū)別?

  應用服務器:Weblogic、Tomcat、Jboss

  WEB SERVER:IIS、 Apache

  17、BS與CS的聯系與區(qū)別。

  C/S是Client/Server的縮寫。服務器通常采用高性能的PC、工作站或小型機,并采用大型數據庫系統(tǒng),如Oracle、Sybase、Informix或 SQL Server。客戶端需要安裝專用的客戶端軟件。

  B/S是Brower/Server的縮寫,客戶機上只要安裝一個瀏覽器(Browser),如Netscape Navigator或Internet Explorer,服務器安裝Oracle、Sybase、Informix或 SQL Server等數據庫。在這種結構下,用戶界面完全通過WWW瀏覽器實現,一部分事務邏輯在前端實現,但是主要事務邏輯在服務器端實現。瀏覽器通過Web Server 同數據庫進行數據交互。

  C/S 與 B/S 區(qū)別:

  1.硬件環(huán)境不同:

  C/S 一般建立在專用的網絡上, 小范圍里的網絡環(huán)境, 局域網之間再通過專門服務器提供連接和數據交換服務.

  B/S 建立在廣域網之上的, 不必是專門的網絡硬件環(huán)境,例與電話上網, 租用設備. 信息自己管理. 有比C/S更強的適應范圍, 一般只要有操作系統(tǒng)和瀏覽器就行

  2.對安全要求不同

  C/S 一般面向相對固定的用戶群, 對信息安全的控制能力很強. 一般高度機密的信息系統(tǒng)采用C/S 結構適宜. 可以通過B/S發(fā)布部分可公開信息.

  B/S 建立在廣域網之上, 對安全的控制能力相對弱, 可能面向不可知的用戶。

  3.對程序架構不同

  C/S 程序可以更加注重流程, 可以對權限多層次校驗, 對系統(tǒng)運行速度可以較少考慮.

  B/S 對安全以及訪問速度的多重的考慮, 建立在需要更加優(yōu)化的基礎之上. 比C/S有更高的要求 B/S結構的程序架構是發(fā)展的趨勢, 從MS的.Net系列的BizTalk 2000 Exchange 2000等, 全面支持網絡的構件搭建的系統(tǒng). SUN 和IBM推的JavaBean 構件技術等,使 B/S更加成熟.

  4.軟件重用不同

  C/S 程序可以不可避免的整體性考慮, 構件的重用性不如在B/S要求下的構件的重用性好.

  B/S 對的多重結構,要求構件相對獨立的功能. 能夠相對較好的重用.就入買來的餐桌可以再利用,而不是做在墻上的石頭桌子

  5.系統(tǒng)維護不同

  C/S 程序由于整體性, 必須整體考察, 處理出現的問題以及系統(tǒng)升級. 升級難. 可能是再做一個全新的系統(tǒng)

  B/S 構件組成,方面構件個別的更換,實現系統(tǒng)的無縫升級. 系統(tǒng)維護開銷減到最小.用戶從網上自己下載安裝就可以實現升級.

  6.處理問題不同

  C/S 程序可以處理用戶面固定, 并且在相同區(qū)域, 安全要求高需求, 與操作系統(tǒng)相關. 應該都是相同的系統(tǒng)

  B/S 建立在廣域網上, 面向不同的用戶群, 分散地域, 這是C/S無法作到的. 與操作系統(tǒng)平臺關系最小.

  7.用戶接口不同

  C/S 多是建立的Window平臺上,表現方法有限,對程序員普遍要求較高

  B/S 建立在瀏覽器上, 有更加豐富和生動的表現方式與用戶交流. 并且大部分難度減低,減低開發(fā)成本.

  8.信息流不同

  C/S 程序一般是典型的中央集權的機械式處理, 交互性相對低

  B/S 信息流向可變化, B-B B-C B-G等信息、流向的變化, 更像交易中心。

  8、LINUX下線程,GDI類的解釋。

  LINUX實現的就是基于核心輕量級進程的"一對一"線程模型,一個線程實體對應一個核心輕量級進程,而線程之間的管理在核外函數庫中實現。

  GDI類為圖像設備編程接口類庫。

  9、STRUTS的應用(如STRUTS架構)

  Struts是采用Java Servlet/JavaServer Pages技術,開發(fā)Web應用程序的開放源碼的framework。 采用Struts能開發(fā)出基于MVC(Model-View-Controller)設計模式的應用構架。 Struts有如下的主要功能: 一.包含一個controller servlet,能將用戶的請求發(fā)送到相應的Action對象。 二.JSP自由tag庫,并且在controller servlet中提供關聯支持,幫助開發(fā)員創(chuàng)建交互式表單應用。 三.提供了一系列實用對象:XML處理、通過Java reflection APIs自動處理JavaBeans屬性、國際化的提示和消息。

  18、Jdo是什么?

  JDO是Java對象持久化的新的規(guī)范,為java data object的簡稱,也是一個用于存取某種數據倉庫中的對象的標準化API。JDO提供了透明的對象存儲,因此對開發(fā)人員來說,存儲數據對象完全不需要額外的代碼(如JDBC API的使用)。這些繁瑣的例行工作已經轉移到JDO產品提供商身上,使開發(fā)人員解脫出來,從而集中時間和精力在業(yè)務邏輯上。另外,JDO很靈活,因為它可以在任何數據底層上運行。JDBC只是面向關系數據庫(RDBMS)JDO更通用,提供到任何數據底層的存儲功能,比如關系數據庫、文件、XML以及對象數據庫(ODBMS)等等,使得應用可移植性更強。

【軟件工程師面試問題】相關文章:

軟件工程師面試要注意那些問題08-06

軟件測試面試問題03-25

軟件測試工程師應聘面試常見問題08-16

軟件測試員面試問題07-25

軟件測試員的面試問題08-07

軟件工程師面試技巧07-20

軟件工程師的面試技巧08-31

前端工程師面試問題09-26

質量工程師面試問題07-20