Java面試題

Java面試題

  1. get和post的區別?

    url可見性:

    ​ get,參數url可見;

    ​ post,url參數不可見

    數據傳輸上:

    ​ get,通過拼接url進行傳遞參數;

    ​ post,通過body體傳輸參數

    緩存性:

    ​ get請求是可以緩存的

    ​ post請求不可以緩存

    後退頁面的反應

    ​ get請求頁面後退時,不產生影響

    ​ post請求頁面後退時,會重新提交請求

    傳輸數據的大小

    ​ get一般傳輸數據大小不超過2k-4k(根據瀏覽器不同,限制不一樣,但相差不大)

    ​ post請求傳輸數據的大小根據php.ini 配置文件設定,也可以無限大。

  2. 什麼是代理模式?說說你的理解?

    代理主要分爲靜態代理和動態代理,動態代理主要有兩種方式,JDK動態代理和CGLIB動態代理。

    JDK動態代理:基於接口實現

     侷限:很多類沒有實現接口,那麼就沒辦法實現代理
    

    CGLIB動態代理:基於繼承思想

     作用:針對沒有實現接口的類,進行代理
    

    總結:與jdk提供的代理區別:Proxy:委託類必須有接口,製作過程比較快,執行慢。CGLIB:委託類可以沒有接口,繼承的思維來實現相似性,製作代理過程比較慢,執行快。

  3. 線程如何創建?

    • 繼承Thread類,重寫run()方法
    • 實現Runnable接口,並實現接口中的run方法
    • 使用Callable和Future創建線程
    • 使用線程池例如用Executor框架
  4. Servlet的生命週期?

    init():初始化

    service():處理客戶端請求

    destory():銷燬

  5. Tomcat的理解?

    Tomcat是一個符合JavaEE WEB標準的最小的WEB容器,所有的JSP程序一定要有WEB容器的支持才能運行,而且在給定的WEB容器裏面都會支持事務處理操作。

  6. 列舉JSP中的內置對象,同一應用頁面間傳值有哪些方式?

    四大域對象:page、request,session,application

    除此以外:response,cookie,out,PageContext,exception

  7. JSP如何獲取HTML FORM中的數據?

    HTML:

    <form action="a.jsp">
    
    <input type="text" name="test_data"/>
    
    <input type="submit" value="提交" />
    
    </form>
    

    a.jsp:

    <%
    
    String testData = request.getParameter("test_data");   // 即可獲得test_data的值。
    
    %>
    
  8. 介紹在JSP中如何使用JavaBeans,如何使用一個已經定義好的類?

    在JSP頁面中使用JavaBeans的方式
    1.像使用普通Java類一樣創建JavaBean實例。
    2.在JSP頁面中通常使用JSP動作標籤使用JavaBean。

    常用的JSP動作標籤是:useBeans動作、setProperty動作、getProperty動作。

    jsp:useBeans
    作用:在JSP頁面中實例化或者在指定範圍內使用JavaBean:
    格式:<jsp:useBean id=“標識符” class=“java類名” scope=“作用範圍” />
    其中id就是JavaBean對應的實例。

    jsp:setProperty
    作用:給已經實例化的JavaBean對象的屬性賦值,一共有四種形式:
    <jsp:setProperty name=“JavaBean實例名” property="*" />(跟表單關聯)
    <jsp:setProperty name=“JavaBean實例名” property=“JavaBean屬性名” />(跟表單關聯)
    <jsp:setProperty name=“JavaBean實例名” property=“JavaBean屬性名” value=“BeanValue” />(手工設置)
    <jsp:setProperty name=“JavaBean實例名” property=“propertyName” param=“request對象中的參數名” />(跟表單關聯)(這裏的屬性可以通過URL傳參的方式來賦值)

    如何使用一個已經定義好的類?

    <%@page import="com.ideal.dao.CommPayAppDao">
    

數據庫簡答題

  1. 請說明數據庫主鍵,外鍵的作用,以及建立索引的好吃及壞處?

    主鍵:唯一標識一條記錄,不能有重複的,不允許爲空,用於保證數據完整性

    外鍵:表的外鍵是另外一個表的主鍵,外鍵可以有重複的,可以是空值

  2. 請簡述什麼是事務?事務有哪些屬性?

    事務是訪問並可能更新數據庫中各種數據項的一個程序執行單元。在關係數據庫中,一個事務可以是一條SQL語句,一組SQL語句或整個程序。

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

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

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

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

  3. 如何創建:視圖,函數,存儲過程,選擇其一給出語法?

    創建函數:create function 函數名 (參數1,參數2…)

    創建視圖:create view 視圖名

    create view v1 as
    select * from sc where cno=1
    

    存儲過程:create procedure 存儲名

    create procedure p1 as
    begin
    	select * from sc where cno=1
    	select * from sc where cno=1
    end
    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章