国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專(zhuān)欄INFORMATION COLUMN

這些Java面試題必須會(huì)-----魯迅

aristark / 3399人閱讀

摘要:事實(shí)上,所謂的同步就是指阻塞式操作,而異步就是非阻塞式操作。中可以通過(guò)設(shè)值注入方法注入和構(gòu)造器注入實(shí)現(xiàn),推薦使用的方式為設(shè)值注入。

寫(xiě)在前面

春天來(lái)了,萬(wàn)物復(fù)蘇的季節(jié)到了. 許多程序猿安奈不住生理需求,我要漲工資,我要跳槽. 畢竟金三銀四嘛. 那么要從眾多的面試者中獲得求職機(jī)會(huì),我們就要面對(duì)很多的面試題.

程序猿是最煩面試題的.面試的公司也煩,面試的人也煩. 但是沒(méi)辦法.面試的人魚(yú)龍混雜,好多公司被理論啥都懂,代碼寫(xiě)不出的人搞的就很傷.所以現(xiàn)在面試題也越來(lái)越難,越來(lái)越刁鉆.

但是凡事都有雙面性,這樣就促使我們看更多的面試題,掌握了更多的知識(shí).不是嗎 !

先來(lái)點(diǎn)開(kāi)胃的 1.訪問(wèn)修飾符public,private,protected以及不寫(xiě)時(shí)的區(qū)別?

 訪問(wèn)權(quán)限:
 修飾符       當(dāng)前類(lèi)     同包   子類(lèi)    其他包  
 public      √         √      √      √ 
 protected   √         √      √      × 
 default     √         √      ×      × 
 private     √         ×      ×      × 
 類(lèi)的成員不寫(xiě)訪問(wèn)修飾符時(shí),默認(rèn)的是default. 

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

  答: 不是. 
  java中的基本數(shù)據(jù)類(lèi)型就八種: byte, short, int, long, float, double, char,  
  boolean. 剩下的都是引用類(lèi)型(reference type).

3.float f = 1.1; 正確嗎?

 答: 不正確. 1.1是雙精度, 將雙精度賦值給浮點(diǎn)型,屬于向下轉(zhuǎn)型,會(huì)造成精度的丟失.如果要強(qiáng)制
 類(lèi)型轉(zhuǎn)換,可以寫(xiě)成這樣 float f = (float)1.1; 或者 float f=1.1F;
 

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

 答: 對(duì)于a = a + 1 因?yàn)?是int值類(lèi)型,所以計(jì)算的結(jié)果是int,要賦值給short,需要強(qiáng)制類(lèi)型裝
 換才能賦值給short.
     對(duì)于a += 1; 其相當(dāng)于 a = (short)(a+1) ;其中已經(jīng)做了強(qiáng)制類(lèi)型裝換.
     

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

   Integer a = 100, b = 100, c = 130, d = 130 ; 
   System.out.println(a ==> b); 
   System.out.println(c == d);
   第一個(gè)是true,第二個(gè)是false. 
   因?yàn)閍,b,c,d四個(gè)變量都是integer對(duì)象的引用,所以==比較的不是值,而是引用.如果整型字面
   量的值在-128到127之間,那么不會(huì)new新的Integer對(duì)象,而是直接引用常量池中的Integer對(duì)
   象.
   

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

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

7.String類(lèi)可以被繼承嗎?

 答:不可以. 因?yàn)镾tring類(lèi)是final類(lèi).
 

8.String和StringBuilder,StringBuffer的區(qū)別?

 答:String是只讀字符串,String引用的字符串內(nèi)容是不能被改變的.而StringBuffer和
 StringBuilder是可變字符串.StringBuilder和StringBuffer的用法相同, 區(qū)別是
 StringBuffer被synchronized修飾,效率比StringBuilder低
 

9.構(gòu)造器是否可以被重寫(xiě)?

 答: 構(gòu)造器不能被繼承,因此不能被重寫(xiě),但是可以被重載.

10.int a = 1; int b = 2; 怎么讓a,b值交換?

 答: a = a ^ b;
     b = a ^ b;
     a = a ^ b;

