1. 程式人生 > >java面試題01

java面試題01

讀寫 esc direct syn 做到 window sele 開始 run

一、JAVA基礎

1、簡述你所知道的JAVA修飾符及各自的使用機制?(public、abstract、final、synchronized、super…)

01.public:允許所有客戶訪問

02.protected:只能在本包,本類以及該類的子類中使用

03.private:只允許在本類中使用

04.abstract:沒有提供實現,需要子類提供實現。

05.static:與整個類相關,與單個對象無關。

06.final:final修飾的類,不能被繼承

final修飾的方法,不能被重寫

final修飾的變量不能改變其初始值。

07.synchronized:方法獲得對對象監控的訪問權,如果該方法是static類型的,獲得是對類本身的訪問權。

08.super:構造器和方法,都用關鍵字super指向超類。但是用的方法不一樣,方法用這個關鍵字去執行被重載的超類中的方法。

2、String、StringBuffer與StringBuilder之間的區別?分別簡述各自的執行效率?

01、區別

String類型和StringBuffer類型的主要性能區別其實在於String是不可變對象,因此在每次對String類型進行改變的時候其實都等於生成了一個新的String對象,然後將指針指向新的String對象,所以經常改變內容的字符串最好不要用String,因為每次生成對象都會對系統性能產生影響,特別當內存中無引用對象多了以後,JVM的GC就會開始工作,那速度一定會相當慢的。

02、執行速度:

三者在執行速度方面的比較:StringBuilder>StringBuffer>String

03、使用場景:

a、如果要操作少量的數據用String

b、單線程操作字符串緩沖區下操作大量數據 使用StringBuilder

c、多線程操作字符串緩沖區 下 操作大量數據使用 StringBuffer

3、重載和重寫的區別。重載的方法是否可以改變返回值類型?

01.重載:在同一個類中,相同的方法名,但是參數類型或者個數不同,與返回值類型無關。同名不同參。

02.重寫:在父類和子類中,子類中的方法的方法名,參數個數,參數類型,都與父類中的完全一樣,返回值類型也必須相同。

4.JAVA SERVLET API forward()與redirect()的區別?

01.forward:轉發是服務器行為,轉發的時候瀏覽器不知道他所請求的具體資源來源,所以url不會變。轉發的時候可以共享request裏面的數據。

02.redirect:重定向是客戶端行為,服務器根據邏輯發送一個狀態碼,告訴瀏覽器重新去請求那個地址,所以地址欄顯示的是新的URL,重定向不能攜帶參數。

5、JAVA 解析 XML 有哪幾種方法?並簡述各自的優缺點

01.DOM解析:

是用與平臺和語言無關的方式表示XML文檔的官方W3C標準,分析該結構通常需要加載整個文檔和構造層次結構,然後才能做任何工作,是基於信息層次的。

優點有:由於樹在內存中是持久的,因此可以修改他以便應用程序能對數據和結構做出更改。它還可以在任何時候在樹中上下導航,而不是象SAX那樣是一次性的處理。DOM使用起來也要簡單的多。

02.SAX解析:

對於特別大的文檔,解析和加載整個文檔可能很慢且很耗資源,因此使用其他手段來處理這樣的數據會更好,這些基於事件的模型,比如SAX。這種處理的優點非常類似於流媒體的優點。分析能夠立即開始,而不是等待所有的數據被處理。而且,由於應用程序只是在讀取數據時檢查數據,因此不需要將數據存儲在內存中。這對於大型文檔來說是個巨大的優點。事實上,應用程序甚至不必解析整個文檔;它可以在某個條件得到滿足時停止解析。一般來說,SAX還比它的替代者DOM快許多。

03.JDOM解析:

目的是成為java特定文檔模型,它簡化與XML的交互並且比使用DOM實現更快。

04.DOM4J解析:

它是JDOM的一種智能分支。它合並了許多超出基本XML文檔表示的功能,包括集成的XPath支持、XML Schema支持以及用於大文檔或流化文檔的基於事件的處理。它還提供了構建文檔表示的選項,DOM4J是一個非常優秀的Java XML API,具有性能優異、功能強大和極端易用使用的特點,同時它也是一個開放源代碼的軟件。如今你可以看到越來越多的Java軟件都在使用DOM4J來讀寫XML,特別值得一提的是連Sun的JAXM也在用DOM4J。

