• <sub id="h4knl"><ol id="h4knl"></ol></sub>
    <sup id="h4knl"></sup>
      <sub id="h4knl"></sub>

      <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
      1. <strong id="h4knl"></strong>

      2. Java工程師面試常考試題及答案

        時間:2024-10-29 09:03:45 曉鳳 J2EE培訓 我要投稿
        • 相關推薦

        Java工程師面試常考試題及答案

          在日常學習、工作生活中,只要有考核要求,就會有試題,借助試題可以更好地對被考核者的知識才能進行考察測驗。大家知道什么樣的試題才是好試題嗎?下面是小編為大家整理的Java工程師面試常考試題及答案,僅供參考,希望能夠幫助到大家。

        Java工程師面試常考試題及答案

          Java工程師面試常考試題及答案 1

          1.Hibernate工作原理及為什么要用?

          原理: 1.讀取并解析配置文件 2.讀取并解析映射信息,創建SessionFactory 3.打開Session 4.創建事務Transation 5.持久化操作 6.提交事務 7.關閉Session 8.關閉SesstionFactory

          為什么要用: 1. 對JDBC訪問數據庫的代碼做了封裝,大大簡化了數據訪問層繁瑣的重復性代碼。 2. Hibernate是一個基于JDBC的主流持久化框架,是一個優秀的ORM實現。他很大程度的簡化DAO層的編碼工作 3. hibernate使用Java反射機制,而不是字節碼增強程序來實現透明性。 4. hibernate的性能非常好,因為它是個輕量級框架。映射的靈活性很出色。它支持各種關系數據庫,從一對一到多對多的各種復雜關系。

          2.Hibernate是如何延遲加載?

          1. Hibernate2延遲加載實現:a)實體對象 b)集合(Collection)

          2. Hibernate3 提供了屬性的延遲加載功能 當Hibernate在查詢數據的時候,數據并沒有存在與內存中,當程序真正對數據的操作時,對象才存在與內存中,就實現了延遲加載,他節省了服務器的內存開銷,從而提高了服務器的性能。

          3.Hibernate中怎樣實現類之間的'關系?(如:一對多、多對多的關系)

          類與類之間的關系主要體現在表與表之間的關系進行操作,它們都是對對象進行操作,我們程序中把所有的表與類都映射在一起,它們通過配置文件中的many-to-one、one-to-many、many-to-many

          4.Struts1流程:

          1、客戶端瀏覽器發出HTTP請求。2、根據web.xml配置,該請求被ActionServlet接收。3、根據struts-config.xml配置, ActionServlet先將請求中的參數填充到ActionForm中,然后ActionServlet再將請求發送到Action 進行處理。4、是否驗證,需要驗證則調用ActionForm的validate方法,驗證失敗則跳轉到input,成功則繼續。5、Action從ActionForm獲得數據,調用javabean 中的業務方法處理數據。6、Action返回ActionForward對象,跳轉到相應JSP頁面或Action。7、返回HTTP響應到客戶端瀏覽器。

          MVC設計模式:modal:“模型” 也稱業務邏輯,是正真完成任務的代碼,相當與JavaBeanview:視圖,其實就是顯示界面,相當于JSPcontroller:控制器,他控制模型和視圖的交互過程,相當于servletstruts1是基于MVC設計模式hibernate是基于ORM對象關系映射

          5.struts是什么?

          struts1是基于JSP和servlet的一個開源的Web應用框架,使用的是MVC的設計模式struts2是基于webwork技術的框架,是sun和webwork公司聯手開發的一個功能非常齊全的框架,struts2和struts1沒有任何關系,是一個全新的框架

          6.spring是什么?

          spring是一個集成了許多第三方框架的大雜燴,其核心技術是IOC(控制反轉,也稱依賴注入)和AOP(面向切面編程)

          7.hibernate是什么?

          hibernate是基于ORM對象關系映射(完成對象數據到關系數據映射的機制)實現的,做數據持久化的工具

          8.JSF是什么?

          JavaServer Face是基于組件的web開發框架,跟sturts差不多的框架

          9.數據庫里面的索引和約束是什么?

          索引是為了提高數據的檢索速度,索引是建立在數據表上,根據一個或多個字段建立的約束是為了保持數據的完整性,約束有非空約束,主鍵約束,外鍵約束等等。

          10.spring是什么

          這個問題,往往可以通過我們為什么要使用spring這個問題來切入:AOP 讓開發人員可以創建非行為性的關注點,稱為橫切關注點,并將它們插入到應用程序代碼中。使用 AOP 后,公共服務 (比 如日志、持久性、事務等)就可以分解成方面并應用到域對象上,同時不會增加域對象的對象模型的復雜性。 IOC 允許創建一個可以構造對象的應用環境,然后向這些對象傳遞它們的協作對象。正如單詞 倒置 所表明的,IOC 就像反 過來的 JNDI。沒有使用一堆抽象工廠、服務定位器、單元素(singleton)和直接構造(straight construction),每一個對象都是用其協作對象構造的。因此是由容器管理協作對象(collaborator)。 Spring即使一個AOP框架,也是一IOC容器。 Spring 最好的地方是它有助于您替換對象。有了 Spring,只要用 JavaBean 屬性和配置文件加入依賴性(協作對象)。然后可以很容易地在需要時替換具有類似接口的協作對象。

          11.用自己的話簡要闡述struts2的執行流程。

          Struts 2框架本身大致可以分為3個部分:核心控制器FilterDispatcher、業務控制器Action和用戶實現的企業業務邏輯組件。核心控制器FilterDispatcher是Struts 2框架的基礎,包含了框架內部的控制流程和處理機制。業務控制器Action和業務邏輯組件是需要用戶來自己實現的。用戶在開發Action和業務邏輯組件的同時,還需要編寫相關的配置文件,供核心控制器FilterDispatcher來使用。

          Struts 2的工作流程相對于Struts 1要簡單,與WebWork框架基本相同,所以說Struts 2是WebWork的升級版本。基本簡要流程如下:1、客戶端瀏覽器發出HTTP請求。2、根據web.xml配置,該請求被FilterDispatcher接收。3、根據struts.xml配置,找到需要調用的Action類和方法, 并通過IoC方式,將值注入給Aciton。4、Action調用業務邏輯組件處理業務邏輯,這一步包含表單驗證。5、Action執行完畢,根據struts.xml中的配置找到對應的返回結果result,并跳轉到相應頁面。6、返回HTTP響應到客戶端瀏覽器。

          Java工程師面試常考試題及答案 2

          一.選擇題(30分)

          1.下列哪些情況可以終止當前線程的運行?

          a. 拋出一個異常時。

          b. 當該線程調用sleep()方法時。

          c. 當創建一個新線程時。(與當前進程無關)

          d. 當一個優先級高的線程進入就緒狀態時。

          2. 下面哪些為構造函數的特性定義

          a. 在類中聲明構造函數時,名稱應該與類名相同

          b. 具有重載特性,可以建立多個相同的名稱

          c. 使用類建立新對象時,會自動執行構造函數,因此在構造函

          數內設定變量的初值或進行內存分配

          d. 以上都是

          3. 關于異常處理機制的敘述哪些正確

          a. catch部分捕捉到異常情況時,才會執行finally部分(無論是否有毛病,都執行)

          b. 當try區段的程序發生異常時,才會執行catch區段的程序

          c. 不論程序是否發生錯誤及捕捉到異常情況,都會執行finally部分

          d. 以上都是

          4. 下列關于接口的敘述中哪些是正確的

          a. 接口中的數據必須設定初值(就是接口中的常量)

          b. 接口中的方法都是抽象方法

          c. 接口可以聲明引用

          d. 以上都正確

          5.Java語言中,方法的重寫(Overriding)和重載(Overloading)是多態性的不同表現。下邊哪些說法是對的?

          A. 重寫是父類與子類之間多態性的一種表現。

          B. 重寫是一個類中多態性的一種表現。

          C. 重載是一個類中多態性的一種表現。

          D. 重載是父類與子類之間多態性的一種表現。

          6.在Struts應用的視圖中包含哪些組件?

          A. JSP

          B. Servlet

          C. ActionServlet

          D. Action

          E. 代表業務邏輯或業務數據的JavaBean

          F. EJB

          G. 客戶化標簽

          7. struts框架中,關于FormBean,下列哪些說法是正確的:

          A FormBean是一種數據bean,主要用來封裝表單提交上來的數據,并把這些數據傳遞給Action

          B 在FormBean中可以對頁面上傳遞來的參數進行一下格式上的驗證,這種驗證是一種客戶端的驗證

          C 用戶每次提交表單,都會產生一個新的FormBean實例

          D 動態FormBean不能進行驗證操作

          8哪些方法可以進行servlet的調試?()

          A、使用打印語句; 在桌面計算機上運行服務器

          B、使用Apache Log4J

          C、使用IDE集成的調試器

          D、直接查看HTML源碼 ????

          E、返回錯誤頁面給客戶

          9、下面關于servlet的功用說法正確的有哪些?()

          A、讀取客戶程序發送來的顯式數據

          B、讀取客戶程序發送來的隱式數據

          C、生成相應的結果

          D、發送顯式的數據給客戶程序

          E、發送隱式的數據給客戶程序

          10、下面關于session的用法哪些是錯誤的?(

          A、HttpSession session = new HttpSession();

          request.getSession();

          B、String haha =(String) session.getParameter(Attribute)(“haha”);

          C、session.removeAttribute(“haha”);

          D、session. setAttribute(“haha”,值);

          11、關于說法正確的有哪些?()

          A、URL的輸出在請求時入到JSP頁面中

          B、不能含有影響整個頁面的JSP內容

          C、被包含文件改變后不需更改使用它的頁面

          D、被包含文件更改后,需要手動地更新使用它的頁面(不需要手動更新)

          12、關于bean的`說法正確的有哪些?()

          A、具備一個零參數(空)的構造函數(不是必須的)

          B、不應該有公開的實例變量(字段)

          C、所有的屬性都必須通過getXxx和setXxx方法來訪問

          D、布爾型的屬性使用isXxx,而非getXxx

          13、下面關于MVC說法錯誤的有哪些?()

          A、必須使用復雜的框架

          B、使用內建的RequestDispatcher能夠很好地實現MVC

          C、當其中一個組件發生變化的時候,MVC影響整個系統的設計

          D、我們可以用MVC來處理單個請求

          14、下面的標簽中哪些是JSTL標簽?()

          15、struts框架,錯誤的是,下面那些說法正確?

          A Struts中無法完成上傳功能

          B Struts框架基于MVC模式

          C Struts框架容易引起流程復雜、結構不清晰等問題(清晰)

          D Struts可以有效地降低項目的類文件數目

          二、填空題( 5分)

          1、調用函數MOD(123,10)返回值為___。

          2、select round (123.67,1) from dual;這語句輸出值為______。

          3、創建一個臨時替代變量使用的字符是_____。

          4、若v_comm = 2800, X := NVL (V_comm,0) ,則X的值為____。

          5、調用函數INSTR(‘Here you are’,’er’)返回值為___。

          三、判斷題(10分)

          1、WHERE子句限制行記錄,也可以指定限制分組結果的條件。 ()

          2、具有UNIQUE約束的列不能包含多個空值。 ()

          3、DATE型數據中包含著時間值。 ()

          4、具有外鍵約束的列可以包含空值。 ()

          5、如果在類型為4)的列中輸入“hello”,則只能存儲hell。 ()

          6、含有Group by子句的查詢,其結果是排好序的。 ()

          7、定義游標時,其中的select語句不能使用order by子句。(子查詢

          不能用) ()

          9、觸發器一定會被激發。 、過程可以有返回值。 ()

          10、instead

          of觸發器只是基于視圖的。

          四、寫出相應的SQL語句(括號內為列名)(10分)

          1、查詢從事各工作(JOB)的員工人數。

          2、查詢與員工SMITH在同一部門(DEPTNO)的員工的姓名(ENAME),工資(SAL)和部門。

          3、查詢所有員工的姓名(ENAME),工資(SAL)和工資等級(GRADE)。

          4、查詢獲得工資(SAL)最高的3個員工信息。

          5、查詢所有員工的姓名(ENAME)及其主管姓名(ENAME)。

          五、簡答題(15分)

          1. 在PL/SQL程序中,進行用戶自定義異常處理的3個步驟是

          什么?

          2. 面向對象的特征有哪些方面?并簡要介紹

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

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

          4 .struts1.0和struts2.0的區別?如何控制兩種框架中的單例模式?

          5. 描述一下如何在struts1.0實現國際化,以兩國語言(中文,英文)為例:

          6.struts中怎么配置form-bean、action

          7. Hibernate自帶的分頁機制是什么?如果不使用Hibernate自帶的分頁,則采用什么方式分頁?

          8. hibernate中一對多配置文件返回的是什么?

          9.什么樣的數據適合存放到第二級緩存中?

          10你一般用spring做什么?

          11項目中如何體現Spring中的切面編程,具體說明。

          12 觸發觸發器的數據操作有哪些?

          13 解釋視圖的含義以及使用視圖的好處。

          14 簡述ORACLE中5種約束及其作用。

          15 ORACLE中過程和函數的異同點。

          六、編程題(30分)

          1、創建一個PL/SQL塊,根據用戶輸入的編號,在emp表中查詢出該編號的員工姓名、部門號及其主管編號,要有異常處理。

          2、創建一個PL/SQL塊,根據用戶輸入的工作,從emp表中逐條輸出從事這一工作的每位員工的編號、姓名和受雇如期,每條信息格式如下:(用游標實現)

          編號 姓名 受雇日期

          7751 JOHN 95-12-31

          3、編寫一個函數,用于判斷EMP表中某一工作(JOB)是否存在,若EMP表存在此工作名稱,則返回TRUE,否則返回FALSE。

          4、編寫一觸發器,在EMP表執行插入或修改前被激發,此觸發器將對員工的工資(SAL)超過5000進行報錯,不能插入或修改,不超

          過5000的才將員工編號、工作及當時的日期(SYSDATE)插入UP_EMP表

          (注:此表已建好,表結構為UP_EMP(EMPNO NUMBER(4),SAL NUMBER(7,2),UDETE DATE))

          5下面程序的輸出結果是多少?

          importjava.util.Date;

          public class Test extends Date{

          public static void main(String[] args) {

          new Test().test();}

          public void test(){

          System.out.println(super.getClass().getName());}}

          6下面的程序代碼輸出的結果是多少? public class smallT

          {}

          public static void main(String args[]) { } public int get() { } try { } finally { } return 2 ; return 1 ; smallT t = new smallT(); int b = t.get(); System.out.println(b);

          7子線程循環10次,接著主線程循環100,接著又回到子線程循環10次,接著再回到主線程又循環100,如此循環50次,請寫出程序。

          8去掉一個Vector集合中重復的元素

          9有一個字符串,其中包含中文字符、英文字符和數字字符,請統計和打印出各個字符的個數

          10. xxx公司的sql面試

          Table EMPLOYEES Structure:

          EMPLOYEE_ID NUMBER Primary Key,

          FIRST_NAME VARCHAR2(25),

          LAST_NAME VARCHAR2(25),

          Salary number(8,2),

          HiredDate DATE,

          Departmentid number(2)

          Table Departments Structure:

          Departmentid number(2) Primary Key,

          DepartmentName VARCHAR2(25).

          (1)基于上述EMPLOYEES表寫出查詢:寫出雇用日期在今年的,或者工資在[1000,2000]之間的,或者員工姓名(last_name)以’Obama’打頭的所有員工,列出這些員工的全部個人信息。

          (2) 基于上述EMPLOYEES表寫出查詢:查出部門平均工資大于1800

          元的部門的所有員工,列出這些員工的全部個人信息。()

          (3) 基于上述EMPLOYEES表寫出查詢:查出個人工資高于其所在部門平均工資的員工,列出這些員工的全部個人信息及該員工工資高出部門平均工資百分比。

          參考答案

          1答案:ABD

          2答案: D

          3答案:BC

          4答案:AB

          5答案AC

          6答案:A,G

          7答案:A

          8A B C D E

          9A B C D E

          10A B D

          11A B C

          12B D

          13A C

          14A B C

          15A B C

          16答案:C

          二 填空

          3 123.7 & 2800 2

          三判斷

          × ×√√√√×√×√

          四寫出相應的SQL語句

          1Select job,count(*) from emp group by job;

          2Select ename,sal,deptno from emp where deptno=(select deptno from emp where ename=’SMITH’);

          3Select ename,sal,grade from emp,salgrade where sal between losal and hisal;

          4Select * from (select * from emp order by sal desc) where rownum<=3;

          5Select e1.ename empname,e2.ename mgrname from emp e1,emp e2 where e1.mgr=e2.empno;

          五簡答

          可以通過聲明和發布來截獲自定義異常。

          一、在聲明部分為聲明自定義異常名。

          二、在執行部分使用 RAISE 語句顯式地發布異常。

          三、在相應的異常處理例程中引用已聲明的異常。

          2(1).抽象:

          抽象就是忽略一個主題中與當前目標無關的那些方面,以便更充分地注意與當前目標有關的方面。抽象并不打算了解全部問題,而只是選擇其中的一部分,暫時不用部分細節。抽象包括兩個方面,一是過程抽象,二是數據抽象。

          (2).繼承:

          繼承是一種聯結類的層次模型,并且允許和鼓勵類的重用,它提供了一種明確表述共性的方法。對象的一個新類可以從現有的類中派生,這個過程稱為類繼承。新類繼承了原始類的特性, 新類稱為原始類的派生類(子類),而原始類稱為新類的基類(父類)。派生類可以從它的基類那里繼承方法和實例變量,并且類可以修改或增加新的方法使之更適合特殊的需要。

          (3).封裝:

          封裝是把過程和數據包圍起來,對數據的訪問只能通過已定義的界面。面向對象計算始于這個基本概念,即現實世界可以被描繪成一系列完全自治、封裝的對象,這些對象通過一個受保護的接口訪問其他對象。

          (4). 多態性:

          多態性是指允許不同類的對象對同一消息作出響應。多態性包括參數化多態性和包含多態性。多態性語言具有靈活、抽象、行為共享、代碼共享的優勢,很好的解決了應用程序函數同名問題。

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

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

          4a、Action類:

          struts1.2要求Action類繼承一個基類。struts2.0 Action要求繼承ActionSupport基類 b、線程模式

          struts1.2 Action是單例模式的并且必須是線程安全的,因為僅有一個Action的實例來處理所有的請求。

          單例策略限制了Struts1.2 Action能做的事情,并且開發時特別小心。Action資源必須是線程安全的或同步的。

          struts2.0 Action為每一個請求產生一個實例,因此沒有線程安全問題。

          c、Servlet依賴

          struts1.2 Action依賴于Servlet API,因為當一個Action被調用時HttpServletRequest和HttpServletResponse被傳遞給execut方法。

          struts2.0 Action不依賴于容器,允許Action脫離容器單獨測試。如果需要,Struts2 Action仍

          然可以訪問初始的Request和Response。

          但是,其他的元素減少或者消除了直接訪問HttpServletRequest和HttpServletResponse的必要性。

          d、可測性

          測試struts1.2 Action的一個主要問題是execute方法暴露了Servlet API(這使得測試要依賴于容器)。一個第三方擴展:struts TestCase

          提供了一套struts1.2的模擬對象來進行測試。

          Struts2.0 Action可以通過初始化、設置屬性、調用方法來測試,“依賴注入”也使得測試更容易。

          Java工程師面試常考試題及答案 3

          java面試題目1

          1.談談對XML的理解?說明Web應用中Web.xml文件的作用?

          解答:XML(Extensible Markup Language)即可擴展標記語言,它與HTML一樣,都是SGML(Standard Generalized Markup Language,標準通用標記語言)。Xml是Internet環境中跨平臺的,依賴于內容的技術,是當前處理結構化文檔信息的有力工具。擴展標記語言XML是一種簡單的數據存儲語言,使用一系列簡單的標記描述數據,而這些標記可以用方便的方式建立,雖然XML占用的空間比二進制數據要占用更多的空間,但XML極其簡單易于掌握和使用。

          web.xml的作用是配置歡迎頁,servlet,filter,listener等的。

          2.jsp有哪些內置對象?作用分別是什么?(至少三個)

          解答:

          1)request表示HttpServletRequest對象。它包含了有關瀏覽器請求的信息,并且提供了幾個用于獲取cookie, header和session數據的有用的方法。

          2)response表示HttpServletResponse對象,并提供了幾個用于設置送回 瀏覽器的響應的方法(如cookies,頭信息等)。

          3)out對象是javax.jsp.JspWriter的一個實例,并提供了幾個方法使你能用于向瀏覽器回送輸出結果。

          4)pageContext表示一個javax.servlet.jsp.PageContext對象。它是用于方便存取各種范圍的名字空間、servlet相關的對象的API,并且包裝了通用的servlet相關功能的方法。

          5)session表示一個請求的javax.servlet.http.HttpSession對象。Session可以存貯用戶的狀態信息。

          6)application 表示一個javax.servle.ServletContext對象。這有助于查找有關servlet引擎和servlet環境的信息。

          7)config表示一個javax.servlet.ServletConfig對象。該對象用于存取servlet實例的初始化參數。

          8)page表示從該頁面產生的`一個servlet實例。

          9)exception 針對錯誤網頁,未捕捉的例外

          3.事務是什么?有哪些屬性,并簡要說明這些屬性的含義。

          解答:事務(Transaction)是訪問并可能更新數據庫中各種數據項的一個程序執行單元(unit)。

          事務通常由高級數據庫操縱語言或編程語言(如SQL,C++或Java)書寫的用戶程序的執行所引起,并用形如begin transaction和end transaction語句(或函數調用)來界定。事務由事務開始(begin transaction)和事務結束(end transaction)之間執行的全體操作組成。

          事務應該具有4個屬性:原子性、一致性、隔離性、持續性。這四個屬性通常稱為ACID特性。

          原子性(atomicity)。一個事務是一個不可分割的工作單位,事務中包括的諸操作要么都做,要么都不做。

          一致性(consistency)。事務必須是使數據庫從一個一致性狀態變到另一個一致性狀態。一致性與原子性是密切相關的。

          隔離性(isolation)。一個事務的執行不能被其他事務干擾。即一個事務內部的操作及使用的數據對并發的其他事務是隔離的,并發執行的各個事務之間不能互相干擾。

          持久性(durability)。持續性也稱永久性(permanence),指一個事務一旦提交,它對數據庫中數據的改變就應該是永久性的。接下來的其他操作或故障不應該對其有任何影響。

          4、Collection 和 Collections的區別?

          解答:Collection是java.util下的接口,它是各種集合的父接口,繼承于它的接口主要有Set 和List;Collections是個java.util下的類,是針對集合的幫助類,提供一系列靜態方法實現對各種集合的搜索、排序、線程安全化等操作。

          5、HashMap與TreeMap的區別?

          解答:HashMap通過hashcode對其內容進行快速查找,而TreeMap中所有的元素都保持著某種固定的順序,如果你需要得到一個有序的結果你就應該使用TreeMap(HashMap中元素的排列順序是不固定的)。

          6、ArrayList和Vector的區別?

          解答:同步性:Vector是線程安全的,也就是說是同步的,而ArrayList是線程不安全的,不是同步的;數據增長:當需要增長時,Vector默認增長為原來一培,而ArrayList卻是原來的一半。

        《&.doc》
        将本文的Word文档下载到电脑,方便收藏和打印
        推荐度:
        点击下载文档

        【Java工程師面試常考試題及答案】相關文章:

        Java工程師面試題及答案10-25

        java程序員面試考試題及答案03-10

        Java高級工程師面試題及答案03-24

        2016最新java考試題庫及答案03-09

        java面試題2017及答案03-06

        Java工程師面試題03-29

        Java main方法面試題及答案03-14

        NIIT認證Java面試題及答案03-30

        高級Java面試題及答案201602-26

        国产高潮无套免费视频_久久九九兔免费精品6_99精品热6080YY久久_国产91久久久久久无码
      3. <sub id="h4knl"><ol id="h4knl"></ol></sub>
        <sup id="h4knl"></sup>
          <sub id="h4knl"></sub>

          <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
          1. <strong id="h4knl"></strong>

          2. 色鬼色无需播放器在线视频 | 亚洲视频在线香蕉 | 亚洲中文字幕欧美另类 | 亚洲国产原创私拍精品 | 性爱网站网站在线观看 | 午夜福利亚洲国产精品 |

            Java工程師面試常考試題及答案

              在日常學習、工作生活中,只要有考核要求,就會有試題,借助試題可以更好地對被考核者的知識才能進行考察測驗。大家知道什么樣的試題才是好試題嗎?下面是小編為大家整理的Java工程師面試常考試題及答案,僅供參考,希望能夠幫助到大家。

            Java工程師面試常考試題及答案

              Java工程師面試常考試題及答案 1

              1.Hibernate工作原理及為什么要用?

              原理: 1.讀取并解析配置文件 2.讀取并解析映射信息,創建SessionFactory 3.打開Session 4.創建事務Transation 5.持久化操作 6.提交事務 7.關閉Session 8.關閉SesstionFactory

              為什么要用: 1. 對JDBC訪問數據庫的代碼做了封裝,大大簡化了數據訪問層繁瑣的重復性代碼。 2. Hibernate是一個基于JDBC的主流持久化框架,是一個優秀的ORM實現。他很大程度的簡化DAO層的編碼工作 3. hibernate使用Java反射機制,而不是字節碼增強程序來實現透明性。 4. hibernate的性能非常好,因為它是個輕量級框架。映射的靈活性很出色。它支持各種關系數據庫,從一對一到多對多的各種復雜關系。

              2.Hibernate是如何延遲加載?

              1. Hibernate2延遲加載實現:a)實體對象 b)集合(Collection)

              2. Hibernate3 提供了屬性的延遲加載功能 當Hibernate在查詢數據的時候,數據并沒有存在與內存中,當程序真正對數據的操作時,對象才存在與內存中,就實現了延遲加載,他節省了服務器的內存開銷,從而提高了服務器的性能。

              3.Hibernate中怎樣實現類之間的'關系?(如:一對多、多對多的關系)

              類與類之間的關系主要體現在表與表之間的關系進行操作,它們都是對對象進行操作,我們程序中把所有的表與類都映射在一起,它們通過配置文件中的many-to-one、one-to-many、many-to-many

              4.Struts1流程:

              1、客戶端瀏覽器發出HTTP請求。2、根據web.xml配置,該請求被ActionServlet接收。3、根據struts-config.xml配置, ActionServlet先將請求中的參數填充到ActionForm中,然后ActionServlet再將請求發送到Action 進行處理。4、是否驗證,需要驗證則調用ActionForm的validate方法,驗證失敗則跳轉到input,成功則繼續。5、Action從ActionForm獲得數據,調用javabean 中的業務方法處理數據。6、Action返回ActionForward對象,跳轉到相應JSP頁面或Action。7、返回HTTP響應到客戶端瀏覽器。

              MVC設計模式:modal:“模型” 也稱業務邏輯,是正真完成任務的代碼,相當與JavaBeanview:視圖,其實就是顯示界面,相當于JSPcontroller:控制器,他控制模型和視圖的交互過程,相當于servletstruts1是基于MVC設計模式hibernate是基于ORM對象關系映射

              5.struts是什么?

              struts1是基于JSP和servlet的一個開源的Web應用框架,使用的是MVC的設計模式struts2是基于webwork技術的框架,是sun和webwork公司聯手開發的一個功能非常齊全的框架,struts2和struts1沒有任何關系,是一個全新的框架

              6.spring是什么?

              spring是一個集成了許多第三方框架的大雜燴,其核心技術是IOC(控制反轉,也稱依賴注入)和AOP(面向切面編程)

              7.hibernate是什么?

              hibernate是基于ORM對象關系映射(完成對象數據到關系數據映射的機制)實現的,做數據持久化的工具

              8.JSF是什么?

              JavaServer Face是基于組件的web開發框架,跟sturts差不多的框架

              9.數據庫里面的索引和約束是什么?

              索引是為了提高數據的檢索速度,索引是建立在數據表上,根據一個或多個字段建立的約束是為了保持數據的完整性,約束有非空約束,主鍵約束,外鍵約束等等。

              10.spring是什么

              這個問題,往往可以通過我們為什么要使用spring這個問題來切入:AOP 讓開發人員可以創建非行為性的關注點,稱為橫切關注點,并將它們插入到應用程序代碼中。使用 AOP 后,公共服務 (比 如日志、持久性、事務等)就可以分解成方面并應用到域對象上,同時不會增加域對象的對象模型的復雜性。 IOC 允許創建一個可以構造對象的應用環境,然后向這些對象傳遞它們的協作對象。正如單詞 倒置 所表明的,IOC 就像反 過來的 JNDI。沒有使用一堆抽象工廠、服務定位器、單元素(singleton)和直接構造(straight construction),每一個對象都是用其協作對象構造的。因此是由容器管理協作對象(collaborator)。 Spring即使一個AOP框架,也是一IOC容器。 Spring 最好的地方是它有助于您替換對象。有了 Spring,只要用 JavaBean 屬性和配置文件加入依賴性(協作對象)。然后可以很容易地在需要時替換具有類似接口的協作對象。

              11.用自己的話簡要闡述struts2的執行流程。

              Struts 2框架本身大致可以分為3個部分:核心控制器FilterDispatcher、業務控制器Action和用戶實現的企業業務邏輯組件。核心控制器FilterDispatcher是Struts 2框架的基礎,包含了框架內部的控制流程和處理機制。業務控制器Action和業務邏輯組件是需要用戶來自己實現的。用戶在開發Action和業務邏輯組件的同時,還需要編寫相關的配置文件,供核心控制器FilterDispatcher來使用。

              Struts 2的工作流程相對于Struts 1要簡單,與WebWork框架基本相同,所以說Struts 2是WebWork的升級版本。基本簡要流程如下:1、客戶端瀏覽器發出HTTP請求。2、根據web.xml配置,該請求被FilterDispatcher接收。3、根據struts.xml配置,找到需要調用的Action類和方法, 并通過IoC方式,將值注入給Aciton。4、Action調用業務邏輯組件處理業務邏輯,這一步包含表單驗證。5、Action執行完畢,根據struts.xml中的配置找到對應的返回結果result,并跳轉到相應頁面。6、返回HTTP響應到客戶端瀏覽器。

              Java工程師面試常考試題及答案 2

              一.選擇題(30分)

              1.下列哪些情況可以終止當前線程的運行?

              a. 拋出一個異常時。

              b. 當該線程調用sleep()方法時。

              c. 當創建一個新線程時。(與當前進程無關)

              d. 當一個優先級高的線程進入就緒狀態時。

              2. 下面哪些為構造函數的特性定義

              a. 在類中聲明構造函數時,名稱應該與類名相同

              b. 具有重載特性,可以建立多個相同的名稱

              c. 使用類建立新對象時,會自動執行構造函數,因此在構造函

              數內設定變量的初值或進行內存分配

              d. 以上都是

              3. 關于異常處理機制的敘述哪些正確

              a. catch部分捕捉到異常情況時,才會執行finally部分(無論是否有毛病,都執行)

              b. 當try區段的程序發生異常時,才會執行catch區段的程序

              c. 不論程序是否發生錯誤及捕捉到異常情況,都會執行finally部分

              d. 以上都是

              4. 下列關于接口的敘述中哪些是正確的

              a. 接口中的數據必須設定初值(就是接口中的常量)

              b. 接口中的方法都是抽象方法

              c. 接口可以聲明引用

              d. 以上都正確

              5.Java語言中,方法的重寫(Overriding)和重載(Overloading)是多態性的不同表現。下邊哪些說法是對的?

              A. 重寫是父類與子類之間多態性的一種表現。

              B. 重寫是一個類中多態性的一種表現。

              C. 重載是一個類中多態性的一種表現。

              D. 重載是父類與子類之間多態性的一種表現。

              6.在Struts應用的視圖中包含哪些組件?

              A. JSP

              B. Servlet

              C. ActionServlet

              D. Action

              E. 代表業務邏輯或業務數據的JavaBean

              F. EJB

              G. 客戶化標簽

              7. struts框架中,關于FormBean,下列哪些說法是正確的:

              A FormBean是一種數據bean,主要用來封裝表單提交上來的數據,并把這些數據傳遞給Action

              B 在FormBean中可以對頁面上傳遞來的參數進行一下格式上的驗證,這種驗證是一種客戶端的驗證

              C 用戶每次提交表單,都會產生一個新的FormBean實例

              D 動態FormBean不能進行驗證操作

              8哪些方法可以進行servlet的調試?()

              A、使用打印語句; 在桌面計算機上運行服務器

              B、使用Apache Log4J

              C、使用IDE集成的調試器

              D、直接查看HTML源碼 ????

              E、返回錯誤頁面給客戶

              9、下面關于servlet的功用說法正確的有哪些?()

              A、讀取客戶程序發送來的顯式數據

              B、讀取客戶程序發送來的隱式數據

              C、生成相應的結果

              D、發送顯式的數據給客戶程序

              E、發送隱式的數據給客戶程序

              10、下面關于session的用法哪些是錯誤的?(

              A、HttpSession session = new HttpSession();

              request.getSession();

              B、String haha =(String) session.getParameter(Attribute)(“haha”);

              C、session.removeAttribute(“haha”);

              D、session. setAttribute(“haha”,值);

              11、關于說法正確的有哪些?()

              A、URL的輸出在請求時入到JSP頁面中

              B、不能含有影響整個頁面的JSP內容

              C、被包含文件改變后不需更改使用它的頁面

              D、被包含文件更改后,需要手動地更新使用它的頁面(不需要手動更新)

              12、關于bean的`說法正確的有哪些?()

              A、具備一個零參數(空)的構造函數(不是必須的)

              B、不應該有公開的實例變量(字段)

              C、所有的屬性都必須通過getXxx和setXxx方法來訪問

              D、布爾型的屬性使用isXxx,而非getXxx

              13、下面關于MVC說法錯誤的有哪些?()

              A、必須使用復雜的框架

              B、使用內建的RequestDispatcher能夠很好地實現MVC

              C、當其中一個組件發生變化的時候,MVC影響整個系統的設計

              D、我們可以用MVC來處理單個請求

              14、下面的標簽中哪些是JSTL標簽?()

              15、struts框架,錯誤的是,下面那些說法正確?

              A Struts中無法完成上傳功能

              B Struts框架基于MVC模式

              C Struts框架容易引起流程復雜、結構不清晰等問題(清晰)

              D Struts可以有效地降低項目的類文件數目

              二、填空題( 5分)

              1、調用函數MOD(123,10)返回值為___。

              2、select round (123.67,1) from dual;這語句輸出值為______。

              3、創建一個臨時替代變量使用的字符是_____。

              4、若v_comm = 2800, X := NVL (V_comm,0) ,則X的值為____。

              5、調用函數INSTR(‘Here you are’,’er’)返回值為___。

              三、判斷題(10分)

              1、WHERE子句限制行記錄,也可以指定限制分組結果的條件。 ()

              2、具有UNIQUE約束的列不能包含多個空值。 ()

              3、DATE型數據中包含著時間值。 ()

              4、具有外鍵約束的列可以包含空值。 ()

              5、如果在類型為4)的列中輸入“hello”,則只能存儲hell。 ()

              6、含有Group by子句的查詢,其結果是排好序的。 ()

              7、定義游標時,其中的select語句不能使用order by子句。(子查詢

              不能用) ()

              9、觸發器一定會被激發。 、過程可以有返回值。 ()

              10、instead

              of觸發器只是基于視圖的。

              四、寫出相應的SQL語句(括號內為列名)(10分)

              1、查詢從事各工作(JOB)的員工人數。

              2、查詢與員工SMITH在同一部門(DEPTNO)的員工的姓名(ENAME),工資(SAL)和部門。

              3、查詢所有員工的姓名(ENAME),工資(SAL)和工資等級(GRADE)。

              4、查詢獲得工資(SAL)最高的3個員工信息。

              5、查詢所有員工的姓名(ENAME)及其主管姓名(ENAME)。

              五、簡答題(15分)

              1. 在PL/SQL程序中,進行用戶自定義異常處理的3個步驟是

              什么?

              2. 面向對象的特征有哪些方面?并簡要介紹

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

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

              4 .struts1.0和struts2.0的區別?如何控制兩種框架中的單例模式?

              5. 描述一下如何在struts1.0實現國際化,以兩國語言(中文,英文)為例:

              6.struts中怎么配置form-bean、action

              7. Hibernate自帶的分頁機制是什么?如果不使用Hibernate自帶的分頁,則采用什么方式分頁?

              8. hibernate中一對多配置文件返回的是什么?

              9.什么樣的數據適合存放到第二級緩存中?

              10你一般用spring做什么?

              11項目中如何體現Spring中的切面編程,具體說明。

              12 觸發觸發器的數據操作有哪些?

              13 解釋視圖的含義以及使用視圖的好處。

              14 簡述ORACLE中5種約束及其作用。

              15 ORACLE中過程和函數的異同點。

              六、編程題(30分)

              1、創建一個PL/SQL塊,根據用戶輸入的編號,在emp表中查詢出該編號的員工姓名、部門號及其主管編號,要有異常處理。

              2、創建一個PL/SQL塊,根據用戶輸入的工作,從emp表中逐條輸出從事這一工作的每位員工的編號、姓名和受雇如期,每條信息格式如下:(用游標實現)

              編號 姓名 受雇日期

              7751 JOHN 95-12-31

              3、編寫一個函數,用于判斷EMP表中某一工作(JOB)是否存在,若EMP表存在此工作名稱,則返回TRUE,否則返回FALSE。

              4、編寫一觸發器,在EMP表執行插入或修改前被激發,此觸發器將對員工的工資(SAL)超過5000進行報錯,不能插入或修改,不超

              過5000的才將員工編號、工作及當時的日期(SYSDATE)插入UP_EMP表

              (注:此表已建好,表結構為UP_EMP(EMPNO NUMBER(4),SAL NUMBER(7,2),UDETE DATE))

              5下面程序的輸出結果是多少?

              importjava.util.Date;

              public class Test extends Date{

              public static void main(String[] args) {

              new Test().test();}

              public void test(){

              System.out.println(super.getClass().getName());}}

              6下面的程序代碼輸出的結果是多少? public class smallT

              {}

              public static void main(String args[]) { } public int get() { } try { } finally { } return 2 ; return 1 ; smallT t = new smallT(); int b = t.get(); System.out.println(b);

              7子線程循環10次,接著主線程循環100,接著又回到子線程循環10次,接著再回到主線程又循環100,如此循環50次,請寫出程序。

              8去掉一個Vector集合中重復的元素

              9有一個字符串,其中包含中文字符、英文字符和數字字符,請統計和打印出各個字符的個數

              10. xxx公司的sql面試

              Table EMPLOYEES Structure:

              EMPLOYEE_ID NUMBER Primary Key,

              FIRST_NAME VARCHAR2(25),

              LAST_NAME VARCHAR2(25),

              Salary number(8,2),

              HiredDate DATE,

              Departmentid number(2)

              Table Departments Structure:

              Departmentid number(2) Primary Key,

              DepartmentName VARCHAR2(25).

              (1)基于上述EMPLOYEES表寫出查詢:寫出雇用日期在今年的,或者工資在[1000,2000]之間的,或者員工姓名(last_name)以’Obama’打頭的所有員工,列出這些員工的全部個人信息。

              (2) 基于上述EMPLOYEES表寫出查詢:查出部門平均工資大于1800

              元的部門的所有員工,列出這些員工的全部個人信息。()

              (3) 基于上述EMPLOYEES表寫出查詢:查出個人工資高于其所在部門平均工資的員工,列出這些員工的全部個人信息及該員工工資高出部門平均工資百分比。

              參考答案

              1答案:ABD

              2答案: D

              3答案:BC

              4答案:AB

              5答案AC

              6答案:A,G

              7答案:A

              8A B C D E

              9A B C D E

              10A B D

              11A B C

              12B D

              13A C

              14A B C

              15A B C

              16答案:C

              二 填空

              3 123.7 & 2800 2

              三判斷

              × ×√√√√×√×√

              四寫出相應的SQL語句

              1Select job,count(*) from emp group by job;

              2Select ename,sal,deptno from emp where deptno=(select deptno from emp where ename=’SMITH’);

              3Select ename,sal,grade from emp,salgrade where sal between losal and hisal;

              4Select * from (select * from emp order by sal desc) where rownum<=3;

              5Select e1.ename empname,e2.ename mgrname from emp e1,emp e2 where e1.mgr=e2.empno;

              五簡答

              可以通過聲明和發布來截獲自定義異常。

              一、在聲明部分為聲明自定義異常名。

              二、在執行部分使用 RAISE 語句顯式地發布異常。

              三、在相應的異常處理例程中引用已聲明的異常。

              2(1).抽象:

              抽象就是忽略一個主題中與當前目標無關的那些方面,以便更充分地注意與當前目標有關的方面。抽象并不打算了解全部問題,而只是選擇其中的一部分,暫時不用部分細節。抽象包括兩個方面,一是過程抽象,二是數據抽象。

              (2).繼承:

              繼承是一種聯結類的層次模型,并且允許和鼓勵類的重用,它提供了一種明確表述共性的方法。對象的一個新類可以從現有的類中派生,這個過程稱為類繼承。新類繼承了原始類的特性, 新類稱為原始類的派生類(子類),而原始類稱為新類的基類(父類)。派生類可以從它的基類那里繼承方法和實例變量,并且類可以修改或增加新的方法使之更適合特殊的需要。

              (3).封裝:

              封裝是把過程和數據包圍起來,對數據的訪問只能通過已定義的界面。面向對象計算始于這個基本概念,即現實世界可以被描繪成一系列完全自治、封裝的對象,這些對象通過一個受保護的接口訪問其他對象。

              (4). 多態性:

              多態性是指允許不同類的對象對同一消息作出響應。多態性包括參數化多態性和包含多態性。多態性語言具有靈活、抽象、行為共享、代碼共享的優勢,很好的解決了應用程序函數同名問題。

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

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

              4a、Action類:

              struts1.2要求Action類繼承一個基類。struts2.0 Action要求繼承ActionSupport基類 b、線程模式

              struts1.2 Action是單例模式的并且必須是線程安全的,因為僅有一個Action的實例來處理所有的請求。

              單例策略限制了Struts1.2 Action能做的事情,并且開發時特別小心。Action資源必須是線程安全的或同步的。

              struts2.0 Action為每一個請求產生一個實例,因此沒有線程安全問題。

              c、Servlet依賴

              struts1.2 Action依賴于Servlet API,因為當一個Action被調用時HttpServletRequest和HttpServletResponse被傳遞給execut方法。

              struts2.0 Action不依賴于容器,允許Action脫離容器單獨測試。如果需要,Struts2 Action仍

              然可以訪問初始的Request和Response。

              但是,其他的元素減少或者消除了直接訪問HttpServletRequest和HttpServletResponse的必要性。

              d、可測性

              測試struts1.2 Action的一個主要問題是execute方法暴露了Servlet API(這使得測試要依賴于容器)。一個第三方擴展:struts TestCase

              提供了一套struts1.2的模擬對象來進行測試。

              Struts2.0 Action可以通過初始化、設置屬性、調用方法來測試,“依賴注入”也使得測試更容易。

              Java工程師面試常考試題及答案 3

              java面試題目1

              1.談談對XML的理解?說明Web應用中Web.xml文件的作用?

              解答:XML(Extensible Markup Language)即可擴展標記語言,它與HTML一樣,都是SGML(Standard Generalized Markup Language,標準通用標記語言)。Xml是Internet環境中跨平臺的,依賴于內容的技術,是當前處理結構化文檔信息的有力工具。擴展標記語言XML是一種簡單的數據存儲語言,使用一系列簡單的標記描述數據,而這些標記可以用方便的方式建立,雖然XML占用的空間比二進制數據要占用更多的空間,但XML極其簡單易于掌握和使用。

              web.xml的作用是配置歡迎頁,servlet,filter,listener等的。

              2.jsp有哪些內置對象?作用分別是什么?(至少三個)

              解答:

              1)request表示HttpServletRequest對象。它包含了有關瀏覽器請求的信息,并且提供了幾個用于獲取cookie, header和session數據的有用的方法。

              2)response表示HttpServletResponse對象,并提供了幾個用于設置送回 瀏覽器的響應的方法(如cookies,頭信息等)。

              3)out對象是javax.jsp.JspWriter的一個實例,并提供了幾個方法使你能用于向瀏覽器回送輸出結果。

              4)pageContext表示一個javax.servlet.jsp.PageContext對象。它是用于方便存取各種范圍的名字空間、servlet相關的對象的API,并且包裝了通用的servlet相關功能的方法。

              5)session表示一個請求的javax.servlet.http.HttpSession對象。Session可以存貯用戶的狀態信息。

              6)application 表示一個javax.servle.ServletContext對象。這有助于查找有關servlet引擎和servlet環境的信息。

              7)config表示一個javax.servlet.ServletConfig對象。該對象用于存取servlet實例的初始化參數。

              8)page表示從該頁面產生的`一個servlet實例。

              9)exception 針對錯誤網頁,未捕捉的例外

              3.事務是什么?有哪些屬性,并簡要說明這些屬性的含義。

              解答:事務(Transaction)是訪問并可能更新數據庫中各種數據項的一個程序執行單元(unit)。

              事務通常由高級數據庫操縱語言或編程語言(如SQL,C++或Java)書寫的用戶程序的執行所引起,并用形如begin transaction和end transaction語句(或函數調用)來界定。事務由事務開始(begin transaction)和事務結束(end transaction)之間執行的全體操作組成。

              事務應該具有4個屬性:原子性、一致性、隔離性、持續性。這四個屬性通常稱為ACID特性。

              原子性(atomicity)。一個事務是一個不可分割的工作單位,事務中包括的諸操作要么都做,要么都不做。

              一致性(consistency)。事務必須是使數據庫從一個一致性狀態變到另一個一致性狀態。一致性與原子性是密切相關的。

              隔離性(isolation)。一個事務的執行不能被其他事務干擾。即一個事務內部的操作及使用的數據對并發的其他事務是隔離的,并發執行的各個事務之間不能互相干擾。

              持久性(durability)。持續性也稱永久性(permanence),指一個事務一旦提交,它對數據庫中數據的改變就應該是永久性的。接下來的其他操作或故障不應該對其有任何影響。

              4、Collection 和 Collections的區別?

              解答:Collection是java.util下的接口,它是各種集合的父接口,繼承于它的接口主要有Set 和List;Collections是個java.util下的類,是針對集合的幫助類,提供一系列靜態方法實現對各種集合的搜索、排序、線程安全化等操作。

              5、HashMap與TreeMap的區別?

              解答:HashMap通過hashcode對其內容進行快速查找,而TreeMap中所有的元素都保持著某種固定的順序,如果你需要得到一個有序的結果你就應該使用TreeMap(HashMap中元素的排列順序是不固定的)。

              6、ArrayList和Vector的區別?

              解答:同步性:Vector是線程安全的,也就是說是同步的,而ArrayList是線程不安全的,不是同步的;數據增長:當需要增長時,Vector默認增長為原來一培,而ArrayList卻是原來的一半。