來(lái)點(diǎn)中級(jí)的 11.抽象類(lèi)和接口的相同點(diǎn)和不同點(diǎn).

 答: 1.抽象類(lèi)和接口都不能實(shí)例化對(duì)象,但是可以定義抽象類(lèi)和接口類(lèi)型的引用. 
     2.繼承抽象類(lèi)和實(shí)現(xiàn)接口都要對(duì)其中的抽象方法全部實(shí)現(xiàn)
     3.接口比抽象類(lèi)更加抽象,抽象類(lèi)中可以定義構(gòu)造器,可以有抽象方法和具體方法.
     4.接口中方法全部都是抽象方法.
     5.抽象類(lèi)中的成員可以是private,protected,public,接口全部都是public
     6.抽象類(lèi)中可以定義成員變量,而接口中定義的成員變量實(shí)際上都是常量.
     7.有抽象方法的類(lèi)必須聲明為抽象類(lèi),而抽象類(lèi)未必要有抽象方法.
     

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

 答:理論上java不會(huì)存在內(nèi)存泄露的問(wèn)題,應(yīng)為有垃圾回收機(jī)制(GC).然而在實(shí)際開(kāi)發(fā)中,可能會(huì)存在
 無(wú)用但可達(dá)的對(duì)象,這些對(duì)象不能被GC回收,因此會(huì)導(dǎo)致內(nèi)存泄露. 例如hibernated的Session中
 的對(duì)象屬于持久態(tài),垃圾回收器不會(huì)回收這些對(duì)象,這些對(duì)象中有可能存在無(wú)用的垃圾對(duì)象.如果關(guān)閉
 不及時(shí),一級(jí)緩存就可能導(dǎo)致內(nèi)存泄露.
 

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

 答:會(huì)執(zhí)行. 在方法返回給調(diào)用者前執(zhí)行.因?yàn)槿绻嬖趂inally代碼塊, try中的return語(yǔ)句不會(huì)
 立馬返回調(diào)用者,而是記錄下返回值待finally代碼塊執(zhí)行完畢之后在返回.

14.List,Map,Set 三個(gè)接口存取元素時(shí),各自有什么特點(diǎn)?

 答:List以特定的索引來(lái)存取元素,可以有重復(fù)元素
    Set不能存放重復(fù)元素.
    Map保存鍵值對(duì)的映射,映射關(guān)系可以是一對(duì)一或多對(duì)一.
    Set和Map容器都有基于哈希存儲(chǔ)和排序樹(shù)的兩種實(shí)現(xiàn)版本,基于哈希存儲(chǔ)理論存取時(shí)間復(fù)雜度是O(1).
    

15.Thread類(lèi)中的sleep()和對(duì)象的wait()有什么區(qū)別?

     答:sleep()方法是線程類(lèi)的靜態(tài)方法,調(diào)用此方法會(huì)讓當(dāng)前線程暫停執(zhí)行指定時(shí)間.將CPU時(shí)間片分
     給其他線程,但是對(duì)象的鎖依然保持, 休眠時(shí)間結(jié)束會(huì)自動(dòng)回復(fù)到就緒狀態(tài).
     wait()是Object類(lèi)的方法,調(diào)用對(duì)象的wait()方法導(dǎo)致當(dāng)前線程放棄對(duì)象的鎖,線程暫停執(zhí)行,
     進(jìn)入對(duì)象的等待池,只有調(diào)用對(duì)象的notify()方法或notifyAll()方法時(shí),才能喚醒等待池中的
     線程進(jìn)入等鎖池,如果線程重新獲得對(duì)象的鎖就可以進(jìn)入就緒狀態(tài)

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

 答::不能。其它線程只能訪問(wèn)該對(duì)象的非同步方法,同步方法則不能進(jìn)入。
 因?yàn)榉庆o態(tài)方法上的synchronized修飾符要求執(zhí)行方法時(shí)要獲得對(duì)象的鎖,如果已經(jīng)進(jìn)入A方法說(shuō)
 明對(duì)象鎖已經(jīng)被取走,那么試圖進(jìn)入B方法的線程就只能在等鎖池(注意不是等待池哦)中等待對(duì)象的鎖

