大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學(xué)習(xí)攻略 Java學(xué)習(xí) Java企業(yè)必問面試題,這些題你了解嗎

Java企業(yè)必問面試題,這些題你了解嗎

更新時間:2019-11-11 10:53:24 來源:動力節(jié)點 瀏覽3179次



  要說面試,程序員煩,公司也煩,面試官也煩,但沒辦法,魚龍混雜的人太多,理論好寫不了代碼的程序員著實讓公司頭疼,因而面試的題目也越來越刁鉆!


  不過凡事都有兩面性,面試也是激勵程序員多看面試題,掌握知識不是嗎?


  以下推薦的Java面試題目,希望可以幫大家積累面試經(jīng)驗溫習(xí)技術(shù)知識!

image.png

  下面是小編整理的Java面試題,都來挑戰(zhàn)一下,看看自己有多厲害。題目都帶超詳細(xì)的解答.


       一.先來看看初級的面試


  1.訪問修飾符public,private,protected以及不寫時的區(qū)別?


image.png


  類的成員不寫訪問修飾符時,默認(rèn)的是default.


  2.Stirng是最基本的數(shù)據(jù)類型嗎?


  答:不是.


  java中的基本數(shù)據(jù)類型就八種:byte,short,int,long,float,double,char,


  boolean.剩下的都是引用類型(referencetype).


  3.floatf=1.1;正確嗎?


  答:不正確.1.1是雙精度,將雙精度賦值給浮點型,屬于向下轉(zhuǎn)型,會造成精度的丟失.如果要強制


  類型轉(zhuǎn)換,可以寫成這樣floatf=(float)1.1;或者floatf=1.1F;


  4.shorta=1;a=a+1和shorta=1;a+=1有什么區(qū)別?


  答:對于a=a+1因為1是int值類型,所以計算的結(jié)果是int,要賦值給short,需要強制類型裝


  換才能賦值給short.


  對于a+=1;其相當(dāng)于a=(short)(a+1);其中已經(jīng)做了強制類型裝換.


  5.下面代碼打印結(jié)果?


  Integera=100,b=100,c=130,d=130;


  System.out.println(a==>b);


  System.out.println(c==d);


  第一個是true,第二個是false.


  因為a,b,c,d四個變量都是integer對象的引用,所以==比較的不是值,而是引用.如果整型字面


  量的值在-128到127之間,那么不會new新的Integer對象,而是直接引用常量池中的Integer對象.


  6.Java中如何跳出多重嵌套循環(huán)?


  答:在最外層循環(huán)前加標(biāo)記A,利用breakA;可以跳出循環(huán)


  7.String類可以被繼承嗎?


  答:不可以.因為String類是final類.


  .來點中級的面試題


  1.抽象類和接口的相同點和不同點


  答:


  1.抽象類和接口都不能實例化對象,但是可以定義抽象類和接口類型的引用.


  2.繼承抽象類和實現(xiàn)接口都要對其中的抽象方法全部實現(xiàn)


  3.接口比抽象類更加抽象,抽象類中可以定義構(gòu)造器,可以有抽象方法和具體方法.


  4.接口中方法全部都是抽象方法.


  5.抽象類中的成員可以是private,protected,public,接口全部都是public


  6.抽象類中可以定義成員變量,而接口中定義的成員變量實際上都是常量.


  7.有抽象方法的類必須聲明為抽象類,而抽象類未必要有抽象方法.


  2.java中會存在內(nèi)存泄露嗎?


  答:理論上java不會存在內(nèi)存泄露的問題,應(yīng)為有垃圾回收機制(GC).然而在實際開發(fā)中,可能會存在


  無用但可達(dá)的對象,這些對象不能被GC回收,因此會導(dǎo)致內(nèi)存泄露.例如hibernated的Session中


  的對象屬于持久態(tài),垃圾回收器不會回收這些對象,這些對象中有可能存在無用的垃圾對象.如果關(guān)閉


  不及時,一級緩存就可能導(dǎo)致內(nèi)存泄露.


  3.try{}里面return,finally里的代碼會不會執(zhí)行,什么時候被執(zhí)行?


  答:會執(zhí)行.在方法返回給調(diào)用者前執(zhí)行.因為如果存在finally代碼塊,try中的return語句不會


  立馬返回調(diào)用者,而是記錄下返回值待finally代碼塊執(zhí)行完畢之后在返回.


  4.List,Map,Set三個接口存取元素時,各自有什么特點?


  答:List以特定的索引來存取元素,可以有重復(fù)元素


  Set不能存放重復(fù)元素.


  Map保存鍵值對的映射,映射關(guān)系可以是一對一或多對一.


  Set和Map容器都有基于哈希存儲和排序樹的兩種實現(xiàn)版本,基于哈希存儲理論存取時間復(fù)雜度是O(1).


  5.Thread類中的sleep()和對象的wait()有什么區(qū)別?


  答:sleep()方法是線程類的靜態(tài)方法,調(diào)用此方法會讓當(dāng)前線程暫停執(zhí)行指定時間.將CPU時間片分


  給其他線程,但是對象的鎖依然保持,休眠時間結(jié)束會自動回復(fù)到就緒狀態(tài).


  wait()是Object類的方法,調(diào)用對象的wait()方法導(dǎo)致當(dāng)前線程放棄對象的鎖,線程暫停執(zhí)行,


  進(jìn)入對象的等待池,只有調(diào)用對象的notify()方法或notifyAll()方法時,才能喚醒等待池中的


  線程進(jìn)入等鎖池,如果線程重新獲得對象的鎖就可以進(jìn)入就緒狀態(tài)


  6.當(dāng)一個線程進(jìn)入一個對象的synchronized方法A之后,其它線程是否可進(jìn)入此對象的synchronized方法B?


  答:不能。其它線程只能訪問該對象的非同步方法,同步方法則不能進(jìn)入。


  因為非靜態(tài)方法上的synchronized修飾符要求執(zhí)行方法時要獲得對象的鎖,如果已經(jīng)進(jìn)入A方法說


  明對象鎖已經(jīng)被取走,那么試圖進(jìn)入B方法的線程就只能在等鎖池(注意不是等待池哦)中等待對象的鎖


  7.說說synchronized關(guān)鍵字的用法?


  答:synchronized關(guān)鍵字可以將對象或者方法標(biāo)記為同步,以實現(xiàn)對對象和方法的互斥訪問,可以用


  synchronized(對象){…}定義同步代碼塊,或者在聲明方法時將synchronized作為方法的修飾符


  8.Java如何實現(xiàn)序列化,有什么意義?


  答:序列化就是一種用來處理對象流的機制,所謂對象流也就是將對象的內(nèi)容進(jìn)行流化。可以對流化


  后的對象進(jìn)行讀寫操作,也可將流化后的對象傳輸于網(wǎng)絡(luò)之間。


  序列化是為了解決對象流讀寫操作時可能引發(fā)的問題(如果不進(jìn)行序列化可能會存在數(shù)據(jù)亂序的問題)


  要實現(xiàn)序列化,讓類實現(xiàn)Serializable接口.該接口是一個標(biāo)識性接口,標(biāo)注該類對象是可被序列


  化的,然后使用一個輸出流來構(gòu)造一個對象輸出流并通過writeObject(Object)方法就可以將實現(xiàn)對象寫出


  如果需要反序列化則可以用一個輸入流建立對象輸入流,然后通過readObject方法從流中讀取對


  象。序列化除了能夠?qū)崿F(xiàn)對象的持久化之外,還能夠用于對象的深度克隆


  9.線程的sleep()方法和yield()方法有什么區(qū)別?


  答:sleep()方法給其他線程運行機會時不考慮線程的優(yōu)先級,因此會給低優(yōu)先級的線程以運行的機會;


  yield()方法只會給相同優(yōu)先級或更高優(yōu)先級的線程以運行的機會;


  線程執(zhí)行sleep()方法后轉(zhuǎn)入阻塞(blocked)狀態(tài),而執(zhí)行yield()方法后轉(zhuǎn)入就緒(ready)狀態(tài);


  sleep()方法聲明拋出InterruptedException,而yield()方法沒有聲明任何異常;


  sleep()方法比yield()方法(跟操作系統(tǒng)CPU調(diào)度相關(guān))具有更好的可移植性。


  10.說說你對同步和異步的理解.


  答:如果系統(tǒng)中存在臨界資源(資源數(shù)量少于競爭資源的線程數(shù)量的資源),例如正在寫的數(shù)據(jù)以后可能被另一個線程讀到,或者正在讀的數(shù)據(jù)可能已經(jīng)被另一個線程寫過了,那么這些數(shù)據(jù)就必須進(jìn)行同步存取(數(shù)據(jù)庫操作中的排他鎖就是最好的例子)


  當(dāng)應(yīng)用程序在對象上調(diào)用了一個需要花費很長時間來執(zhí)行的方法,并且不希望讓程序等待方法的返回時,就應(yīng)該使用異步編程,在很多情況下采用異步途徑往往更有效率。事實上,所謂的同步就是指阻塞式操作,而異步就是非阻塞式操作。


  .最后,再來點高級的面試問題


  1.轉(zhuǎn)發(fā)(forward)和重定向(redirect)的區(qū)別?


  答:forward是容器中控制權(quán)的轉(zhuǎn)向,是服務(wù)器請求資源,服務(wù)器直接訪問目標(biāo)地址的URL,把那個URL的響應(yīng)內(nèi)容讀取過來,然后把這些內(nèi)容再發(fā)給瀏覽器,瀏覽器根本不知道服務(wù)器發(fā)送的內(nèi)容是從哪兒來的,所以它的地址欄中還是原來的地址redirect就是服務(wù)器端根據(jù)邏輯,發(fā)送一個狀態(tài)碼,告訴瀏覽器重新去請求那個地址,因此從瀏覽器的地址欄中可以看到跳轉(zhuǎn)后的鏈接地址,很明顯redirect無法訪問到服務(wù)器保護(hù)起來資源,但是可以從一個網(wǎng)站redirect到其他網(wǎng)站。


  2.說一說spring中依賴注入和AOP的實現(xiàn)機制。


  答:實現(xiàn)依賴注入的方式包括:構(gòu)造器注入、設(shè)值注入和接口(回調(diào))注入。Spring中可以通過設(shè)值注入(setter方法注入)和構(gòu)造器注入實現(xiàn)IoC,推薦使用的方式為設(shè)值注入。


  實現(xiàn)AOP的方式包括:編譯時AOP(需要特殊的編譯器)、運行時AOP(代理模式)、加載時AOP(需要特殊的類加載器)。Spring中使用了運行時的AOP,主要通過代理的方式對原來的代碼進(jìn)行增強實現(xiàn)。對于實現(xiàn)了接口的類,Spring通過Java的動態(tài)代理(請參考Proxy類和InvocationHandler


  接口)來進(jìn)行增強;對于沒有實現(xiàn)接口的類,Spring使用第三方字節(jié)碼生成工具CGLIB,通過繼承的方式對原有代碼進(jìn)行增強


  3.什么是ORM?


  答:對象關(guān)系映射(Object-RelationalMapping,簡稱ORM)是一種為了解決程序的面向?qū)ο竽P团c數(shù)據(jù)庫的關(guān)系模型互不匹配問題的技術(shù);簡單的說,ORM是通過使用描述對象和數(shù)據(jù)庫之間映射的元數(shù)據(jù)(在Java中可以用XML或者是注解),將程序中的對象自動持久化到關(guān)系數(shù)據(jù)庫中或者將關(guān)系數(shù)據(jù)庫表中的行轉(zhuǎn)換成Java對象,其本質(zhì)上就是將數(shù)據(jù)從一種形式轉(zhuǎn)換到另外一種形式。


  4.簡述一下面向?qū)ο蟮?quot;六原則一法則"


  答:單一職責(zé)原則:一個類只做它該做的事情。單一職責(zé)原則想表達(dá)的就是"高內(nèi)聚"開閉原則:軟件實體應(yīng)當(dāng)對擴展開放,對修改關(guān)閉.要做到開閉有兩個要點:抽象是關(guān)鍵,一個系統(tǒng)中如果沒有抽象類或接口系統(tǒng)就沒有擴展點;封裝可變性,將系統(tǒng)中的各種可變因素封裝到一個繼承結(jié)構(gòu)中,依賴倒轉(zhuǎn)原則:面向接口編程,就是聲明方法的參數(shù)類型、方法的返回類型、變量的引用類型時,盡可能使用抽象類型而不用具體類型,因為抽象類型可以被它的任何一個子類型所替代里氏替換原則:任何時候都可以用子類型替換掉父類型接口隔離原則:接口要小而專,絕不能大而全。接口也應(yīng)該是高度內(nèi)聚的.Java中的接口代表能力、代表約定、代表角色,能否正確的使用接口一定是編程水平高低的重要標(biāo)識合成聚合復(fù)用原則:優(yōu)先使用聚合或合成關(guān)系復(fù)用代碼。


  總結(jié)


  面試官要找的不是技術(shù)明星,而是實實在在具備了合適的技術(shù)技能、軟技能、端正的態(tài)度以及能為企業(yè)獲取利益、全面的專業(yè)人才。


