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

正文內(nèi)容

java開(kāi)發(fā)人員面試寶典(編輯修改稿)

2024-08-26 00:13 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 一定要配合例子代碼來(lái)說(shuō)明,才顯得自己真明白。 多線程有幾種實(shí)現(xiàn)方式多線程有兩種實(shí)現(xiàn)方法,分別是繼承Thread類與實(shí)現(xiàn)Runnable接口同步的實(shí)現(xiàn)方面有五種,分別是synchronized、wait與notify、sleep、suspend、joinsynchronized: 一直持有鎖,直至執(zhí)行結(jié)束wait():使一個(gè)線程處于等待狀態(tài),并且釋放所持有的對(duì)象的lock,需捕獲異常。sleep():使一個(gè)正在運(yùn)行的線程處于睡眠狀態(tài),是一個(gè)靜態(tài)方法,需捕獲異常,不釋放鎖。notify():喚醒一個(gè)處于等待狀態(tài)的線程,注意的是在調(diào)用此方法的時(shí)候,并不能確切的喚醒某一個(gè)等待狀態(tài)的線程,而是由JVM確定喚醒哪個(gè)線程,而且不是按優(yōu)先級(jí)。notityAll():喚醒所有處入等待狀態(tài)的線程,注意并不是給所有喚醒線程一個(gè)對(duì)象的鎖,而是讓它們競(jìng)爭(zhēng)。 啟動(dòng)一個(gè)線程用run還是start啟動(dòng)一個(gè)線程是調(diào)用start()方法,使線程就緒狀態(tài),以后可以被調(diào)度為運(yùn)行狀態(tài),一個(gè)線程必須關(guān)聯(lián)一些具體的執(zhí)行代碼,run()方法是該線程所關(guān)聯(lián)的執(zhí)行代碼。 List和Map的區(qū)別一個(gè)是存儲(chǔ)單列數(shù)據(jù)的集合,另一個(gè)是存儲(chǔ)鍵和值的雙列數(shù)據(jù)的集合,List中存儲(chǔ)的數(shù)據(jù)是有順序,并且允許重復(fù);Map中存儲(chǔ)的數(shù)據(jù)是沒(méi)有順序的,其鍵是不能重復(fù)的,它的值是可以有重復(fù)的。 List有重復(fù)值,Map沒(méi)有重復(fù)key,但可以有重復(fù)值 List有序,Map不一定有序 List只能存單列值,Map可以存雙列值 說(shuō)出ArrayList,Vector, LinkedList的存儲(chǔ)性能和特性1. ArrayList和Vector使用數(shù)組存儲(chǔ)元素;LinkedList使用鏈表存儲(chǔ)元素2. ArrayList和Vector插入刪除數(shù)據(jù)時(shí),需要搬運(yùn)數(shù)據(jù),效率較差;LinkedList使用鏈表,不需要搬運(yùn)數(shù)據(jù),效率高3. ArrayList和Vectory查詢時(shí),按數(shù)組下標(biāo)查詢,不需要遍歷,效率高;LinkedList需要遍歷,查詢效率底 Java序列化序列化是把內(nèi)存Java對(duì)象保存到存儲(chǔ)介質(zhì)中,反序列化就是把存儲(chǔ)介質(zhì)中的數(shù)據(jù)轉(zhuǎn)化為Java對(duì)象。Java通過(guò)ObjectInputStream和ObjectOutputStream實(shí)現(xiàn)序列化和反序列化。需要進(jìn)行序列化的對(duì)象的類必須實(shí)現(xiàn)Serializable接口,通常情況下需要滿足以下條件:1. 強(qiáng)烈建議手動(dòng)生成serialVersionUID常量2. 如果需要加解密的話,需要實(shí)現(xiàn)兩個(gè)方法readObject和writeObject方法3. 如果使用Hibernate二級(jí)緩存或其它緩存服務(wù)器的話,對(duì)象必須是可序列化的4. 如果需要遠(yuǎn)程調(diào)用對(duì)象或傳值的話,則對(duì)像需要序列化5. 序列化類的可序列化成員必須也是可序列化的,不需要序列化的屬性用transient修飾 堆和棧的區(qū)別Java的內(nèi)存分為兩類,一類是棧內(nèi)存,一類是堆內(nèi)存。棧中存儲(chǔ)的是當(dāng)前線程的方法調(diào)用、基本數(shù)據(jù)類型和對(duì)象的引用,棧是有序的。堆中存儲(chǔ)的是對(duì)象的值,堆是無(wú)序的。方法中的局部變量使用final修飾后,放在堆中,而不是棧中。 什么時(shí)候用斷言assertion(斷言)在軟件開(kāi)發(fā)中是一種常用的調(diào)試方式,很多開(kāi)發(fā)語(yǔ)言中都支持這種機(jī)制。在實(shí)現(xiàn)中,assertion就是在程序中的一條語(yǔ)句,它對(duì)一個(gè)boolean表達(dá)式進(jìn)行檢查,一個(gè)正確程序必須保證這個(gè)boolean表達(dá)式的值為true;如果該值為false,說(shuō)明程序已經(jīng)處于不正確的狀態(tài)下,assert將給出警告或退出。一般來(lái)說(shuō),assertion用于保證程序最基本、關(guān)鍵的正確性。assertion檢查通常在開(kāi)發(fā)和測(cè)試時(shí)開(kāi)啟。為了提高性能,在軟件發(fā)布后,assertion檢查通常是關(guān)閉的。 Java中會(huì)有內(nèi)存泄露嗎會(huì),原因:如果對(duì)象被集合類引用時(shí),如果只是添加,而不刪除,會(huì)引起內(nèi)存泄漏,嚴(yán)重時(shí)會(huì)發(fā)出內(nèi)存溢出。Java中的內(nèi)存泄露的情況:長(zhǎng)生命周期的對(duì)象持有短生命周期對(duì)象的引用就很可能發(fā)生內(nèi)存泄露。內(nèi)存泄露的另外一種情況:當(dāng)一個(gè)對(duì)象被存儲(chǔ)進(jìn)HashSet或HashMap中以后,就不能修改這個(gè)對(duì)象中的那些參與計(jì)算哈希值的字段了,否則,對(duì)象修改后的哈希值與最初存儲(chǔ)進(jìn)HashSet集合中時(shí)的哈希值就不同了,在這種情況下,即使在contains方法使用該對(duì)象的當(dāng)前引用作為的參數(shù)去HashSet集合中檢索對(duì)象,也將返回找不到對(duì)象的結(jié)果,這也會(huì)導(dǎo)致無(wú)法從HashSet集合中單獨(dú)刪除當(dāng)前對(duì)象,造成內(nèi)存泄露。 簡(jiǎn)述反射的作用假如我們有兩個(gè)程序員,一個(gè)程序員在寫程序的時(shí)候,需要使用第二個(gè)程序員所寫的類,但第二個(gè)程序員并沒(méi)完成他所寫的類。那么第一個(gè)程序員的代碼能否通過(guò)編譯呢?這是不能通過(guò)編譯的。利用Java反射的機(jī)制,就可以讓第一個(gè)程序員在沒(méi)有得到第二個(gè)程序員所寫的類的時(shí)候,來(lái)完成自身代碼的編譯。Java的反射機(jī)制它知道類的基本結(jié)構(gòu),這種對(duì)Java類結(jié)構(gòu)探知的能力,我們稱為Java類的“自審”。大家都用過(guò)Jcreator和eclipse。當(dāng)我們構(gòu)建出一個(gè)對(duì)象的時(shí)候,去調(diào)用該對(duì)象的方法和屬性的時(shí)候。一按點(diǎn),編譯工具就會(huì)自動(dòng)的把該對(duì)象能夠使用的所有的方法和屬性全部都列出來(lái),供用戶進(jìn)行選擇。這就是利用了Java反射的原理,是對(duì)我們創(chuàng)建對(duì)象的探知、自審。 2 Servlet篇 Servlet概述Servlet是一個(gè)web容器,我們通常用的servlet是ervlet,而ervlet又是繼承于genericservlet,而genericservlet又實(shí)現(xiàn)了servlet接口。servlet的生命周期是 :先進(jìn)行實(shí)例化,然后是初始化,然后是提高服務(wù),然后銷毀,最后不可用,在這五個(gè)生命周期,其中,初始化是調(diào)用的init方法,這個(gè)方法只有一個(gè),而提高服務(wù)的時(shí)候調(diào)用的是service方法,而我們具體在我們所寫的這個(gè)方法中,因?yàn)槲覀兝^承了ervlet,其實(shí)就是對(duì)應(yīng)了doGet(),doPost(),這種方法,然后據(jù)我了解,servlet是單例的。非線程安全的,我們通常有一下幾種方案來(lái)解決:第一種,繼承SingleThreadModel但是這樣每次都會(huì)創(chuàng)建一個(gè)新的servlet實(shí)例,但這樣消耗服務(wù)器的內(nèi)存,降低了性能,并且這個(gè)接口現(xiàn)在已經(jīng)過(guò)時(shí)了,不推薦使用。第二種:我們盡量避免使用全局變量,就我個(gè)人而言,我比較喜歡使用這種方法。第三種,我們可以通過(guò)使用ThreadLocal, 內(nèi)部結(jié)構(gòu)是一個(gè)Map結(jié)構(gòu),用當(dāng)前線程作為key,他會(huì)創(chuàng)建多個(gè)副本。get,set方。第四種,我們當(dāng)然還可以來(lái)加鎖,進(jìn)行解決線程問(wèn)題。而且我還知道,向我們這種常用的MVC框架,struts1,spring這些MVC框架,都是基于servlet發(fā)展而來(lái)的,就比如struts1 的核心總控制器是ActionServlet,而springMVC的前端總控制器是dispatchServlet,在項(xiàng)目我們?cè)?jīng)用serlet來(lái)生成 圖片驗(yàn)證碼的,防止用戶進(jìn)行暴力破解(別人問(wèn)了,再回答)servlet的配置文件 servlet servletnameImageCodeServlet/servletname servletclass/servletclass/servletservletmapping servletnameImageCodeServlet/servletname urlpattern/d/urlpattern/servletmapping描述:,我首先需要寫一個(gè)servlet標(biāo)簽,servlet標(biāo)簽中有兩個(gè)子標(biāo)簽,一個(gè)叫servletname,這個(gè)name可以隨便起,但是要保證唯一性,除此之外,在這個(gè)servletname下有一個(gè)servletclass,這個(gè)servletclass對(duì)應(yīng)的就是我后臺(tái)提高服務(wù)的servlet,除此之外還有一個(gè)servletmapping,這個(gè)里邊首先有一個(gè)servlname。,這個(gè)servlname首先要保證和上邊的servletname保持一致,除此之外還有一個(gè)urlpattern,這是一個(gè)虛擬路徑,是用來(lái)發(fā)送請(qǐng)求的url地址。 九大隱式對(duì)象輸入/輸出對(duì)象: request(也屬于作用域通信對(duì)象) response out作用域通信對(duì)象: session application pageContextServlet 對(duì)象: page config錯(cuò)誤對(duì)象: exception page和pageContext的區(qū)別page是servlet對(duì)象;使用this關(guān)鍵字,它的作用范圍是在同一頁(yè)面。pageContext是作用域通信對(duì)象;通常使用setAttribute()和getAttribute()來(lái)設(shè)置和獲取存放對(duì)象的值。 GET和POST的區(qū)別 get是從服務(wù)器上獲取數(shù)據(jù),post是向服務(wù)器傳送數(shù)據(jù)。 get傳送的數(shù)據(jù)量較小,不能大于2KB。post傳送的數(shù)據(jù)量較大,一般被默認(rèn)為不受限制。 get安全性非常低,post安全性較高。但是執(zhí)行效率卻比Post方法好。 在進(jìn)行文件上傳時(shí)只能使用post而不能是get。 轉(zhuǎn)發(fā)與重定向的區(qū)別 從數(shù)據(jù)共享上區(qū)別:forword是一個(gè)請(qǐng)求的延續(xù),可以共享request作用域的數(shù)據(jù)。redirect開(kāi)啟一個(gè)新的請(qǐng)求,不可以共享request作用域的數(shù)據(jù),但可以通過(guò)URL方式進(jìn)行數(shù)據(jù)發(fā)送。 從地址欄上區(qū)別:forword轉(zhuǎn)發(fā)地址欄不發(fā)生變化,redirect轉(zhuǎn)發(fā)地址欄發(fā)生變化。 從性能上區(qū)別:forword性能要高于redirect。 常見(jiàn)使用上的區(qū)別:因?yàn)樯闲阅苌嫌袇^(qū)別,在本系統(tǒng)中請(qǐng)求跳轉(zhuǎn)建議使用forword,如果是跨域訪問(wèn),建議使用redirect。 四大作用域介紹四個(gè)作用域從大到?。篴ppliactionsessionrequestpage178。 application:全局作用范圍,:應(yīng)用程序啟動(dòng)到停止。178。 session:會(huì)話作用域,當(dāng)用戶首次訪問(wèn)時(shí),產(chǎn)生一個(gè)新的會(huì)話,以后服務(wù)器就可以記住這個(gè)會(huì)話狀態(tài)。178。 request:請(qǐng)求作用域,就是客戶端的一次請(qǐng)求。178。 page:一個(gè)JSP頁(yè)面。以上作用范圍使越來(lái)越小, request和page的生命周期都是短暫的,他們之間的區(qū)別就是:一個(gè)request可以包含多個(gè)page頁(yè)(include,forward)。 session和cookie的區(qū)別session是存儲(chǔ)在服務(wù)器端,cookie是存儲(chǔ)在客戶端的,所以從安全來(lái)講session的安全性要比cookie高,然后我們獲取session里的信息是通過(guò)存放在會(huì)話cookie里的sessionid獲取的。又由于session是存放在服務(wù)器的內(nèi)存中,所以session里的東西不斷增加會(huì)造成服務(wù)器的負(fù)擔(dān),所以需要把很重要的信息才存儲(chǔ)在session中,而把一些次要東西存儲(chǔ)在客戶端的cookie里,然后cookie確切的說(shuō)分為兩大類分為會(huì)話cookie和持久化cookie,會(huì)話cookie確切的說(shuō)是,存放在客戶端瀏覽器的內(nèi)存中,所以說(shuō)他的生命周期和瀏覽器是一致的,瀏覽器關(guān)了會(huì)話cookie也就消失了,然而持久化cookie是存放在客戶端硬盤中,而持久化cookie的生命周期就是我們?cè)谠O(shè)置cookie時(shí)候設(shè)置的那個(gè)保存時(shí)間,然后我們考慮一問(wèn)題當(dāng)瀏覽器關(guān)閉時(shí)session會(huì)不會(huì)丟失,從上面敘述分析session的信息是通過(guò)會(huì)話cookie的sessionid獲取的,當(dāng)瀏覽器關(guān)閉的時(shí)候會(huì)話cookie消失所以我們的sessionid也就消失了,但是session的信息還存在服務(wù)器端,這時(shí)我們只是查不到所謂的session但它并不是不存在。那么,session在什么情況下丟失,就是在服務(wù)器關(guān)閉的時(shí)候,或者是session過(guò)期(默認(rèn)時(shí)間是30分鐘),再或者調(diào)用了invalidate()()方法,然后session在什么時(shí)候被創(chuàng)建呢,確切的說(shuō)是通過(guò)調(diào)用getsession()來(lái)創(chuàng)建,這就是session與cookie的區(qū)別。訪問(wèn)HTML頁(yè)面是不會(huì)創(chuàng)建session,(JSP實(shí)際上是一個(gè)Servlet,Servlet中有g(shù)etSession方法)。 request和session的區(qū)別 他們的生命周期不同,request對(duì)應(yīng)的是一次請(qǐng)求,session對(duì)應(yīng)的是一次會(huì)話。 request占用資源比較少,相對(duì)來(lái)說(shuō)缺乏持續(xù)性,而session資源消耗比較大,所以通常使用request來(lái)保存信息。 報(bào)錯(cuò)狀態(tài)碼301 永久重定向302 臨時(shí)重定向304 服務(wù)端 未改變403 訪問(wèn)無(wú)權(quán)限***200 正常404 找不到訪問(wèn)的資源500 內(nèi)部錯(cuò)誤503 服務(wù)器承受不了壓力報(bào)錯(cuò) 常見(jiàn)協(xié)議及默認(rèn)的端口號(hào)ftp 21 文件傳輸協(xié)議ssh 22 SSH服務(wù)協(xié)議,可以通過(guò)ssh來(lái)訪問(wèn)Linux系統(tǒng)Pop3 110 它是因特網(wǎng)電子郵件的第一個(gè)離線協(xié)議標(biāo)準(zhǔn)Smtp 25 簡(jiǎn)單郵件傳輸協(xié)議 80 超文本傳輸協(xié)議 443 即HTTP下加入SSL層,簡(jiǎn)單講是HTTP的安全版。Svn 3690tomcat 8080Oracle 默認(rèn)端口號(hào)1521Mysql 默認(rèn)端口號(hào) 3306Sqlserver 默認(rèn)端口1433Postgresql 默認(rèn)端口 3690 對(duì)過(guò)濾器的理解filter的概述:filter是一個(gè)過(guò)濾器,用來(lái)在請(qǐng)求前和響應(yīng)后進(jìn)行數(shù)據(jù)的處理。filter的生命周期是:實(shí)例化初始化(init)進(jìn)行過(guò)濾(doFilter)銷毀(destroy)釋放資源 在項(xiàng)目中我們通常通過(guò)filter進(jìn)行編碼轉(zhuǎn)換,進(jìn)行安全驗(yàn)證,進(jìn)行重復(fù)提交的判斷。了解(不需要主動(dòng)說(shuō)):filter 相
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1