17.說(shuō)說(shuō)synchronized關(guān)鍵字的用法?

 答:synchronized關(guān)鍵字可以將對(duì)象或者方法標(biāo)記為同步,以實(shí)現(xiàn)對(duì)對(duì)象和方法的互斥訪問(wèn),可以用
 synchronized(對(duì)象) { … }定義同步代碼塊,或者在聲明方法時(shí)將synchronized作為方法的修飾符

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

 答:序列化就是一種用來(lái)處理對(duì)象流的機(jī)制,所謂對(duì)象流也就是將對(duì)象的內(nèi)容進(jìn)行流化。可以對(duì)流化
 后的對(duì)象進(jìn)行讀寫(xiě)操作,也可將流化后的對(duì)象傳輸于網(wǎng)絡(luò)之間。
 序列化是為了解決對(duì)象流讀寫(xiě)操作時(shí)可能引發(fā)的問(wèn)題(如果不進(jìn)行序列化可能會(huì)存在數(shù)據(jù)亂序的問(wèn)題)
 要實(shí)現(xiàn)序列化,讓類(lèi)實(shí)現(xiàn)Serializable接口.該接口是一個(gè)標(biāo)識(shí)性接口,標(biāo)注該類(lèi)對(duì)象是可被序列
 化的,然后使用一個(gè)輸出流來(lái)構(gòu)造一個(gè)對(duì)象輸出流并通過(guò)writeObject(Object)方法就可以將實(shí)現(xiàn)對(duì)象寫(xiě)出
 如果需要反序列化則可以用一個(gè)輸入流建立對(duì)象輸入流,然后通過(guò)readObject方法從流中讀取對(duì)
 象。序列化除了能夠?qū)崿F(xiàn)對(duì)象的持久化之外,還能夠用于對(duì)象的深度克隆
 

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

 答:sleep()方法給其他線程運(yùn)行機(jī)會(huì)時(shí)不考慮線程的優(yōu)先級(jí),因此會(huì)給低優(yōu)先級(jí)的線程以運(yùn)行的機(jī)會(huì);
 yield()方法只會(huì)給相同優(yōu)先級(jí)或更高優(yōu)先級(jí)的線程以運(yùn)行的機(jī)會(huì); 
 線程執(zhí)行sleep()方法后轉(zhuǎn)入阻塞(blocked)狀態(tài),而執(zhí)行yield()方法后轉(zhuǎn)入就緒(ready)狀態(tài); 
 sleep()方法聲明拋出InterruptedException,而yield()方法沒(méi)有聲明任何異常;
 sleep()方法比yield()方法(跟操作系統(tǒng)CPU調(diào)度相關(guān))具有更好的可移植性
 

20.說(shuō)說(shuō)你對(duì)同步和異步的理解.

 答:如果系統(tǒng)中存在臨界資源(資源數(shù)量少于競(jìng)爭(zhēng)資源的線程數(shù)量的資源),例如正在寫(xiě)的數(shù)據(jù)以后
 可能被另一個(gè)線程讀到,或者正在讀的數(shù)據(jù)可能已經(jīng)被另一個(gè)線程寫(xiě)過(guò)了,那么這些數(shù)據(jù)就必須進(jìn)行
 同步存取(數(shù)據(jù)庫(kù)操作中的排他鎖就是最好的例子)
 當(dāng)應(yīng)用程序在對(duì)象上調(diào)用了一個(gè)需要花費(fèi)很長(zhǎng)時(shí)間來(lái)執(zhí)行的方法,并且不希望讓程序等待方法的返回
 時(shí),就應(yīng)該使用異步編程,在很多情況下采用異步途徑往往更有效率。事實(shí)上,所謂的同步就是指阻
 塞式操作,而異步就是非阻塞式操作。
 

好像這也不算高級(jí) 21.轉(zhuǎn)發(fā)(forward)和重定向(redirect)的區(qū)別?

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

22.說(shuō)一說(shuō)spring 中依賴(lài)注入和AOP的實(shí)現(xiàn)機(jī)制。

 答:實(shí)現(xiàn)依賴(lài)注入的方式包括:構(gòu)造器注入、設(shè)值注入和接口(回調(diào))注入。Spring中可以通過(guò)設(shè)值
 注入(setter方法注入)和構(gòu)造器注入實(shí)現(xiàn)IoC,推薦使用的方式為設(shè)值注入。
 實(shí)現(xiàn)AOP的方式包括:編譯時(shí)AOP(需要特殊的編譯器)、運(yùn)行時(shí)AOP(代理模式)、加載時(shí)AOP(需
 要特殊的類(lèi)加載器)。Spring中使用了運(yùn)行時(shí)的AOP,主要通過(guò)代理的方式對(duì)原來(lái)的代碼進(jìn)行增強(qiáng)實(shí)
 現(xiàn)。對(duì)于實(shí)現(xiàn)了接口的類(lèi),Spring通過(guò)Java的動(dòng)態(tài)代理(請(qǐng)參考Proxy類(lèi)和InvocationHandler
 接口)來(lái)進(jìn)行增強(qiáng);對(duì)于沒(méi)有實(shí)現(xiàn)接口的類(lèi),Spring使用第三方字節(jié)碼生成工具CGLIB,通過(guò)繼承
 的方式對(duì)原有代碼進(jìn)行增強(qiáng)
 

