Java面試整理及Oracle答案.doc_第1頁(yè)
Java面試整理及Oracle答案.doc_第2頁(yè)
Java面試整理及Oracle答案.doc_第3頁(yè)
Java面試整理及Oracle答案.doc_第4頁(yè)
Java面試整理及Oracle答案.doc_第5頁(yè)
已閱讀5頁(yè),還剩17頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1 Servlet的生命周期 Servlet生命周期分為三個(gè)階段:1,初始化階段 調(diào)用init()方法2,響應(yīng)客戶請(qǐng)求階段調(diào)用service()方法3,終止階段調(diào)用destroy()方法在Servlet的整個(gè)生命周期內(nèi),init()方法只被調(diào)用一次。2 Oracle中1403指的是什么錯(cuò)誤,怎樣解決未找到數(shù)據(jù)3 C語(yǔ)言中靜態(tài)屬性與非靜態(tài)屬性的區(qū)別,4 線程,進(jìn)程進(jìn)程是執(zhí)行程序的實(shí)例。例如,當(dāng)你運(yùn)行記事本程序(Nodepad)時(shí),你就創(chuàng)建了一個(gè)用來(lái)容納組成 Notepad.exe的代碼及其所需調(diào)用動(dòng)態(tài)鏈接庫(kù)的進(jìn)程。一個(gè)進(jìn)程可以有多個(gè)線程。線程是不能獨(dú)立擁有系統(tǒng)資源的。是要依賴于進(jìn)程而存在的,一個(gè)進(jìn)程是可以包含多個(gè)線程的,也可以只有一個(gè)線程。5 什么是工廠模式,優(yōu)點(diǎn)是什么, 怎樣調(diào)用的public abstract class Product /產(chǎn)品類的公共方法 public void method1() /業(yè)務(wù)邏輯處理 /抽象方法 public abstract void method2(); public class ConcreteProduct1 extends Product public void method2() /業(yè)務(wù)邏輯處理 public class ConcreteProduct2 extends Product public void method2() /業(yè)務(wù)邏輯處理 public abstract class Creator public abstract Product createProduct(Class c); / public abstract Product createProduct()public class ConcreteCreator extends Creator public Product createProduct(Class c) Product product=null; try product = (Product)Class.forName(c.getName().newInstance(); catch (Exception e) /異常處理 return product; public class Client public static void main(String args) Creator creator = new ConcreteCreator(); Product product = creator.createProduct(ConcreteProduct1.class); /* * 繼續(xù)業(yè)務(wù)處理 */ 簡(jiǎn)單工廠方法,沒(méi)有抽象工廠,只有具體工廠依賴具體產(chǎn)品抽象工廠模式確保某一個(gè)類只有一個(gè)實(shí)例,而且自行實(shí)例化并向整個(gè)系統(tǒng)提供這個(gè)實(shí)例。public class Singleton private static final Singleton singleton = new Singleton(); /限制產(chǎn)生多個(gè)對(duì)象 private Singleton() /通過(guò)該方法獲得實(shí)例對(duì)象 public static Singleton getSingleton() return singleton; /類中其他方法,盡量是static public static void doSomething() 6 Oracle中怎樣建立權(quán)限 全部權(quán)限grant all on 數(shù)據(jù)庫(kù)名 to 用戶名例如查詢權(quán)限GRANT SELECTON authorsTO publicgo 其它權(quán)限GRANT INSERT, UPDATE, DELETEON authorsTO Mary, John, Tom7 你參加過(guò)什么樣的項(xiàng)目,用到了哪些技術(shù),都有什么樣的功能,遇到過(guò)什么樣的問(wèn)題8 Ajax的工作原理Ajax的核心是JavaScript對(duì)象 XmlHttpRequest。該對(duì)象在Internet Explorer 5中首次引入,它是一種支持異步請(qǐng)求的技術(shù)。簡(jiǎn)而言之,XmlHttpRequest使您可以使用JavaScript向服務(wù)器提出請(qǐng)求并處理響應(yīng),而不阻塞用戶。Ajax的原理簡(jiǎn)單來(lái)說(shuō)通過(guò)XmlHttpRequest對(duì)象來(lái)向服務(wù)器發(fā)異步請(qǐng)求,從服務(wù)器獲得數(shù)據(jù),然后用javascript來(lái)操作DOM而更新頁(yè)面。這其中最關(guān)鍵的一步就是從服務(wù)器獲得請(qǐng)求數(shù)據(jù)。要清楚這個(gè)過(guò)程和原理,我們必須對(duì) XMLHttpRequest有所了解。XMLHttpRequest是ajax的核心機(jī)制,它是在IE5中首先引入的,是一種支持異步請(qǐng)求的技術(shù)。簡(jiǎn)單的說(shuō),也就是javascript可以及時(shí)向服務(wù)器提出請(qǐng)求和處理響應(yīng),而不阻塞用戶。達(dá)到無(wú)刷新的效果。所以我們先從XMLHttpRequest講起,來(lái)看看它的工作原理。首先,我們先來(lái)看看XMLHttpRequest這個(gè)對(duì)象的屬性。它的屬性有:onreadystatechange 每次狀態(tài)改變所觸發(fā)事件的事件處理程序。responseText 從服務(wù)器進(jìn)程返回?cái)?shù)據(jù)的字符串形式。responseXML 從服務(wù)器進(jìn)程返回的DOM兼容的文檔數(shù)據(jù)對(duì)象。status 從服務(wù)器返回的數(shù)字代碼,比如常見(jiàn)的404(未找到)和200(已就緒)status Text 伴隨狀態(tài)碼的字符串信息readyState 對(duì)象狀態(tài)值0 (未初始化) 對(duì)象已建立,但是尚未初始化(尚未調(diào)用open方法)1 (初始化) 對(duì)象已建立,尚未調(diào)用send方法2 (發(fā)送數(shù)據(jù)) send方法已調(diào)用,但是當(dāng)前的狀態(tài)及http頭未知3 (數(shù)據(jù)傳送中) 已接收部分?jǐn)?shù)據(jù),因?yàn)轫憫?yīng)及http頭不全,這時(shí)通過(guò)responseBody和responseText獲取部分?jǐn)?shù)據(jù)會(huì)出現(xiàn)錯(cuò)誤,4 (完成) 數(shù)據(jù)接收完畢,此時(shí)可以通過(guò)通過(guò)responseXml和responseText獲取完整的回應(yīng)數(shù)據(jù)但是,由于各瀏覽器之間存在差異,所以創(chuàng)建一個(gè)XMLHttpRequest對(duì)象可能需要不同的方法。這個(gè)差異主要體現(xiàn)在IE和其它瀏覽器之間。下面是一個(gè)比較標(biāo)準(zhǔn)的創(chuàng)建XMLHttpRequest對(duì)象的方法。function CreateXmlHttp() /非IE瀏覽器創(chuàng)建XmlHttpRequest對(duì)象 if (window.XmlHttpRequest) xmlhttp = new XmlHttpRequest(); /IE瀏覽器創(chuàng)建XmlHttpRequest對(duì)象 if (window.ActiveXObject) try xmlhttp = new ActiveXObject(Microsoft.XMLHTTP); catch (e) try xmlhttp = new ActiveXObject(msxml2.XMLHTTP); catch (ex) function Ustbwuyi() var data = document.getElementById(username).value; CreateXmlHttp(); if (!xmlhttp) alert(創(chuàng)建xmlhttp對(duì)象異常!); return false; xmlhttp.open(POST, url, false); xmlhttp.onreadystatechange = function () if (xmlhttp.readyState = 4) document.getElementById(user1).innerHTML = 數(shù)據(jù)正在加載.; if (xmlhttp.status = 200) document.write(xmlhttp.responseText); xmlhttp.send();如上所示,函數(shù)首先檢查XMLHttpRequest的整體狀態(tài)并且保證它已經(jīng)完成(readyStatus=4),即數(shù)據(jù)已經(jīng)發(fā)送完畢。然后根據(jù)服務(wù)器的設(shè)定詢問(wèn)請(qǐng)求狀態(tài),如果一切已經(jīng)就緒(status=200),那么就執(zhí)行下面需要的操作。對(duì)于XmlHttpRequest的兩個(gè)方法,open和send,其中open方法指定了:a、向服務(wù)器提交數(shù)據(jù)的類型,即post還是get。b、請(qǐng)求的url地址和傳遞的參數(shù)。c、傳輸方式,false為同步,true為異步。默認(rèn)為true。如果是異步通信方式(true),客戶機(jī)就不等待服務(wù)器的響應(yīng);如果是同步方式(false),客戶機(jī)就要等到服務(wù)器返回消息后才去執(zhí)行其他操作。我們需要根據(jù)實(shí)際需要來(lái)指定同步方式,在某些頁(yè)面中,可能會(huì)發(fā)出多個(gè)請(qǐng)求,甚至是有組織有計(jì)劃有隊(duì)形大規(guī)模的高強(qiáng)度的request,而后一個(gè)是會(huì)覆蓋前一個(gè)的,這個(gè)時(shí)候當(dāng)然要指定同步方式。Send方法用來(lái)發(fā)送請(qǐng)求。知道了XMLHttpRequest的工作流程,我們可以看出,XMLHttpRequest是完全用來(lái)向服務(wù)器發(fā)出一個(gè)請(qǐng)求的,它的作用也局限于此,但它的作用是整個(gè)ajax實(shí)現(xiàn)的關(guān)鍵,因?yàn)閍jax無(wú)非是兩個(gè)過(guò)程,發(fā)出請(qǐng)求和響應(yīng)請(qǐng)求。并且它完全是一種客戶端的技術(shù)。而XMLHttpRequest正是處理了服務(wù)器端和客戶端通信的問(wèn)題所以才會(huì)如此的重要。現(xiàn)在,我們對(duì)ajax的原理大概可以有一個(gè)了解了。我們可以把服務(wù)器端看成一個(gè)數(shù)據(jù)接口,它返回的是一個(gè)純文本流,當(dāng)然,這個(gè)文本流可以是XML格式,可以是Html,可以是Javascript代碼,也可以只是一個(gè)字符串。這時(shí)候,XMLHttpRequest向服務(wù)器端請(qǐng)求這個(gè)頁(yè)面,服務(wù)器端將文本的結(jié)果寫(xiě)入頁(yè)面,這和普通的web開(kāi)發(fā)流程是一樣的,不同的是,客戶端在異步獲取這個(gè)結(jié)果后,不是直接顯示在頁(yè)面,而是先由javascript來(lái)處理,然后再顯示在頁(yè)面。至于現(xiàn)在流行的很多ajax控件,比如magicajax等,可以返回DataSet等其它數(shù)據(jù)類型,只是將這個(gè)過(guò)程封裝了的結(jié)果,本質(zhì)上他們并沒(méi)有什么太大的區(qū)別。9 怎樣連接Oracle數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)連接池使用連接池的優(yōu)點(diǎn)使用連接池的優(yōu)點(diǎn)主要體現(xiàn)在兩個(gè)方面:對(duì)數(shù)據(jù)庫(kù)的連接統(tǒng)一進(jìn)行配置、管理、監(jiān)控,以及對(duì)數(shù)據(jù)庫(kù)連接池的參數(shù)進(jìn)行優(yōu)化調(diào)整,同時(shí)對(duì)應(yīng)用中沒(méi)有關(guān)閉或其他原因造成沒(méi)有關(guān)閉的數(shù)據(jù)庫(kù)連接由連接池統(tǒng)一進(jìn)行管理。便于應(yīng)用的移植和后端數(shù)據(jù)庫(kù)的切換,因?yàn)樵趹?yīng)用中通過(guò)統(tǒng)一的JNDI獲得數(shù)據(jù)庫(kù)的連接,而具體連接的是哪一臺(tái)機(jī)器上的數(shù)據(jù)庫(kù)與應(yīng)用無(wú)關(guān)。1. 開(kāi)發(fā)中你遇到過(guò)哪些異常?2.怎么用語(yǔ)句把一個(gè)表的結(jié)構(gòu)復(fù)制到令一個(gè)表里? create table new_table as select * from old_table;3.說(shuō)說(shuō)你對(duì)抽象類和接口理解1、抽象類和接口都不能直接實(shí)例化,如果要實(shí)例化,抽象類變量必須指向?qū)崿F(xiàn)所有抽象方法的子類對(duì)象,接口變量必須指向?qū)崿F(xiàn)所有接口方法的類對(duì)象。2、抽象類要被子類繼承,接口要被類實(shí)現(xiàn)。3、接口只能做方法申明,抽象類中可以做方法申明,也可以做方法實(shí)現(xiàn)4、接口里定義的變量只能是公共的靜態(tài)的常量,抽象類中的變量是普通變量。5、抽象類里的抽象方法必須全部被子類所實(shí)現(xiàn),如果子類不能全部實(shí)現(xiàn)父類抽象方法,那么該子類只能是抽象類。同樣,一個(gè)實(shí)現(xiàn)接口的時(shí)候,如不能全部實(shí)現(xiàn)接口方法,那么該類也只能為抽象類。6、抽象方法只能申明,不能實(shí)現(xiàn)。abstract void abc();不能寫(xiě)成abstract void abc()。7、抽象類里可以沒(méi)有抽象方法8、如果一個(gè)類里有抽象方法,那么這個(gè)類只能是抽象類9、抽象方法要被實(shí)現(xiàn),所以不能是靜態(tài)的,也不能是私有的。10、接口可繼承接口,并可多繼承接口,但類只能單根繼承。4.try catch finally的執(zhí)行順序,和finally是在trun之前還是在之后執(zhí)行。1、不管有木有出現(xiàn)異常,finally 塊中代碼都會(huì)執(zhí)行; 不管有木有出現(xiàn)異常, 塊中代碼都會(huì)執(zhí)行; 2、當(dāng) try 和 catch 中有 return 時(shí),finally 任會(huì)執(zhí)行; 3、finally 是在 return 表達(dá)式運(yùn)算后前執(zhí)行的,所以函數(shù)返回值是在 finally 表達(dá)式運(yùn)算后前執(zhí)行的, 執(zhí)行前確定的; 執(zhí)行前確定的; 4、finally 中最好不要包含 return,否則程序會(huì)提前退出,返回值不是 try 或 return,否則程序會(huì)提前退出, 中保存的返回值。 catch 中保存的返回值。5.tomact的核心文件是什么?server.xml是tomcat的核心配置文件,通過(guò)配置server.xml可以靈活設(shè)置web服務(wù)器的各項(xiàng)參數(shù)詳細(xì)/blog/4370676.web.xml中配置filter和listener,說(shuō)說(shuō)它們是干什么的?web.xml里面可以配置Filter和Listener,他們有什么區(qū)別,有什么共同點(diǎn)嗎?應(yīng)該在什么情況下使用他們? Filter是過(guò)濾器,過(guò)濾一些不友好或是你不想要的東東, Listener是Servlet的監(jiān)聽(tīng)器,可以監(jiān)聽(tīng)客戶端的請(qǐng)求、服務(wù)端的操作等。 通過(guò)監(jiān)聽(tīng)器,可以自動(dòng)激發(fā)一些操作。 Filter可以實(shí)現(xiàn)對(duì)請(qǐng)求的過(guò)濾和重定向等,也就是說(shuō)可以操作request和response,session等對(duì)象,listner只能監(jiān)聽(tīng)到以上對(duì)象的屬性的修改。 Filter 是struts的核心控制器,負(fù)責(zé)攔截所有用戶請(qǐng)求。 listener是監(jiān)聽(tīng)器,通常都是監(jiān)聽(tīng)并加載一些插件用的,比如spring。log4j等 Filter(過(guò)濾器):你可以寫(xiě)個(gè)類實(shí)現(xiàn)Filter接口,然后配置到web.xml中,那么Tomcat在接受到Http請(qǐng)求后首先會(huì)調(diào)用FilterChain中的第一個(gè)過(guò)濾器,為了能調(diào)用下個(gè)過(guò)濾器或真正的請(qǐng)求(servlet or jsp),所以你的實(shí)現(xiàn)類所實(shí)現(xiàn)的方法中必須要調(diào)用chain.doFilter(request,response),不然會(huì)得到空白頁(yè)面!過(guò)濾器通常用做處理亂碼,權(quán)限控制,也可以管理Hibernate中的session! Listener(監(jiān)聽(tīng)器):利用觀察者模式實(shí)現(xiàn),在Tomcat中,如果要對(duì)application,session,request,response等對(duì)象監(jiān)聽(tīng),要實(shí)現(xiàn)類似*Listener接口,再配置到web.xml中,那么Tomcat在啟動(dòng)的時(shí)候就會(huì)把你寫(xiě)的這些監(jiān)聽(tīng)類實(shí)例化成對(duì)象加入到一個(gè)集合中,此后對(duì)你要監(jiān)聽(tīng)的對(duì)象操作時(shí),都將會(huì)調(diào)用listener中的方法,比如HttpSessionListener 可以用來(lái)監(jiān)聽(tīng)當(dāng)前在線的所有用戶! Filter和servlet基本類似 可以用做servlet來(lái)用(struts2.0就是這么干的) 有reqeust請(qǐng)求才能運(yùn)行 listener是監(jiān)聽(tīng)器 是系統(tǒng)啟動(dòng)就運(yùn)行 一般監(jiān)聽(tīng)都是用來(lái)事先加載系統(tǒng)文件的7.數(shù)據(jù)庫(kù)中返回-1,是什么情況?8.java中類的命名規(guī)范?9.數(shù)據(jù)庫(kù)中 int char vchar 的存儲(chǔ)長(zhǎng)度及區(qū)別。char和varchar的長(zhǎng)度都在1到8000之間,它們的區(qū)別在于char是定長(zhǎng)字符數(shù)據(jù),而varchar是變長(zhǎng)字符數(shù)據(jù)。所謂定長(zhǎng)就是長(zhǎng)度固定的,當(dāng)輸入的數(shù)據(jù)長(zhǎng)度沒(méi)有達(dá)到指定的長(zhǎng)度時(shí)將自動(dòng)以英文空格在其后面填充,使長(zhǎng)度達(dá)到相應(yīng)的長(zhǎng)度;而變長(zhǎng)字符數(shù)據(jù)則不會(huì)以空格填充。text存儲(chǔ)可變長(zhǎng)度的非Unicode數(shù)據(jù),最大長(zhǎng)度為231-1(2,147,483,647)個(gè)字符。 后面三種數(shù)據(jù)類型和前面的相比,從名稱上看只是多了個(gè)字母n,它表示存儲(chǔ)的是Unicode數(shù)據(jù)類型的字符。字符中,英文字符只需要一個(gè)字節(jié)存儲(chǔ)就足夠了,但漢字眾多,需要兩個(gè)字節(jié)存儲(chǔ),英文與漢字同時(shí)存在時(shí)容易造成混亂,Unicode字符集就是為了解決字符集這種不兼容的問(wèn)題而產(chǎn)生的,它所有的字符都用兩個(gè)字節(jié)表示,即英文字符也是用兩個(gè)字節(jié)表示。nchar、nvarchar的長(zhǎng)度是在1到4000之間。和char、varchar比較:nchar、nvarchar則最多存儲(chǔ)4000個(gè)字符,不論是英文還是漢字;而char、varchar最多能存儲(chǔ)8000個(gè)英文,4000個(gè)漢字??梢钥闯鍪褂胣char、nvarchar數(shù)據(jù)類型時(shí)不用擔(dān)心輸入的字符是英文還是漢字,較為方便,但在存儲(chǔ)英文時(shí)數(shù)量上有些損失。使用 Int 數(shù)據(jù)狗昔存儲(chǔ)數(shù)據(jù)的范圍是從 -2 147 483 648 到 2 147 483 647(每一個(gè)值要求4個(gè)字節(jié)存儲(chǔ)空間)。使用 Smallint 數(shù)據(jù)類型時(shí),存儲(chǔ)數(shù)據(jù)的范圍從 -32 768 到 32 767(每一個(gè)值要求2個(gè)字節(jié)存儲(chǔ)空間)。使用Tinyint 數(shù)據(jù)類型時(shí),存儲(chǔ)數(shù)據(jù)的范圍是從0 到255(每一個(gè)值要求1個(gè)字節(jié)存儲(chǔ)空間)。10.Weblogic Jobss Tomcat 的配置過(guò)程以及端口號(hào)。Tomcat server.xml11.用來(lái)截取數(shù)據(jù)庫(kù)字符串的是什么。select substring(字段名,起始位置,截取位數(shù)) from 表比如select substring(abc,1,1) -結(jié)果為a12.一個(gè)char 中能夠存儲(chǔ)一個(gè)漢字嗎。答:能,java中的字符就是指char類型的變量,無(wú)論中文還是英文,都是占2個(gè)字節(jié),因?yàn)槎际怯肬nicode編碼,一個(gè)Unicode編碼就是16位,也就是2個(gè)字節(jié)。所以放一個(gè)中文是沒(méi)問(wèn)題的所以:public class Test public static void main(String args) String myName=My name is 刺客SEO;char ke=刺; /合法的System.out.println(我的姓氏為:+ke); /輸出:我的姓氏為:刺System.out.println(myName.substring(0, 1); /輸出:MSystem.out.println(myName.substring(myName.length()-1, myName.length(); /輸出:通substring 處理的最小單元就是一個(gè)字符,也就是一個(gè)char類型,2個(gè)字節(jié) 。13.數(shù)據(jù)庫(kù)中查詢語(yǔ)句內(nèi)連接和左外連接和實(shí)現(xiàn)及數(shù)據(jù)和顯示。/youzhangjin/archive/2009/05/22/1486982.html14.你怎樣看待出差。15.你認(rèn)為你適合這個(gè)行業(yè)嗎。16.介紹一下你的優(yōu)缺點(diǎn)。17.接口能夠繼承接口嗎,接口能不能繼承抽象類,接口能不能夠繼承類。18.數(shù)據(jù)庫(kù)中映射文件到實(shí)體類中共有幾種表關(guān)系。java網(wǎng)絡(luò)通信類java文件存取一個(gè)是字符流輸出,一個(gè)是字節(jié)流輸出從本質(zhì)上講,wirter/reader和inputstream/outputstream的最大區(qū)別在于encode和decode. inputstream/outputstream 直接對(duì)byte進(jìn)行操作,不會(huì)更改任何信息,原原本本的反應(yīng)數(shù)據(jù)內(nèi)容。 writer/reader在操作時(shí)會(huì)進(jìn)行decode/encode. 它會(huì)根據(jù)你的系統(tǒng)屬性file.encoding來(lái)decode數(shù)據(jù)。比如你從文件中讀取一行,用reader.readLine()返回的string是經(jīng)過(guò)decode的數(shù)據(jù)。如果你的文件的encoding不等于你的file.encoding的值,就會(huì)產(chǎn)生編碼錯(cuò)誤。void write(byte b) 將 b.length 個(gè)字節(jié)從指定的 byte 數(shù)組寫(xiě)入此輸出流。 void write(byte b, int off, int len) 將指定 byte 數(shù)組中從偏移量 off 開(kāi)始的 len 個(gè)字節(jié)寫(xiě)入此輸出流。 abstract void write(int b) 將指定的字節(jié)寫(xiě)入此輸出流主要是為了解決國(guó)際化問(wèn)題。如果你全不使用e語(yǔ),那么用不用reader何writer關(guān)系不大,試想將一個(gè)中文字符勇stream讀取,那系統(tǒng)會(huì)首先將中文的兩個(gè)字節(jié)一個(gè)一個(gè)讀入,但輸出的時(shí)候就不會(huì)將這兩個(gè)字節(jié)再組合一起輸出一個(gè)中文,而只會(huì)根據(jù)每個(gè)字節(jié)的實(shí)際字符顯示,而我們看起來(lái)就變成亂碼了。 InputStream、OutputStream直接操作byte數(shù)組。 Reader、Writer在操作時(shí)會(huì)進(jìn)行decode、encode,會(huì)根據(jù)你的系統(tǒng)屬性編碼格式對(duì)數(shù)據(jù)進(jìn)行編碼或解碼。但是當(dāng)文件的編碼格式與當(dāng)前系統(tǒng)的不一致時(shí),就需要做編碼的轉(zhuǎn)換。 spring的controler怎么映射到url數(shù)據(jù)庫(kù)存儲(chǔ)過(guò)程和函數(shù)區(qū)別tomcat遠(yuǎn)程調(diào)試方法1:oracle游標(biāo)SQL的游標(biāo)是一種臨時(shí)的數(shù)據(jù)庫(kù)對(duì)象,即可以用來(lái)存放在數(shù)據(jù)庫(kù)表中的數(shù)據(jù)行副本,也可以指向存儲(chǔ)在數(shù)據(jù)庫(kù)中的數(shù)據(jù)行的指針。游標(biāo)提供了在逐行的基礎(chǔ)上操作表中數(shù)據(jù)的方法。游標(biāo)的一個(gè)常見(jiàn)用途就是保存查詢結(jié)果,以便以后使用。游標(biāo)的結(jié)果集是由SELECT語(yǔ)句產(chǎn)生,如果處理過(guò)程需要重復(fù)使用一個(gè)記錄集,那么創(chuàng)建一次游標(biāo)而重復(fù)使用若干次,比重復(fù)查詢數(shù)據(jù)庫(kù)要快的多。大部分程序數(shù)據(jù)設(shè)計(jì)語(yǔ)言都能使用游標(biāo)來(lái)檢索SQL數(shù)據(jù)庫(kù)中的數(shù)據(jù),在程序中嵌入游標(biāo)和在程序中嵌入SQL語(yǔ)句相同/sc-xx/archive/2011/12/03/2275084.html2:有一個(gè)表,表中有班級(jí)和姓名。寫(xiě)一條SQL語(yǔ)句。要求顯示每個(gè)班級(jí)的學(xué)生人數(shù)。(考點(diǎn)應(yīng)該是group by前后字段要一致)3:sessionFactory是什么?4:簡(jiǎn)述SSH或SSI做一個(gè)顯示列表的全過(guò)程。(我感覺(jué)他想聽(tīng)的是Action調(diào)用service,service調(diào)用dao)5:oracle分頁(yè)技術(shù)1.open session will是什么意思2.oracle中unix命令是什么3.oracle中存儲(chǔ)過(guò)程 游標(biāo)的寫(xiě)法4.接口和抽象類的區(qū)別(簡(jiǎn)明扼要的解釋)5.oracle中修改表的命令是什么,修改字段的命令是什么6.單例模式解釋是什么意思一、 7.說(shuō)出ArrayList, Vector, LinkedList的區(qū)別技術(shù)問(wèn)題部分(數(shù)據(jù)庫(kù)部分)1、 表空間的管理方式有哪幾種?數(shù)據(jù)字典管理方式本地文件管理方式2、 談?wù)勀銓?duì)索引的理解?索引是若干數(shù)據(jù)行的關(guān)鍵字的列表,查詢數(shù)據(jù)時(shí),通過(guò)索引中的關(guān)鍵字可以快速定位到要訪問(wèn)的記錄所在的數(shù)據(jù)塊,從而大大減少讀取數(shù)據(jù)塊的I/O次數(shù),因此可以顯著提高性能。3、 說(shuō)說(shuō)索引的組成?索引列、rowid4、 分區(qū)表用過(guò)么?談?wù)劮謪^(qū)表的應(yīng)用?分區(qū)表在對(duì)表的DML的并行處理上有極大得優(yōu)勢(shì),而且可以一部分設(shè)為只讀,用在銷售記錄,醫(yī)院處方等地方!5、 你對(duì)分區(qū)表的理解?怎樣截?cái)喾謪^(qū)表一個(gè)分區(qū)的記錄?一個(gè)分區(qū)表有一個(gè)或多個(gè)分區(qū),每個(gè)分區(qū)通過(guò)使用范圍分區(qū)、散列分區(qū)、或組合分區(qū)分區(qū)的行分區(qū)表中的每一個(gè)分區(qū)為一個(gè)段,可各自位于不同的表空間中對(duì)于同時(shí)能夠使用幾個(gè)進(jìn)程進(jìn)行查詢或操作的大型表分區(qū)非常有用alter table table_name truncate partition partition_name;6、 物理文件有哪幾種?控制文件包含了什么信息?1) 數(shù)據(jù)文件 2)控制文件 3)日志文件包含維護(hù)和驗(yàn)證有選舉權(quán)據(jù)庫(kù)完整性的必要信息、例如,控制文件用于識(shí)別數(shù)據(jù)文件和重做日志文件,一個(gè)有選舉權(quán)據(jù)庫(kù)至少需要一個(gè)控制文件7、 表空間用完了如何增加?三種種擴(kuò)展方式:1 增加數(shù)據(jù)文件alter tablespace name add datafile 路徑 size 4M;2 擴(kuò)展數(shù)據(jù)文件大小alter database datafile 路徑 resize 4M;3 把數(shù)據(jù)文件設(shè)為自動(dòng)增長(zhǎng)alter database datafile 路徑 autoextend on next 1M maxsize 20M;8、 SGA包含幾部分?Shared pool(共享池),DataBase Buffer Cache(數(shù)據(jù)緩沖區(qū))Redo Log Buffer(重做日志緩沖區(qū)), Large Pool,大池,JAVA池。9、 DECODE函數(shù)的用法?DECODE的語(yǔ)法:DECODE(value,if1,then1,if2,then2,if3,then3,.,else),表示如果value等于if1時(shí),DECODE函數(shù)的結(jié)果返回then1,.,如果不等于任何一個(gè)if值,則返回else。初看一下,DECODE只能做等于測(cè)試,但剛才也看到了,我們通過(guò)一些函數(shù)或計(jì)算替代value,是可以使DECODE函數(shù)具備大于、小于或等于功能。還可以轉(zhuǎn)化表結(jié)構(gòu)!10、 DELETE和TRUNCATE的區(qū)別?答:1、TRUNCATE在各種表上無(wú)論是大的還是小的都非???。如果有ROLLBACK命令DELETE將被撤銷,而TRUNCATE則不會(huì)被撤銷。2、TRUNCATE是一個(gè)DDL語(yǔ)言,向其他所有的DDL語(yǔ)言一樣,他將被隱式提交,不能對(duì)TRUNCATE使用ROLLBACK命令。3、TRUNCATE將重新設(shè)置高水平線和所有的索引。在對(duì)整個(gè)表和索引進(jìn)行完全瀏覽時(shí),經(jīng)過(guò)TRUNCATE操作后的表比DELETE操作后的表要快得多。4、TRUNCATE不能觸發(fā)任何DELETE觸發(fā)器。5、不能授予任何人清空他人的表的權(quán)限。6、當(dāng)表被清空后表和表的索引講重新設(shè)置成初始大小,而delete則不能。7、不能清空父表。11、 談?wù)勀銓?duì)事務(wù)的理解?ORACLE事務(wù)從COMMIT、ROLLBACK、連接到數(shù)據(jù)庫(kù)或開(kāi)始第一條可執(zhí)行的SQL語(yǔ)句時(shí)開(kāi)始,到一條COMMIT、ROLLBACK語(yǔ)句或退出數(shù)據(jù)庫(kù)時(shí)結(jié)束。如果在一個(gè)事務(wù)中包含DDL語(yǔ)句,則在DDL語(yǔ)句的前后都會(huì)隱含地執(zhí)行COMMIT語(yǔ)句,從而開(kāi)始或結(jié)束一個(gè)事務(wù)。如果一個(gè)事務(wù)由于某些故障或者由于用戶改變主意而必須在提交前取消它,則數(shù)據(jù)庫(kù)被恢復(fù)到這些語(yǔ)句和過(guò)程執(zhí)行之前的狀態(tài)。利用ROLLBACK語(yǔ)句可以在COMMIT命令前隨時(shí)撤消或回退一個(gè)事務(wù)??梢曰赝苏麄€(gè)事務(wù),也可以會(huì)退部分事務(wù),但是不能回退一個(gè)已經(jīng)被提交的事務(wù)?;赝瞬糠质聞?wù)的ROLLBACK命令為:ROLLBACK to savepoint 存儲(chǔ)點(diǎn)名存儲(chǔ)點(diǎn)是用戶放入事務(wù)中的標(biāo)記,用來(lái)表示一個(gè)可被回退的位置。存儲(chǔ)點(diǎn)通過(guò)在事務(wù)中放入一個(gè)SAVEPOINT命令而被插入。該命令的語(yǔ)法是:SAVEPOINT 存儲(chǔ)點(diǎn)名如果在ROLLBACK語(yǔ)句中沒(méi)有給出存儲(chǔ)點(diǎn)名,則整個(gè)事務(wù)被回退。12、 給表A加一列abc口述?數(shù)據(jù)庫(kù)正在應(yīng)用時(shí)應(yīng)先使數(shù)據(jù)庫(kù)處于靜默狀態(tài)再alter table a add abc varchar2(10),如果不是就直接用!13、 客戶端連接服務(wù)器需要修改什么文件?tnsname.ora,listener.ora14、 索引重建的概念?說(shuō)說(shuō)索引重建的意義?當(dāng)我們創(chuàng)建索引時(shí),oracle會(huì)為索引創(chuàng)建索引樹(shù),表和索引樹(shù)通過(guò)rowid(偽列)來(lái)定位數(shù)據(jù)。當(dāng)表里的數(shù)據(jù)發(fā)生更新時(shí),oracle會(huì)自動(dòng)維護(hù)索引樹(shù)。但是在索引樹(shù)中沒(méi)有更新操作,只有刪除和插入操作。例如在某表id列上創(chuàng)建索引,某表id列上有值“101”,當(dāng)我將“101”更新為“110”時(shí),oracle同時(shí)會(huì)來(lái)更新索引樹(shù),但是oracle先將索引樹(shù)中的“101”標(biāo)示為刪除(實(shí)際并未刪除,只是標(biāo)示一下),然后再將“110”寫(xiě)到索引樹(shù)中。如果表更新比較頻繁,那么在索引中刪除標(biāo)示會(huì)越來(lái)越多,這時(shí)索引的查詢效率必然降低,所以我們應(yīng)該定期重建索引。來(lái)消除索引中這些刪除標(biāo)記。一般不會(huì)選擇先刪除索引,然后再重新創(chuàng)建索引,而是rebuild索引。在rebuild期間,用戶還可以使用原來(lái)的索引,并且rebuild新的索引時(shí)也會(huì)利用原來(lái)的索引信息,這樣重建索引會(huì)塊一些。15、 你對(duì)游標(biāo)的理解,游標(biāo)的分類,使用方法?游標(biāo)是結(jié)果集數(shù)據(jù)中的指針,作用是為遍歷結(jié)果集時(shí),存儲(chǔ)每條記錄的結(jié)果,1.聲明游標(biāo),2.打開(kāi)游標(biāo),3.提取游標(biāo),4.關(guān)閉游標(biāo)游標(biāo)for循環(huán)顯式游標(biāo),隱式游標(biāo),游標(biāo)變量!16、 存儲(chǔ)過(guò)程的用法?在存儲(chǔ)過(guò)程中異常的處理,分類?舉兩個(gè)預(yù)定義異常的例子?存儲(chǔ)過(guò)程:是預(yù)編譯數(shù)據(jù)庫(kù)SQL的集合存儲(chǔ)過(guò)程是預(yù)編譯過(guò)的,執(zhí)行時(shí)勿須編譯,執(zhí)行速度更快,存儲(chǔ)過(guò)程封裝了一批SQL語(yǔ)句,便于維護(hù)數(shù)據(jù)的完整性與一致性。并且可以多次調(diào)用。異常:自定義,預(yù)定義,非預(yù)定義No_Data_Found Too_Many_Rows CASE_NOT_FOUND17、 談?wù)勀銓?duì)分區(qū)索引的理解,說(shuō)說(shuō)分類和區(qū)別?分區(qū)表和一般表一樣可以建立索引,分區(qū)表可以創(chuàng)建局部索引和全局索引。當(dāng)分區(qū)中出現(xiàn)許多事務(wù)并且要保證所有分區(qū)中的數(shù)據(jù)記錄的唯一性時(shí)采用全局索引。1.3.1. 局部索引分區(qū)的建立:SQL create index dinya_idx_t on dinya_test(item_id)2 local3 (4 partition idx_1 tablespace dinya_space01,5 partition idx_2 tablespace dinya_space02,6 partition idx_3 tablespace dinya_space037 );Index created.SQL看查詢的執(zhí)行計(jì)劃,從下面的執(zhí)行計(jì)劃可以看出,系統(tǒng)已經(jīng)使用了索引:SQL select * from dinya_test partition(part_01) t where t.item_id=12;Execution Plan-0 SELECT STATEMENT Optimizer=CHOOSE (Cost=2 Card=1 Bytes=187)1 0 TABLE ACCESS (BY LOCAL INDEX ROWID) OF DINYA_TEST (Cost=2 Card=1 Bytes=187)2 1 INDEX (RANGE SCAN) OF DINYA_IDX_T (NON-UNIQUE) (Cost=1Card=1)Statistics-0 recursive calls0 db block gets4 consistent gets0 physical reads0 redo size334 bytes sent via SQL*Net to client309 bytes received via SQL*Net from client2 SQL*Net roundtrips to/from client1 sorts (memory)0 sorts (disk)2 rows processedSQL1.3.2. 全局索引分區(qū)的建立全局索引建立時(shí)global 子句允許指定索引的范圍值,這個(gè)范圍值為索引字段的范圍值:SQL create index dinya_idx_t on dinya_test(item_id)2 global partition by range(item_id)3 (4 partition idx_1 values less than (1000) tablespace dinya_space01,5 partition idx_2 values less than (10000) tablespace dinya_space02,6 partition idx_3 values less than (maxvalue) tablespace dinya_space037 );Index created.SQL本例中對(duì)表的item_id字段建立索引分區(qū),當(dāng)然也可以不指定索引分區(qū)名直接對(duì)整個(gè)表建立索引,如:SQL create index dinya_idx_t on dinya_test(item_id);Index created.SQL同樣的,對(duì)全局索引根據(jù)執(zhí)行計(jì)劃可以看出索引已經(jīng)可以使用:SQL select * from dinya_test t where t.item_id=12;Execution Plan-0 SELECT STATEMENT Optimizer=CHOOSE (Cost=2 Card=3 Bytes=561)1 0 TABLE ACCESS (BY GLOBAL INDEX ROWID) OF DINYA_TEST (Cost=2 Card=3 Bytes=561)2 1 INDEX (RANGE SCAN) OF DINYA_IDX_T (NON-UNIQUE) (Cost=1Card=3)Statistics-5 recursive calls0 db block gets10 consistent gets0 physical reads0 redo size420 bytes sent via SQL*Net to client309 bytes received via SQL*Net from client2 SQL*Net roundtrips to/from client3 sorts (memory)0 sorts (disk)5 rows processed18、 創(chuàng)建用戶的語(yǔ)句?Create user user_name identified by passworddefault tablespace tablespacename;grant create session to username;19、 談?wù)勀銓?duì)實(shí)例的理解?Oracle是用實(shí)例來(lái)進(jìn)行數(shù)據(jù)庫(kù)管理的,實(shí)例在用戶和orale數(shù)據(jù)庫(kù)之間充當(dāng)中間層的角色。每當(dāng)在服務(wù)器上啟動(dòng)數(shù)據(jù)庫(kù)時(shí),就在內(nèi)存中創(chuàng)建一個(gè)oracle實(shí)例,即oracle為數(shù)據(jù)庫(kù)分配內(nèi)存和創(chuàng)建并啟動(dòng)一個(gè)或多個(gè)oracle進(jìn)程,然后由實(shí)例加載并打開(kāi)數(shù)據(jù)庫(kù),最后由這個(gè)實(shí)例來(lái)訪問(wèn)和控制硬盤(pán)中的數(shù)據(jù)文件。20、 觸發(fā)器中能用COMMIT,為什么?在觸發(fā)器中不能使用COMMIT;等事務(wù)控制語(yǔ)句。因?yàn)橛|發(fā)器是事務(wù)觸發(fā)的如果有事務(wù)控制語(yǔ)句就會(huì)影響到觸發(fā)它的事務(wù)。即連帶觸發(fā)它的語(yǔ)句之前的已經(jīng)完成的沒(méi)有提交的語(yǔ)句都要受到影響。這是會(huì)影響到數(shù)據(jù)的一致性的。21、 有幾種表空間?數(shù)據(jù)表空間(永久表空間)、臨時(shí)表空間、撤銷表空間22、 歸檔模式與非歸檔模式?為什么歸檔模式可以恢復(fù)到任意時(shí)刻?歸檔是在重做日志文件被覆蓋之前,將該重做日志文件通過(guò)復(fù)制操作系統(tǒng)文件的 方式,保存到指定的位置。保存下來(lái)的重做日志文件的集合被稱為歸檔重做日志文件,復(fù)制的過(guò)程被稱為歸檔。在歸檔日志(ARCHIVELOG)模式下,ORACLE對(duì)重做日志文件進(jìn)行歸檔操作。非歸檔日志(NOARCHIVELOG)模式下,不會(huì)對(duì)重做日志文件進(jìn)行歸檔操作。由于非歸檔模式不會(huì)在覆蓋之前保存,這樣就造成了數(shù)據(jù)庫(kù)在一定時(shí)間之前的重做日志文件丟失,也就不能恢復(fù)到被覆蓋之前

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論