二、javascript相關:

1.javascript有哪些打開一個頁面的方式?

01.window.open(sURL[,vArguments] [,sFeatures]) 新頁面

02.window.showmodaldialog(sURL[,vArguments] [,sFeatures]) 模態對話框

03.window.showModelessDialog(sURL[,vArguments] [,sFeatures]) 非模態對話框

2.頁面加載完後調用js方法如何實現?

body 標簽加 onload事件,<body onload="alert(1);">

3.innerHTML和outerHTML的區別是什麽?

01、使用innerHTML的時候將找著元素的內容(不包含元素本身)

  使用outerHTML的時候將找著元素的內容(包含元素本身)

02.例子:

<a href=”test.jsp”>test</a>,innerHTML取到test,

outerHTML取到<a href=”test.jsp”>test</a>.

4.javascript如何做到頁面的局部刷新?

使用AJAX。

原理:獲取一個請求對象,向指定URL發送請求,當請求完成時(狀態為4),獲取到請求返回的內容,並將內容填充到局部頁面。

三:數據庫相關

1、存儲過程和函數的區別:

存儲過程是用戶定義的一系列sql語句的集合,涉及特定表或其他對象的任務,用戶可以調用存儲過程。而函數通常是數據庫已定義的方法,它接收參數並返回某種類型的值並且不涉及特定用戶表。

2、oracle中truncate和delete命令有何區別?

刪除表中的數據的方法有delete,truncate, 它們都是刪除表中的數據而不能刪除表結構

01、delete可以刪除整個表的數據也可以刪除表中某一條或N條滿足條件的數據

02、truncate只能刪除整個表的數據

,一般我們把delete操作收作刪除表而truncate操作叫作截斷表

3、Oracle中char和varchar2數據類型有什麽區別?有數據”test”分別存放到char(10)和varchar2(10)類型的字段中,其存儲長度及類型有何區別?

01.char是定長字符誒型,varchar2是變長字符類型。

02.“test”在char(10)中被補齊空格,存儲長度是10,在varchar2(10)中存儲長度是4字節。

4、

假如系統中有如下四張表:

1)文檔表(DOC):編號(docid)、名稱(docname)、描述(docdesc);docid為主鍵,docname有索引;

2)學生表(XS):學生代碼(XSDM)、學生名稱(XSMC);

3)學科表(XK):學科代碼(XKDM)、學科名稱(XKMC)、最高分數(ZGF);

4)成績表(CJ):學生代碼(XSDM)、學科代碼(XKDM)、成績(CJ)。

問題1: 寫出您最常用SQL語句的關鍵字

01、--數據操作
SELECT   --從數據庫表中檢索數據行和列
INSERT   --向數據庫表添加新數據行
DELETE   --從數據庫表中刪除數據行
UPDATE   --更新數據庫表中的數據
02、--數據定義
CREATE TABLE  --創建一個數據庫表
DROP TABLE   --從數據庫中刪除表
ALTER TABLE   --修改數據庫表結構

03、--數據控制
GRANT   --授予用戶訪問權限
DENY   --拒絕用戶訪問
REVOKE   --解除用戶訪問權限
04、--事務控制
COMMIT   --結束當前事務
ROLLBACK   --中止當前事務
SET TRANSACTION  --定義當前事務數據訪問特征

問題2:以下查詢的處理速度(返回數據量相同)從高到低排列?

A、select * from doc where docname=’test’

B、select * from doc where docid=50

C、select * from doc where docdesc=’test’

B大於A大於C

問題3 :列出有不及格(<底於60分)的學生姓名(SQL語句) :

select XSMC from XS,CJ where XS.XSDM=CJ.XSDM and CJ<60

問題4 :統計每個學生的總分(SQL語句):

select XSMC,SUM(CJ) from XS,CJ where XS.XSDM=CJ.XSDM GROUP BY XSDM

問題5 : 列出沒有不及格(>=60分)的學生姓名及平均分(SQL語句):

select XSMC,AVG(CJ) from XS,CJ where XS.XSDM=CJ.XSDM and CJ>60 GROUP BY XSDM

java面試題01