23.什么是ORM?

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

24.簡(jiǎn)述一下面向?qū)ο蟮?六原則一法則"

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

后記

對(duì)程序員來(lái)說(shuō),普遍的是敲代碼和業(yè)務(wù)處理能力強(qiáng)于理論知識(shí)的.畢竟我們是用鍵盤(pán)吃飯.但是,如果在一個(gè)行業(yè)做了五年以上.那么這一個(gè)語(yǔ)言基本就寫(xiě)透了.那么在回頭看這些理論知識(shí)就so easy 了.程序員這個(gè)行業(yè)是與時(shí)進(jìn)步的,要不斷的學(xué)習(xí)來(lái)充實(shí)自己,努力吧.

年輕人就要努力奮斗-----------魯迅

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/68873.html

相關(guān)文章

  • 求職準(zhǔn)備 - 收藏集 - 掘金

    摘要:一基礎(chǔ)接口的意義百度規(guī)范擴(kuò)展回調(diào)抽象類(lèi)的意義想不想通過(guò)一線互聯(lián)網(wǎng)公司面試文檔整理為電子書(shū)掘金簡(jiǎn)介谷歌求職記我花了八個(gè)月準(zhǔn)備谷歌面試掘金原文鏈接翻譯者 【面試寶典】從對(duì)象深入分析 Java 中實(shí)例變量和類(lèi)變量的區(qū)別 - 掘金原創(chuàng)文章,轉(zhuǎn)載請(qǐng)務(wù)必保留原出處為:http://www.54tianzhisheng.cn/... , 歡迎訪問(wèn)我的站點(diǎn),閱讀更多有深度的文章。 實(shí)例變量 和 類(lèi)變量...

    cuieney 評(píng)論0 收藏0
  • 來(lái)自投資銀行的 10 個(gè) Java 面試

    摘要:本文介紹一些來(lái)自投資銀行的針對(duì)三年以上經(jīng)驗(yàn)的開(kāi)發(fā)人員面試題。第七題和這兩個(gè)方法有什么不同答案本題取自我的投資銀行針對(duì)有經(jīng)驗(yàn)的開(kāi)發(fā)者的五十個(gè)多線程面試題列表。總結(jié)以上就是投資銀行通常會(huì)出的面試題。 原文地址: https://dzone.com/articles/10... 有為數(shù)不少的開(kāi)發(fā)者希望能在像 Barclays、Credit Suisse、Citibank 等等那樣的投資銀行做...

    xbynet 評(píng)論0 收藏0
  • 【譯】十個(gè)刁鉆的 Java 面試

    摘要:原文地址這里列出了十個(gè)常見(jiàn)而又刁鉆的開(kāi)發(fā)人員面試題及答案,這些題目是我從上找來(lái)的。如果你是初中級(jí)開(kāi)發(fā)人員,而且近期準(zhǔn)備面試的話,這些題目可能對(duì)你有些幫助。成員即沒(méi)有訪問(wèn)修飾符的成員可以在當(dāng)前包下的所有類(lèi)中訪問(wèn)到。 原文地址:https://dzone.com/articles/10... 這里列出了十個(gè)常見(jiàn)而又刁鉆的 Java 開(kāi)發(fā)人員面試題及答案,這些題目是我從 StackOverf...

    xuhong 評(píng)論0 收藏0
  • 想進(jìn)大廠?50個(gè)多線程面試,你會(huì)多少?【后25】(二)

    摘要:大多數(shù)待遇豐厚的開(kāi)發(fā)職位都要求開(kāi)發(fā)者精通多線程技術(shù)并且有豐富的程序開(kāi)發(fā)調(diào)試優(yōu)化經(jīng)驗(yàn),所以線程相關(guān)的問(wèn)題在面試中經(jīng)常會(huì)被提到。掌握了這些技巧,你就可以輕松應(yīng)對(duì)多線程和并發(fā)面試了。進(jìn)入等待通行準(zhǔn)許時(shí),所提供的對(duì)象。 最近看到網(wǎng)上流傳著,各種面試經(jīng)驗(yàn)及面試題,往往都是一大堆技術(shù)題目貼上去,而沒(méi)有答案。 不管你是新程序員還是老手,你一定在面試中遇到過(guò)有關(guān)線程的問(wèn)題。Java語(yǔ)言一個(gè)重要的特點(diǎn)就...

    caozhijian 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<