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

下載本文檔

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

文檔簡介

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

溫馨提示

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

評論

0/150

提交評論