以上就是動力節(jié)點java學(xué)院小編介紹的“Java企業(yè)必問面試題,這些題你了解嗎”的內(nèi)容,希望對大家有幫助,更多java最新面試題請繼續(xù)關(guān)注動力節(jié)點java學(xué)院官網(wǎng),每天會有精彩內(nèi)容分享與你。


相關(guān)java面試題推薦


最新最全java面試題及答案(從初級到高級)


史上最全的中高級JAVA工程師面試題及答案匯總


Java高級開發(fā)工程師面試題


2019史上最全java面試題題庫大全800題


哪有資深java工程師面試題


提交申請后,顧問老師會電話與您溝通安排學(xué)習(xí)

免費課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 99爱在线精品视频免费观看9 | 亚洲欧美专区精品久久 | 手机看片日韩高清国产欧美 | 日韩精品首页 | 国产欧美一区二区三区观看 | 国产精品成人免费 | 亚洲区 欧美区 | 亚洲图片一区二区 | a久久久久一级毛片护士免费 | 四虎免费影院4hu永久免费 | 国产亚洲欧美日韩综合综合二区 | 狠狠狠色丁香婷婷综合久久88 | 在线观看国产一区亚洲bd | 纯欧美一级毛片_免费 | 国产亚洲精品久久久久久牛牛 | 欧美精品久久久久久久小说 | 亚洲qingse| 国产高清一级毛片在线不卡 | 99色视频在线 | 天天做天天爱夜夜大爽完整 | 操美女模特| 蜜桃精品免费久久久久影院 | 精品国产自在久久 | 国产亚洲综合一区二区在线 | 欧美亚洲国产日韩一区二区三区 | 色综合欧美亚洲另类久久 | 国产欧美久久久另类精品 | 亚洲性色视频 | 日韩精品片 | 天天摸天天舔天天操 | 欧美一级aⅴ毛片 | 曰本三级男人吃奶水 | 一级做受视频免费是看美女 | 国产成人精品男人的天堂网站 | 99在线精品免费视频九九视 | 乱人伦99久久 | 亚洲精品一区二区中文 | 国产成人女人视频在线观看 | 狠狠色丁香婷婷久久综合不卡 | 美女粉逼| 亚洲第一红杏精品久久 |