freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

java開發(fā)人員面試寶典(參考版)

2024-08-10 00:13本頁面
  

【正文】 缺點(diǎn):可移植性差,相同的存儲(chǔ)過程并不能跨多個(gè)數(shù)據(jù)庫進(jìn)行操作大量使用存儲(chǔ)過程后,首先會(huì)使服務(wù)器壓力增大,而且維護(hù)難度逐漸增加。通過調(diào)用指定存儲(chǔ)過程的名字(可有參,可無參)來執(zhí)行。 視圖概述視圖可以視為“虛擬表”或“存儲(chǔ)的查詢”創(chuàng)建視圖所依據(jù)的表稱為“基表”視圖的優(yōu)點(diǎn):提供了另外一種級(jí)別的表安全性:隱藏了一些關(guān)鍵的字段簡化的用戶的SQL命令隔離基表結(jié)構(gòu)的改變 存儲(chǔ)過程概述存儲(chǔ)過程(Stored Procedure)  可以包含邏輯判斷的sql語句集合。第二范式:需要確保數(shù)據(jù)庫表中的每一列都和主鍵相關(guān),而不能只與主鍵的某一部 分相關(guān)(主要針對聯(lián)合主鍵而言)。Prepared statement是預(yù)編譯的,而statement不是,在每次執(zhí)行sql語句的增刪改時(shí),如果是一條數(shù)據(jù)兩者沒差距,但如果數(shù)據(jù)量大于1,那么每次執(zhí)行sql語句statement都要重新編譯一次,而Prepared statement不用,Prepared statement的運(yùn)行效率大于statement;從代碼的可維護(hù)性和可讀性來說,雖然用Prepared statement來代替statement會(huì)使代碼多出幾行,但這樣的代碼無論從可讀性還是可維護(hù)性來說,都比直接使用statement的代碼高很多檔次;最重要的一點(diǎn),從安全角度來說,使用Prepared statement可以大大提高程序的安全性,因?yàn)镻repared statement是用‘?’傳參,可以防止sql注入,具有安全性,而statement用的是‘+’字符串拼接,安全性較低。 主鍵和唯一索引的區(qū)別? 在創(chuàng)建主鍵的同時(shí)會(huì)生成對應(yīng)的唯一索引,主鍵在保證數(shù)據(jù)唯一性的同時(shí)不允許為 空,而唯一可以有一個(gè)為空數(shù)據(jù)項(xiàng),一個(gè)表中只能有一個(gè)主鍵,但是一個(gè)主鍵可以 有多個(gè)字段,一個(gè)表中可以有多個(gè)唯一索引。rownum用于標(biāo)記結(jié)果集中結(jié)果順序的一個(gè)字段,它的特點(diǎn)是按順序標(biāo)記,而且是連續(xù)的,換句話說就是只有有rownum=1的記錄,才可能有rownum=2的記錄。而id是邏輯上的唯一標(biāo)識(shí),所以rowid查找速度要快于id,是目前最快的定位一條記錄的方式。日期類型Date 日期(日月年) DDMMYY(HHMISS)Timestamp 跟date比 它可以精確到微秒。P表示精度,s表示小數(shù)后的位數(shù)。Real 實(shí)數(shù)類型。數(shù)值型Integer 整數(shù)類型,小的整數(shù)。但這樣也增加了數(shù)據(jù)庫的負(fù)擔(dān)。比如:當(dāng)我們在進(jìn)行文件上傳時(shí),我們一般把上傳的文件存在硬盤上,可以不占用 數(shù)據(jù)庫,下載時(shí),如果項(xiàng)目遷移時(shí),文件也要跟著遷移。 ()。amp。 (非批量操作) (批量操作)(內(nèi)存溢出) 當(dāng)數(shù)據(jù)達(dá)到一定額度的時(shí)候就和數(shù)據(jù)庫進(jìn)行交互,分多次進(jìn)行(分段批量操作)  (500或者1000)()。在jdbc中進(jìn)行批量插入的核心API為 addBatch,executeBatch大數(shù)據(jù)量的插入問題:(jdbc,hibernate,ibatis)(很耗時(shí)間)(內(nèi)存溢出)(推薦) jdbc批量處理數(shù)據(jù)是通過PreparedStatement對象的 addbatch(),executebatch() clearbatch()進(jìn)行和數(shù)據(jù)庫的交互。首先在分段批量提交的時(shí)候,我們不采用事務(wù),這樣就保證了合法的數(shù)據(jù)就自動(dòng)提交,不合法的數(shù)據(jù)就自己自動(dòng)進(jìn)行回滾,為了避免不合法數(shù)據(jù)影響后續(xù)合法數(shù)據(jù)的提交,采用定義業(yè)務(wù)規(guī)則字典表,實(shí)現(xiàn)對數(shù)據(jù)的驗(yàn)證,將不合法的數(shù)據(jù)記錄下來,供用戶進(jìn)行后續(xù)處理,而合法的數(shù)據(jù)就全部提交。 hibernate in action推薦使用c3p0和proxool?,F(xiàn)在常用的開源數(shù)據(jù)連接池主要有c3p0、dbcp和proxool三種,其中: hibernate開發(fā)組推薦使用c3p0。 數(shù)據(jù)庫連接池?cái)?shù)據(jù)庫連接池的優(yōu)點(diǎn)運(yùn)行原理:在我們不使用數(shù)據(jù)庫連接池的時(shí)候,每次訪問數(shù)據(jù)庫都需要?jiǎng)?chuàng)建連接,使用完成之后需要釋放關(guān)閉連接,而這樣是很耗費(fèi)資源的。 執(zhí)行SQL語句,并處理結(jié)果。通常通過Statement實(shí)例實(shí)現(xiàn),執(zhí)行動(dòng)態(tài)SQL語句。 提供URL,數(shù)據(jù)庫用戶名密碼,創(chuàng)建Connection連接對象。對符合的登入者才跳轉(zhuǎn)到正確頁面。攔截器在項(xiàng)目中的運(yùn)用:同時(shí)可以減輕代碼冗余,提高重用率。為了實(shí)現(xiàn)某些操作,我們可以自定義攔截器,自定義攔截器有三種方式定義。代碼如下:package name=demo extends=strutsdefault ... /package 攔截器是Struts2框架的核心,它主要完成解析請求參數(shù)、將請求參數(shù)賦值給Action屬性、執(zhí)行數(shù)據(jù)校驗(yàn)、文件上傳等工作,在默認(rèn)情況下(也就是action中未引用攔截器時(shí))會(huì)自動(dòng)引用一些攔截器。如timer、params等。在執(zhí)行Action的execute方法之前,在執(zhí)行完所有引用的攔截器的intercept方法后,會(huì)執(zhí)行Action的execute方法。 攔截器什么是攔截器:攔截器是AOP中的概念,它本身是一段代碼,可以通過定義“織入點(diǎn)”,來指定攔截器的代碼在“織入點(diǎn)”的前后執(zhí)行,從而起到攔截的作用正如上面 Struts2的Reference中講述的,Struts2的Interceptor,其攔截的對象是Action代碼,可以定義在Action代碼之前或者之后執(zhí)行攔截器的代碼。:token標(biāo)簽,在訪問該頁面時(shí)就會(huì)生成隱藏域,該隱藏域中包含一個(gè)隨機(jī)生成的字符串,并把該字符串存入session中。 分頁步驟①前臺(tái)封裝一個(gè)顯示分頁的組件②查詢總條數(shù)③后臺(tái)封裝分頁工具類,計(jì)算開始位置、結(jié)束位置、總頁數(shù)④后臺(tái)寫支持分頁的sql語句⑤前臺(tái)包含分頁組件,實(shí)現(xiàn)分頁效果注意:查詢總條數(shù)的where和查詢列表信息的where條件要保證一致。spring在ssh充當(dāng)粘合劑,粘合strutsspinghibernate,主要用來進(jìn)行事物的控制,hibernate充當(dāng)數(shù)據(jù)庫持久層,主要用它來與數(shù)據(jù)庫交互,提高開發(fā)效率,減輕程序員sql控制要求,而且hibernate通過反射機(jī)制,有靈活的映射性,還支持各種關(guān)系,一對一,一對多,多對多。 SSH概述ssh是web開發(fā)中常見的一種框架sstrutssspringhhibernate其中struts在框架中充當(dāng)控制器,實(shí)現(xiàn)MVC,主要用來處理用戶的請求,和跳轉(zhuǎn)頁面。三級(jí)緩存也叫查詢緩存,查詢緩存是針對普通屬性結(jié)果集的緩存,對實(shí)體對象的結(jié)果集只緩存id。二級(jí)緩存的生命周期和sessionFactory的生命周期保持一致,可以跨session,被多個(gè)session共享,hibernate3默認(rèn)開啟二級(jí)緩存,也可以手動(dòng)開啟并指定緩存插件如ehcache,oscache等。一級(jí)緩存的生命周期和session的生命周期保持一致,hibernate默認(rèn)就啟用了一級(jí)緩存,不能將其關(guān)閉,()(object)來管理一級(jí)緩存。 Transaction接口負(fù)責(zé)操作相關(guān)的事務(wù)。Session對象是非線程安全的。 Session(會(huì)話)接口是Hibernate應(yīng)用使用的主要接口。它充當(dāng)數(shù)據(jù)存儲(chǔ)源的代理,并負(fù)責(zé)創(chuàng)建Session對象。()并創(chuàng)建一個(gè)SessionFactory對象。 Hibernate三種狀態(tài)及如何轉(zhuǎn)換Transient(臨時(shí)) new 一個(gè)初始化對象后,并沒有在數(shù)據(jù)庫里保存數(shù)據(jù),處于臨時(shí)狀態(tài);Persistent(持久化)當(dāng)執(zhí)行save()方法,()方法之前,內(nèi)存中的對象與數(shù)據(jù)庫有對應(yīng)關(guān)系處于持久化狀態(tài);Detached(托管/游離)   ()之后,處于托管狀態(tài);狀態(tài)的轉(zhuǎn)換 處于托管狀態(tài)下,調(diào)用update()方法后,轉(zhuǎn)換為持久化狀態(tài); 在持久化狀態(tài)下,執(zhí)行delete()方法后,轉(zhuǎn)換為臨時(shí)狀態(tài); 在未初始化對象之前,調(diào)用get(),load(),find(),iterate()之后,直接進(jìn)入持久化狀態(tài)。執(zhí)行相關(guān)的操作,().mit()。:方言(用哪個(gè)數(shù)據(jù)庫),數(shù)據(jù)庫連接信息,包含*.,映射文件,也可以配事務(wù)。 JDBC使用的是SQL語句,Hibernate使用的是HQL語句,但是HQL語句最終還會(huì)隱式轉(zhuǎn)換成SQL語句執(zhí)行。 Hibernate是一個(gè)和JDBC密切關(guān)聯(lián)的框架,所以Hibernate的兼容性和JDBC驅(qū)動(dòng),和數(shù)據(jù)庫都有一定的關(guān)系,但是和使用它的Java程序,和App Server沒有任何關(guān)系,也不存在兼容性問題。 Hibernate是JDBC的輕量級(jí)的對象封裝,它是一個(gè)獨(dú)立的對象持久層框架。 Hibernate、Ibatis、JDBC區(qū)別Hibernate屬于全自動(dòng), Ibatis屬于半自動(dòng),Jdbc屬于手動(dòng),從開發(fā)效率上講hibernate較高,ibatis居中,jdbc較低,從執(zhí)行效率上講hibernate較低,ibatis居中,jdbc較高,因?yàn)閖dbc是手工寫sql語句,程序員對sql的控制能力更大,可以根據(jù)業(yè)務(wù)需要進(jìn)行優(yōu)化,而ibatis雖然也可以對sql進(jìn)行優(yōu)化,但是他里面將resultset封裝為實(shí)體的過程中采用了反射機(jī)制所以一定程度上影響了性能,而hibernate因?yàn)楦叨确庋b所以開發(fā)效率相對較高,但正因?yàn)檫@個(gè)原因,所以程序員在對sql語句的控制和優(yōu)化方面相對比較弱,而且在將resultset封裝成實(shí)體的過程中也采用了反射機(jī)制,所以在性能方面較低。返回結(jié)果:    load檢索不到記錄時(shí),會(huì)拋ObjectNotFoundException異常。 Struts2的常用標(biāo)簽首先需要引用 %taglib prefix=s uri=/strutstags% s:if/s:if 判斷標(biāo)簽 后面可跟 s:else s:iterator /s:iterator 迭代標(biāo)簽 s:include/s:include 引入標(biāo)簽 可以把一個(gè)JSP頁面或者servlet引入一個(gè)頁面中 s:property/s:property 輸出標(biāo)簽 s:set/s:set 標(biāo)簽賦予變量一個(gè)特定范圍內(nèi)的值 s:form/s:form 表單標(biāo)簽 s:testarea/s:textarea 文本域標(biāo)簽 s:select/s:select 下拉標(biāo)簽 s:url/s:url 聲明一個(gè)url的路徑最常用的是:判斷s:if/s:if 循環(huán)s:iterator/s:terator 輸出s:property/s:property Hibernate可get和load的區(qū)別加載方式:    load為延遲加載(返回的是一個(gè)只有id屬性的代理,只有使用該對象屬性時(shí),才 發(fā)出sql語句)。 xslt :該XML可以通過XSL模板進(jìn)行轉(zhuǎn)換。 stream:向?yàn)g覽器發(fā)送InputSream對象對下載的內(nèi)容和圖片非常有用。 freemarker:呈現(xiàn)Freemarker模板。 redirectAction:將用戶重定向到一個(gè)已定義好的action。 Struts2在的type類型 dispatcher:它是默認(rèn)的,用來轉(zhuǎn)向頁面,通常處理JSP。springMVC用方法來接受參數(shù)。springMVC 的前端總控制器為 DispatcherServlet,struts1 的前端總控制器為 ActionServlet,struts2 的前端總控制器為 FilterDispatcher。說明:,核心總控制器:,核心總控制器: SpringMVC、Struts1和Struts2區(qū)別 springMVC單例非線程安全,struts1單例非線程安全,struts2線程安全對每個(gè)請求都產(chǎn)生一個(gè)實(shí)例。核心控制器:struts1的前端總控制器(核心總控制器)為ActionServlet,是一個(gè)Servlet類。封裝請求參數(shù):struts1中強(qiáng)制使用ActionForm對象 封裝請求的參數(shù)。線程模型方面:struts1的Action是單實(shí)例的,一個(gè)Action的實(shí)例處理所有的請求。 Struts1和Struts2區(qū)別依賴關(guān)系:Struts2以WebWork(也就是MVC框架)為核心。 Handler返回的ModelAndView()只是一個(gè)邏輯視圖并不是一個(gè)正式的視圖,DispatcherSevlet通過ViewResolver將邏輯視圖轉(zhuǎn)化為真正的視圖View。 DispatcherServlet根據(jù)HandlerMapping找到對應(yīng)的Handle,將處理權(quán)交給Handler(Handler將具體的處理進(jìn)行封裝),再由具體的HandlerAdapter對Handler進(jìn)行具體的調(diào)用。Spring里的配置是很多的,很難都記住,但是Spring里的精華也無非就是以上的兩點(diǎn),把以上兩點(diǎn)跟理解了 也就基本上掌握了Spring。Spring里用的最經(jīng)典的一個(gè)設(shè)計(jì)模式就是:模板方法模式。Spring目的:就是讓對象與對象(模塊與模塊)之間的關(guān)系沒有通過代碼來關(guān)聯(lián),都是通過配置類說明Spring還有一個(gè)核心就是AOP這個(gè)就是面向切面編程,可以為某一類對象 進(jìn)行監(jiān)督和控制(也就是在調(diào)用這類對象的具體方法的前后去調(diào)用你指定的 模塊)從而達(dá)到對一個(gè)模塊擴(kuò)充的功能。動(dòng)態(tài)注入,讓一個(gè)對象的創(chuàng)建不用new了,可以自動(dòng)的生產(chǎn),這其實(shí)就是利用java里的反射。 Hibernate運(yùn)行原理,根據(jù)配置文件的信息去創(chuàng)建sessionFactory,sessionFactory是線程安全的,是一個(gè)session工廠,用來創(chuàng)建session,session是線程不安全的,相當(dāng)于jdbc的connection,最后通過session去
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1