Java面試題
-
get和post的區別?
url可見性:
get,參數url可見;
post,url參數不可見
數據傳輸上:
get,通過拼接url進行傳遞參數;
post,通過body體傳輸參數
緩存性:
get請求是可以緩存的
post請求不可以緩存
後退頁面的反應
get請求頁面後退時,不產生影響
post請求頁面後退時,會重新提交請求
傳輸數據的大小
get一般傳輸數據大小不超過2k-4k(根據瀏覽器不同,限制不一樣,但相差不大)
post請求傳輸數據的大小根據php.ini 配置文件設定,也可以無限大。
-
什麼是代理模式?說說你的理解?
代理主要分爲靜態代理和動態代理,動態代理主要有兩種方式,JDK動態代理和CGLIB動態代理。
JDK動態代理:基於接口實現
侷限:很多類沒有實現接口,那麼就沒辦法實現代理
CGLIB動態代理:基於繼承思想
作用:針對沒有實現接口的類,進行代理
總結:與jdk提供的代理區別:Proxy:委託類必須有接口,製作過程比較快,執行慢。CGLIB:委託類可以沒有接口,繼承的思維來實現相似性,製作代理過程比較慢,執行快。
-
線程如何創建?
- 繼承Thread類,重寫run()方法
- 實現Runnable接口,並實現接口中的run方法
- 使用Callable和Future創建線程
- 使用線程池例如用Executor框架
-
Servlet的生命週期?
init():初始化
service():處理客戶端請求
destory():銷燬
-
Tomcat的理解?
Tomcat是一個符合JavaEE WEB標準的最小的WEB容器,所有的JSP程序一定要有WEB容器的支持才能運行,而且在給定的WEB容器裏面都會支持事務處理操作。
-
列舉JSP中的內置對象,同一應用頁面間傳值有哪些方式?
四大域對象:page、request,session,application
除此以外:response,cookie,out,PageContext,exception
-
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的值。 %>
-
介紹在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">
數據庫簡答題
-
請說明數據庫主鍵,外鍵的作用,以及建立索引的好吃及壞處?
主鍵:唯一標識一條記錄,不能有重複的,不允許爲空,用於保證數據完整性
外鍵:表的外鍵是另外一個表的主鍵,外鍵可以有重複的,可以是空值
-
請簡述什麼是事務?事務有哪些屬性?
事務是訪問並可能更新數據庫中各種數據項的一個程序執行單元。在關係數據庫中,一個事務可以是一條SQL語句,一組SQL語句或整個程序。
原子性(atomicity)。一個事務是一個不可分割的工作單位,事務中包括的諸操作要麼都做,要麼都不做
一致性(consistency)。事務必須是使數據庫從一個一致性狀態變到另一個一致性狀態。一致性與原子性是密切相關的。
隔離性(isolation)。一個事務的執行不能被其他事務干擾。即一個事務內部的操作及使用的數據對併發的其他事務是隔離的,併發執行的各個事務之間不能互相干擾。
持久性(durability)。持續性也稱永久性(permanence),指一個事務一旦提交,它對數據庫中數據的改變就應該是永久性的。接下來的其他操作或故障不應該對其有任何影響。
-
如何創建:視圖,函數,存儲過程,選擇其一給出語法?
創建函數: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