亚洲精品久久久久久第一页-人妻少妇精彩视品一区二区三区-91国产自拍免费视频-免费一级a在线播放视频正片-少妇天天日天天射天天爽-国产大屁股喷水视频在线观看-操美女骚穴抽插性爱视频-亚洲 欧美 中文字幕 丝袜-成人免费无码片在线观看

2者基本區(qū)別解析 java引用傳遞和值傳遞的區(qū)別( 二 )


page :當(dāng)前頁面有效時(shí)間最短(頁面執(zhí)行期)request :HTTP請求開始到結(jié)束這段時(shí)間session :HTTP會話開始到結(jié)束這段時(shí)間application :服務(wù)器啟動到停止這段時(shí)間九大內(nèi)置對象:
request:請求對象作用域 Requestresponse:響應(yīng)對象 作用域 PagepageContext :頁面上下文對象 作用域 Pagesession :會話對象 作用域 Sessionapplication :應(yīng)用程序?qū)ο?作用域 Applicationout :輸出對象 作用域 Pageconfig :配置對象 作用域 Pagepage :頁面對象 作用域 Pageexception :例外對象 作用域 pagejsp和servlet的區(qū)別
1.jsp經(jīng)編譯后就變成了Servlet.(JSP的本質(zhì)就是Servlet,JVM只能識別java的類,不能識別JSP的代碼,Web容器將JSP的代碼編譯成JVM能夠識別的java類)2.jsp更擅長表現(xiàn)于頁面顯示,servlet更擅長于邏輯控制.3.Servlet中沒有內(nèi)置對象,Jsp中的內(nèi)置對象都是必須通過HttpServletRequest象,HttpServletResponse對象以及HttpServlet對象得到.Jsp是Servlet的一種簡化,使用Jsp只需要完成程序員需要輸出到客戶端的內(nèi)容,Jsp中的Java腳本如何鑲嵌到一個(gè)類中,由Jsp容器完成 。而Servlet則是個(gè)完整的Java類,這個(gè)類的Service方法用于生成對客戶端的響應(yīng) 。servlet生命周期
1.加載和實(shí)例化2.初始化3.請求處理4.服務(wù)終止加載(服務(wù)器啟動時(shí),會到web.xml文件中去找到Servlet文件的配置并創(chuàng)建servlet的實(shí)例) →初始化(init()此方法只執(zhí)行一次) →執(zhí)行(service(),doGet(),doPost()) →銷毀(銷毀destory())service():方法本身包含了doGet()和doPost().如果服務(wù)器發(fā)現(xiàn)了service()方法,則不再執(zhí)行doGet(),doPost().一般不建議去重寫父類的service方法.因?yàn)橹貙懥舜朔椒╠oGet方法和doPost方法將得不到利用.沒有service()方法默認(rèn)執(zhí)行doGet()方法.cookie和session區(qū)別以及JWT與Session的差異
1、cookie數(shù)據(jù)存放在客戶的瀏覽器上,session數(shù)據(jù)放在服務(wù)器上 。2、cookie不是很安全,別人可以分析存放在本地的cookie并進(jìn)行cookie欺騙,考慮到安全應(yīng)當(dāng)使用session 。3、session會在一定時(shí)間內(nèi)保存在服務(wù)器上 。當(dāng)訪問增多,會比較占用你服務(wù)器的性能,考慮到減輕服務(wù)器性能方面,應(yīng)當(dāng)使用cookie 。4、單個(gè)cookie保存的數(shù)據(jù)不能超過4K,很多瀏覽器都限制一個(gè)站點(diǎn)最多保存20個(gè)cookie 。5、可以考慮將登陸信息等重要信息存放為session,其他信息如果需要保留,可以放在cookie中 。1.Session是在服務(wù)器端的,而JWT是在客戶端的 。2.Session方式存儲用戶信息的最大問題在于要占用大量服務(wù)器內(nèi)存,增加服務(wù)器的開銷 。3.JWT方式將用戶狀態(tài)分散到了客戶端中,可以明顯減輕服務(wù)端的內(nèi)存壓力 。4.Session的狀態(tài)是存儲在服務(wù)器端,客戶端只有session id;而Token的狀態(tài)是存儲在客戶端 。JWT與OAuth的區(qū)別OAuth2是一種授權(quán)框架,JWT是一種認(rèn)證協(xié)議 。無論使用哪種方式切記用HTTPS來保證數(shù)據(jù)的安全性O(shè)Auth2用在使用第三方賬號登錄的情況(比如使用weibo, qq, github登錄某個(gè)app)JWT是用在前后端分離, 需要簡單的對后臺API進(jìn)行保護(hù)時(shí)使用 。Cookie和LocalStorage和sessionStorage的區(qū)別轉(zhuǎn)發(fā)和重定向的區(qū)別轉(zhuǎn)發(fā):瀏覽器地址欄不變,1次請求,request請求,可以訪問web-inf,可以共享request請求域數(shù)據(jù),只能跳轉(zhuǎn)工程內(nèi)的資源
重定向:瀏覽器變化,2次請求,response響應(yīng),不能訪問web-inf,不可以共享request請求域數(shù)據(jù),可以跳轉(zhuǎn)任意資源
餓漢于懶漢單例模式單例模式設(shè)計(jì):第一步:私有化構(gòu)造器第二步:提供一個(gè)公共靜態(tài)返回該類實(shí)例對象的方法 餓漢式:先初始化對象,Single類一進(jìn)內(nèi)存,就已經(jīng)創(chuàng)建好了對象 。class Single{private Single(){}private static Single s=new Single();public static Single getInstance(){returns;}}懶漢式:對象是方法被調(diào)用時(shí),才初始化,也叫做對象的延時(shí)加載 。class Single{//Single類進(jìn)內(nèi)存,對象還沒存在,只有調(diào)用了getInstance方法時(shí),才建立對象private Single(){}private static Single s=null;public static synchronize Single getInstance(){if(s==null){s=new single();}returns;}}操作共享的數(shù)據(jù)有多條,會出現(xiàn)線程安全問題,在方法加一個(gè)同步過濾器和攔截器的區(qū)別①攔截器是基于java的反射機(jī)制的,而過濾器是基于函數(shù)回調(diào) 。②攔截器不依賴與servlet容器,過濾器依賴與servlet容器 。③攔截器只能對action請求起作用,而過濾器則可以對幾乎所有的請求起作用 。④攔截器可以訪問action上下文、值棧里的對象,而過濾器不能訪問 。⑤在action的生命周期中,攔截器可以多次被調(diào)用,而過濾器只能在容器初始化時(shí)被調(diào)用一次 。⑥攔截器可以獲取IOC容器中的各個(gè)bean,而過濾器就不行,這點(diǎn)很重要,在攔截器里注入一個(gè)service,可以調(diào)用業(yè)務(wù)邏輯 。#和$的區(qū)別#{}和${}的區(qū)別#{} 在mapper的配置文件的sql語句中,它是占位符,相當(dāng)于 ? 號 。${} 在 mapper 的配置文件的 sql 語句中,它是原樣輸出變量的值,然后以字符串拼接的功能進(jìn)行操作 。${} 中只能寫value,或者是@Param命名參數(shù)后的參數(shù)名稱在輸出參數(shù)的時(shí)候,我們并不推薦使用 ${} 來輸出 。因?yàn)榭赡軙?dǎo)至 sql 注入問題的存在 。什么是SQL注入?如果SQL是根據(jù)用戶輸入拼出來,如果用戶故意輸入可以讓后臺解析失敗的字符串,這就是SQL注入例如,用戶在輸入密碼的時(shí)候,輸入' or 1=1', 這樣,后臺的程序在解析的時(shí)候,拼成的SQL語句,可能是這樣的: select count(1) from tab where user=userinput and pass='' or 1=1;看這條語句,可以知道,在解析之后,用戶沒有輸入密碼,加了一個(gè)恒等的條件 1=1,這樣,這段SQL執(zhí)行的時(shí)候,返回的 count值肯定大于1的,如果程序的邏輯沒加過多的判斷,這樣就能夠使用用戶名 userinput登陸,而不需要密碼 。防止SQL注入,首先要對密碼輸入中的單引號進(jìn)行過濾,再在后面加其它的邏輯判斷,或者不用這樣的動態(tài)SQL拼 。&&和&與|和||的區(qū)別?&和&&的區(qū)別?&和&&左邊的式子為true的時(shí)候,右邊的式子都會執(zhí)行 。左邊的式子為false的時(shí)候 。&右邊的式子仍然會執(zhí)行 。&&右邊的式子將不再執(zhí)行 。|和||的區(qū)別?|和||左邊的式子為false的時(shí)候,右邊的式子都會執(zhí)行 。左邊的式子為true的時(shí)候 。|右邊的式子仍然會執(zhí)行 。||右邊的式子將不再執(zhí)行 。final finally finalize區(qū)別? final修飾符,用來修飾變量,方法和類,分別表示屬性不可變,方法不可被重寫,類不可被繼承,finally是異常語句中處理語句,表示總是執(zhí)行;finalize表示在垃圾回收機(jī)制時(shí)使該對象狀態(tài)恢復(fù)的方法int和Integer的區(qū)別?1、Integer是int的包裝類,int則是java的一種基本數(shù)據(jù)類型 2、Integer變量必須實(shí)例化后才能使用,而int變量不需要 3、Integer實(shí)際是對象的引用,當(dāng)new一個(gè)Integer時(shí),實(shí)際上是生成一個(gè)指針指向此對象;而int則是直接存儲數(shù)據(jù)值 4、Integer的默認(rèn)值是null,int的默認(rèn)值是0equals與==的區(qū)別?==:如果==兩邊是基本數(shù)據(jù)類型,那么比較的是具體的值 。如果==兩邊是引用數(shù)據(jù)類型,那么比較的是地址值 。(兩個(gè)對象是否指向同一塊內(nèi)存) equals:如果沒有重寫equals方法那么調(diào)用的是Object中的equals方法,比較的是地址值 。如果重寫了euqlas方法(比屬性內(nèi)容)那么就比較的是對象中屬性的內(nèi)容 。StringBuff 和StringBuilder及String區(qū)別?String類是不可變類,任何對String的改變都會引發(fā)新的String對象的生成;StringBuffer是可變類,任何對它所指代的字符串的改變都不會產(chǎn)生新的對象,線程安全的 。StringBuilder是可變類,線性不安全的,不支持并發(fā)操作,不適合多線程中使用,但其在單線程中的性能比StringBuffer高 。Override和Overload的含義去區(qū)別?1. Override 特點(diǎn)1、覆蓋的方法的標(biāo)志必須要和被覆蓋的方法的標(biāo)志完全匹配,才能達(dá)到覆蓋的效果;2、覆蓋的方法的返回值必須和被覆蓋的方法的返回一致;3、覆蓋的方法所拋出的異常必須和被覆蓋方法的所拋出的異常一致,或者是其子類; 4、方法被定義為final不能被重寫 。5、對于繼承來說,如果某一方法在父類中是訪問權(quán)限是private,那么就不能在子類對其進(jìn)行重寫覆蓋,如果定義的話,也只是定義了一個(gè)新方法,而不會達(dá)到重寫覆蓋的效果 。(通常存在于父類和子類之間 。)2.Overload 特點(diǎn)1、在使用重載時(shí)只能通過不同的參數(shù)樣式 。例如,不同的參數(shù)類型,不同的參數(shù)個(gè)數(shù),不同的參數(shù)順序當(dāng)然,同一方法內(nèi)的幾個(gè)參數(shù)類型必須不一樣,例如可以是fun(int, float),但是不能為fun(int, int)2、不能通過訪問權(quán)限、返回類型、拋出的異常進(jìn)行重載;3、方法的異常類型和數(shù)目不會對重載造成影響;4、重載事件通常發(fā)生在同一個(gè)類中,不同方法之間的現(xiàn)象 。5、存在于同一類中,但是只有虛方法和抽象方法才能被覆寫 。抽象類和接口及普通類的區(qū)別?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)父類抽象方法,那么該子類只能是抽象類 。同樣,一個(gè)實(shí)現(xiàn)接口的時(shí)候,如不能全部實(shí)現(xiàn)接口方法,那么該類也只能為抽象類 。6、抽象方法只能申明,不能實(shí)現(xiàn),接口是設(shè)計(jì)的結(jié)果,抽象類是重構(gòu)的結(jié)果7、抽象類里可以沒有抽象方法8、如果一個(gè)類里有抽象方法,那么這個(gè)類只能是抽象類9、抽象方法要被實(shí)現(xiàn),所以不能是靜態(tài)的,也不能是私有的 。10、接口可繼承接口,并可多繼承接口,但類只能單根繼承 。堆和棧的區(qū)別?一.堆??臻g分配區(qū)別:1.棧(操作系統(tǒng)):由操作系統(tǒng)自動分配釋放,存放函數(shù)的參數(shù)值,局部變量的值等 。其操作方式類似于數(shù)據(jù)結(jié)構(gòu)中的棧;2.堆(操作系統(tǒng)): 一般由程序員分配釋放,若程序員不釋放,程序結(jié)束時(shí)可能由OS回收,分配方式倒是類似于鏈表 。二.堆棧緩存方式區(qū)別:1.棧使用的是一級緩存,他們通常都是被調(diào)用時(shí)處于存儲空間中,調(diào)用完畢立即釋放;2.堆是存放在二級緩存中,生命周期由虛擬機(jī)的垃圾回收算法來決定(并不是一旦成為孤兒對象就能被回收) 。所以調(diào)用這些對象的速度要相對來得低一些 。三.堆棧數(shù)據(jù)結(jié)構(gòu)區(qū)別:堆(數(shù)據(jù)結(jié)構(gòu)):堆可以被看成是一棵樹,如:堆排序;棧(數(shù)據(jù)結(jié)構(gòu)):一種先進(jìn)后出的數(shù)據(jù)結(jié)構(gòu) 。Spring Bean生命周期實(shí)例化bean對象


以上關(guān)于本文的內(nèi)容,僅作參考!溫馨提示:如遇健康、疾病相關(guān)的問題,請您及時(shí)就醫(yī)或請專業(yè)人士給予相關(guān)指導(dǎo)!

「愛刨根生活網(wǎng)」www.malaban59.cn小編還為您精選了以下內(nèi)容,希望對您有所幫助: