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

正文內(nèi)容

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

2025-05-11 08:57 本頁面
 

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