亚洲国产综合网站|精品国产自在免费观看|日本免费精品一区二区三区|亚洲一区在线日韩在线尤物

<blockquote id="2t14e"></blockquote>
<ul id="2t14e"></ul>
  • <blockquote id="2t14e"></blockquote>

    1. java軟件開發(fā)工程師面試題寶典

      時間:2022-11-24 07:10:08 面試技巧 我要投稿
      • 相關推薦

      java軟件開發(fā)工程師面試題寶典

        Java軟件開發(fā)的面試題目你又了解了嗎?對于Java軟件工程師來說,做好準備很重要,以下是陽光網(wǎng)小編幫你們整理的java軟件開發(fā)工程師面試題,一起來學習啦。

      java軟件開發(fā)工程師面試題寶典

        java軟件開發(fā)工程師面試題(一)

        1)transient和volatile是java關鍵字嗎?

        如果用transient聲明一個實例變量,當對象存儲時,它的值不需要維持。例如: class T

        {

        transient int a; //不需要維持

        int b; //需要維持

        }

        這里,如果T類的一個對象寫入一個持久的存儲區(qū)域,a的內(nèi)容不被保存,但b的將被保存。

        volatile修飾符告訴編譯器被volatile修飾的變量可以被程序的其他部分改變。在多線程程序中,有時兩個或更多的線程共享一個相同的實例變量?紤]效率問題,每個線程可以自己保存該共享變量的私有拷貝。實際的變量副本在不同的時候更新,如當進入synchronized方法時。 用strictfp修飾類或方法,可以確保浮點運算(以及所有切斷)正如早期的Java版本那樣準確。切斷只影響某些操作的指數(shù)。當一個類被strictfp修飾,所有的方法自動被strictfp修飾。

        strictfp的意思是FP-strict,也就是說精確浮點的`意思。在Java虛擬機進行浮點運算時,如果沒有指定strictfp關鍵字時,Java的編譯器以及運行環(huán)境在對浮點運

        算的表達式是采取一種近似于我行我素的行為來完成這些操作,以致于得到的結(jié)果往往無法令你滿意。而一旦使用了strictfp來聲明一個類、接口或者方法時,那么所聲明的范圍內(nèi)Java的編譯器以及運行環(huán)境會完全依照浮點規(guī)范IEEE-754來執(zhí)行。因此如果你想讓你的浮點運算更加精確,而且不會因為不同的硬件平臺所執(zhí)行的結(jié)果不一致的話,那就請用關鍵字strictfp。

        你可以將一個類、接口以及方法聲明為strictfp,但是不允許對接口中的方法以及構(gòu)造函數(shù)聲明strictfp關鍵字,例如下面的代碼:

        strictfp interface A {}

        public strictfp class FpDemo1 {

        strictfp void f() {}

        }

        2. 錯誤的使用方法

        interface A {

        strictfp void f();

        }

        public class FpDemo2 {

        strictfp FpDemo2() {}

        }

        一旦使用了關鍵字strictfp來聲明某個類、接口或者方法時,那么在這個關鍵字所聲明的范圍內(nèi)所有浮點運算都是精確的,符合IEEE-754規(guī)范的。例如一個類被聲明為strictfp,那么該類中所有的方法都是strictfp的。

        2)抽象類和接口有什么區(qū)別?

        1.abstract class 在 Java 語言中表示的是一種繼承關系,一個類只能使用一次繼承關系。但是,一個類卻可以實現(xiàn)多個interface。

        2.在abstract class 中可以有自己的數(shù)據(jù)成員,也可以有非abstarct的成員方法,而在interface中,只能夠有靜態(tài)的不能被修改的數(shù)據(jù)成員(也就是必須是static final的,不過在 interface中一般不定義數(shù)據(jù)成員),所有的成員方法都是abstract的。

        3.abstract class和interface所反映出的設計理念不同。其實abstract class表示的是"is-a"關系,interface表示的是"like-a"關系。

        4.實現(xiàn)抽象類和接口的類必須實現(xiàn)其中的所有方法。抽象類中可以有非抽象方法。接口中則不能有實現(xiàn)方法。

        5.接口中定義的變量默認是public static final 型,且必須給其初值,所以實現(xiàn)類中不能重新定義,也不能改變其值。

        6.抽象類中的變量默認是 friendly 型,其值可以在子類中重新定義,也可以重新賦值。

        7.接口中的方法默認都是 public,abstract 類型的。

        3)能說一下java的反射(reflection)機制嗎?

        開放性和原因連接(causally-connected)是反射系統(tǒng)的兩大基本要素

        java軟件開發(fā)工程師面試題(二)

        1.j2ee是什么?它包含哪些技術?

        從整體來講,J2EE是使用java開發(fā)技術開發(fā)企業(yè)級應用的工業(yè)標準,它是java技術不斷適應和醋精企業(yè)級應用過程的產(chǎn)物。適用于企業(yè)級應用的j2ee,提供一個平臺獨立的、可移植的、多用戶的、安全的和基于標注呢企業(yè)級平臺,從而簡化企0業(yè)應用的開發(fā)、管理和部署。J2EE是一個標準,而不是一個現(xiàn)成的產(chǎn)品。

        主要包括以下這些技術:

        (1)Servlet servlet是java平臺上的CGI技術。Servlet在服務器端運行,動態(tài)的生成web頁面。與傳統(tǒng)的.CGI和其他類似CGI的技術相比,Java Servlet具有更高的效率并更容易使用。對于Servlet,從夫的請求不會導致同一程序的多次轉(zhuǎn)載,它是依靠線程的方式來支持并訪問的。

        (2)JSP Jsp(java server page)是一種是實現(xiàn)普通靜態(tài)HTML和動態(tài)頁面輸出混合編碼的技術。從這一點看,非常類似Microsoft ASP、PHP等技術。借助形式上的內(nèi)容和外觀表現(xiàn)的分離,web頁面制作的任務可以比較方便的話費給頁面設計人員和程序員,并方便的通過JSP來合成。在運行時態(tài),JSP將會被首先轉(zhuǎn)換成Servlet,并以Servlet的形態(tài)編譯運行,因此它的效率和功能與Servlet相比沒有差別,一樣具有很高的效率。

        (3)EJB EJB定義了一組可充用的組件:Enterprise Beans。開發(fā)人員可以利用這些組件,像搭積木一樣建立分布式應用。

        (4)JDBC JDBC(Java DataBase Connectivity,java數(shù)據(jù)庫連接)API是一個標準SQL(Structured Query Language,結(jié)構(gòu)化查詢語句)數(shù)據(jù)庫訪問接口,它使數(shù)據(jù)庫開發(fā)人員能夠使用標準Java API編寫數(shù)據(jù)庫應用程序。JDBC API主要用來連接數(shù)據(jù)庫和調(diào)用SQL命令執(zhí)行各種SQL語句。利用JDBC API可以執(zhí)行一般的SQL語句、動態(tài)SQL語句及帶IN和OUT參數(shù)的存儲過程。JAVA中的JDBC 相當于Microsoft平臺中的ODBC(open Database Connectivity)。

        2.測試生命周期、測試過程分為幾個階段、以及各階段的含義?

        軟件測試生命周期一般包括6個階段:

        (1)技術:產(chǎn)品定義階段

        (2)分析:外部文檔階段

        (3)設計:文檔架構(gòu)階段

        (4)構(gòu)建:單元測試階段

        (5)測試周期:錯誤修正,重復系統(tǒng)測試階段

        (6)最后測試和實施:代碼凍結(jié)階段

        3.您做系統(tǒng)設計用各種工具?

        Visio,Rational rose,power designer的

        4.什么是web容器?

        容器就是一種服務程序,在服務器一個端口就有一個提供相應服務的程度,而這個程序就是處理從客戶端發(fā)出的請求,如java中的Tomat容器,ASP的IIS火舌PWS都是這樣的容器。

        java軟件開發(fā)工程師面試題(三)

        1.運行是異常與一般異常有何異同?

        異常表示程序運行高城中可能會出現(xiàn)的非正常狀態(tài),運行時異常表示虛擬機的同城操作中可能遇到的異常,是一種常見運行異常。Java編譯器要求方法必須聲明拋出可能發(fā)生的非運行異常,但是并不要求必須聲明拋出未被捕獲的運行時異常。

        2.Hibernate中:不看數(shù)據(jù)庫,不看XML文件,不看查詢語句,怎么能知道表結(jié)構(gòu)?

        可以看與xml文件對應的域模型。

        3.目前集中主流數(shù)據(jù)庫軟件的應用特點,使用范圍各是什么?

        國際國內(nèi)的主導關系型數(shù)據(jù)庫管理系統(tǒng)由SQL Server、ORACLE、SYBASE、InFormix和DB2。本問題從性能、可伸縮性和并行性、安全性、操作簡便、使用風險、開放性、易維護性和價格、數(shù)據(jù)庫二次開發(fā)方面比較了SQL Server、ORACLE、SYBASE\DB2\INformix數(shù)據(jù)庫。

        (1)性能

        SQLServer:老版本多用戶時性能不佳,新版本的性能有了明顯的改善,各項處理能力都有了明顯的提高。保持了多項TPC-C(TPC-C值被廣泛用于衡量C/S環(huán)境下,由服務器和客戶端構(gòu)筑的整體系統(tǒng)的性能,它由事務處理性能委員會(TPC,Transaction Processing Corp)制定,TPC為非盈利性國際組織)記錄。

        Oracle:性能最高,保持Windows NT下的TPC-C的世界紀錄。

        SYSBASE:性能較高,支持Sun,IBM,HP,Compaq和veritas的集群設備特性,實現(xiàn)高可用性。適應與安全性要求極高的系統(tǒng)。

        DB2:適用于數(shù)據(jù)倉庫和在線事務處理,性能較高?蛻舳酥С旨皯媚J。

        Informix:性能較高,支持集群,實現(xiàn)高可用性。適用于安全性要求極高的系統(tǒng),尤其是銀行,證券系統(tǒng)的應用。

        (2)可伸縮性,并行性

        SQLServer:以前版本SQLServer并行實施和共存模型并不成熟。很難處理大量的用戶數(shù)和數(shù)據(jù)卷。伸縮性有限。新版本性能有了較大的改善,在Microsoft Advanced Server上由突出表現(xiàn),查過了它的主要競爭對象。

        ORACLE:平行服務器通過使一組結(jié)點貢獻同一簇中的工作來擴展Window nt的能力,提供高可用性和高伸縮性的簇的解決方案。如果Window NT不能滿足需要,用戶可以吧數(shù)據(jù)庫一道linux中,具有很好的伸縮性。

        SYBASE:新版本具有較好的并行性,速度快,對巨量數(shù)據(jù)無明顯影響,但是技術實現(xiàn)復雜,需要程序指導,伸縮性有限。

        DB2:DB2具有很好的并行性。DB2把數(shù)據(jù)庫管理擴充到了并行的、多節(jié)點的環(huán)境。數(shù)據(jù)庫分區(qū)是數(shù)據(jù)庫的一部分,包含自己的數(shù)據(jù)、索引、配置文件和事務日志。數(shù)據(jù)庫分區(qū)又是被稱之為節(jié)點或是數(shù)據(jù)庫節(jié)點,伸縮性有限。

        InFormix:采用單進程多線程的技術,具有較好的并行性。但是僅運行于unix平臺,伸縮性優(yōu)先。

        (3)安全性

        SQL Server:Microsoft Advanced Server獲得最高安全認證,服務器平臺的穩(wěn)定性是數(shù)據(jù)庫的穩(wěn)定性的基礎,新版本的SQL的安全性有了極大的提高。

        ORACLE:獲得最高認證級別的ISO標準認證。

        SYBASE:通過sun公司J2EE認證測試,獲得最高認證級別的ISO的標準認證。

        DB2:獲得最高認證級別的ISO標準認證。

        inFormin:獲得最高認證級別的ISO標準認證。

        (4)操作簡便

        SQLServer:操作簡單,采用圖形界面。管理也很方便,而且編程接口特別友好(它的SQL-DMO讓變成變得更方便),從易維護和價格上SQL Server明顯占有優(yōu)勢。

        Oracle:較復雜,同時提供GUI和命令行,在windowNT和Unix,linux下操作仙童。對數(shù)據(jù)庫管理人員要求較高。

        SYBASE:復雜,使用命令行操作,對數(shù)據(jù)庫管理人員要求較高。

        DB2:操作簡單,同時提供GUI和命令行,在window NT和unix下操作相同。

        Informix:使用和管理復雜,命令行操作,對數(shù)據(jù)庫管理人員要求較高,

        (5)使用風險

        SQLServer:完全重寫的代碼,性能和兼容性有了較大的提高,與Oracle,DB2的性能差距明顯減小。該產(chǎn)品的出臺經(jīng)歷了長期的測試,為產(chǎn)品的安全和穩(wěn)定進行了全面的測試,安全穩(wěn)定性有了明顯的提高。

        ORACEL:長時間的開發(fā)經(jīng)驗,完全向下兼容,可以安全的進行數(shù)據(jù)庫的升級,在企業(yè),政府中的到廣泛的應用。并且如果在Window NT上無法媽祖數(shù)據(jù)的妖氣,可以安全的把數(shù)據(jù)轉(zhuǎn)到unix上來。

        SYBASE:開發(fā)時間長,升級較復雜,穩(wěn)定性較好,數(shù)據(jù)安全有保障。風險小。在安全要求極高的銀行,證券行業(yè)得到了廣發(fā)的'應用。

        DB2:在巨型企業(yè)得到廣泛的應用,向下兼容性好,風險小。

        Informix:開放時間較長,升級較復雜,穩(wěn)定性較好,數(shù)據(jù)安全有保障。風險小,在安全要求極高的銀行,證券行業(yè)得到廣泛應用。

        (6)開放性

        SQL Server:只能在Window上運行,C/S結(jié)果,只支持window客戶,可以用

        ADO,DAO,OLEDB,ODBC連接。Windows9X系列產(chǎn)品是偏重于桌面應用,NTserver使用各種大小大小型企業(yè)。操作系統(tǒng)的穩(wěn)定對數(shù)據(jù)庫是十分重要的。Window平臺的可靠性,安全性警告了最高級別的C2認證的。在處理大數(shù)據(jù)量的關鍵業(yè)務時提供了較好的性能。

        ORACLE:能在所有主流平臺上運行。完全支持所有的工業(yè)標準。蠶蛹完全開放策略。多層次萬羅計算,支持多種工業(yè)標準,可以用ODBC,JDBC,OCI等網(wǎng)絡客戶連接?梢允箍蛻暨x擇最適合的解決方案。對開發(fā)商全力支持。

        SYBASE:能在所有主流平臺上運行,在銀行中得到廣泛的應用。

        DB2:有較好的開放性,最適合海量數(shù)據(jù)?缙脚_,多層結(jié)構(gòu),支持ODBC、JDBC等客戶。在大型的國際企業(yè)中得到最為廣泛的應用,在全球的500家最大的企業(yè)中,大部分采用DB2數(shù)據(jù)庫服務器。

        Informix:僅運行在unix平臺,包括SUBOS、HPUX、ALFAOSF/1。在銀行中得到廣泛應用。

        (7)易維護性和價格

        SQL Server:從易維護性和價格上SQL Server明顯占優(yōu)勢,基于Microsoft的一貫風格,SQL Server的的圖形管理界面帶來了明顯的易用性,微軟的數(shù)據(jù)庫管理員培訓進行的比較充分,可以輕松的找到很好的數(shù)據(jù)庫管理員,數(shù)據(jù)庫管理價格也是很低的,SQL Server的價格也是很低的,但是在license的購買商會抬高價格?傮w來說SQL Server的價格在商用數(shù)據(jù)庫中是最低的。

        Oracle:從易維護性和價格上來說Oracle的價格是比較高的,管理比較復雜,由于Oracle的應用廣泛,經(jīng)驗豐富得問Oracle數(shù)據(jù)庫管理員可以比較容易的找到,從而實現(xiàn)Oracle的良好管理。因此oracle的性能價格比在商用數(shù)據(jù)庫中是最好的。

        Sybase:sybase的價格是比較低,但是sybase在企業(yè)和政府中的應用是較少的,很難找到經(jīng)驗豐富的管理員,運行管理費用較高。

        DB2:價格高,管理員少,在中國的應用少,運行管理費用高,適用于大興企業(yè)的數(shù)據(jù)倉庫應用。

        Informix:價格在這些系統(tǒng)中居于中間,與sybase一樣,在企業(yè)與政府中應用較少,僅在銀行在得到了廣范應用。經(jīng)驗豐富的管理人員較少,運行費用高。

        (8)數(shù)據(jù)庫的二次開發(fā)

        SQLServer:數(shù)據(jù)庫的二次開發(fā)工具很多,包括Visual C++,Visual Basic等開發(fā)工具,可以實現(xiàn)很好的Windows應用,開發(fā)容易。

        Oracle:數(shù)據(jù)庫的二次開發(fā)工具很多,涵蓋了數(shù)據(jù)庫開發(fā)的各個階段,中國的經(jīng)驗豐富的人員很少。

        Informin:在銀行項目中廣泛的應用,但是在中國的經(jīng)驗豐富的人很少。

      【java軟件開發(fā)工程師面試題寶典】相關文章:

      java軟件開發(fā)工程師面試題04-05

      java初級工程師面試題04-05

      高級java工程師面試題04-06

      java高級工程師面試題及答案04-05

      java經(jīng)典面試題目12-09

      java測試面試題11-25

      java最新面試題04-05

      java基礎面試題04-04

      java集合面試題04-04