粗大猛烈进出白浆视频,两性色午夜视频免费播放,国内精品一区二区三区在线观看,精品无人乱码一区二区三区的特点

思誠(chéng)科技 seecen LOGO
咨詢熱線:0791-87557233
 您現(xiàn)在的位置:  首頁(yè) > 人才服務(wù) 

思誠(chéng)科技總結(jié):投資銀行最常問的10個(gè)Java面試題

來(lái)源:思誠(chéng)科技    更新時(shí)間:2018-4-3

現(xiàn)在的銀行早已經(jīng)有了自己成熟穩(wěn)定的信息化團(tuán)隊(duì),自然也成為了不少技術(shù)人員求職的好去處。很多Java開發(fā)人員樂于向花旗銀行、巴克萊銀行,瑞士信貸銀行提交申請(qǐng),但很多人可能還不清楚面試時(shí)可能會(huì)被問到哪些問題。

思誠(chéng)科技:銀行java崗位面試題

思誠(chéng)科技分享了投資銀行的一些常見面試問題,主要針對(duì)3年以上工作經(jīng)驗(yàn)的Java開發(fā)人員,這些問題不適用于新手或具有1-2年Java經(jīng)驗(yàn)的人員。

不保證一定會(huì)被問到,但這個(gè)列表你可以嘗試看看:

問題1:在多線程環(huán)境中使用HashMaps有什么問題?get()方法何時(shí)進(jìn)入無(wú)限循環(huán)?

答:沒有什么方法是錯(cuò)誤的——這取決于程序員如何使用它。例如,如果只使用一個(gè)線程初始化HashMap,并且所有線程都只能從中讀取,那么這非常好。其中一個(gè)例子是包含配置屬性的Map。當(dāng)不止一個(gè)線程正在更新HashMap,即添加,更改或刪除任何鍵值對(duì)時(shí),真正的問題就開始了。

由于put()操作可能會(huì)導(dǎo)致重新調(diào)整大小,從而導(dǎo)致無(wú)限循環(huán),這就是為什么要使用Hashtable或ConcurrentHashMap(后者更好)。

問題2:不覆蓋hashCode()方法是否有任何性能影響?

答案:這是一個(gè)很好的問題,幾乎會(huì)問所有面試者。一個(gè)糟糕的hashCode函數(shù)會(huì)導(dǎo)致HashMap中頻繁的沖突,最終增加向HashMap中添加對(duì)象的時(shí)間。

然而,從Java8開始,沖突不會(huì)像早期版本那樣影響性能。因?yàn)樵陂撝抵,鏈接列表將被二叉樹替換,這在最壞的情況下時(shí)間復(fù)雜度還可以達(dá)到O(logN)。

這個(gè)問題有時(shí)難以回答,是因?yàn)樵S多開發(fā)人員只知道equals和hashcode契約,并沒有考慮它們的性能影響。

equals和hashcode契約:

1.如果兩個(gè)對(duì)象相等,它們的hashcode必須相等;

2.如果兩個(gè)對(duì)象的hashcode相等,這兩個(gè)對(duì)象不一定相等。

問題3:不可變對(duì)象的所有屬性都必須是final嗎?

答:不必要。如上所述,可以不是final而是private-不是在構(gòu)造函數(shù)中修改它們來(lái)實(shí)現(xiàn)相同的功能,不要為它們提供setter方法。如果是一個(gè)可變對(duì)象,永遠(yuǎn)不要泄露對(duì)該成員的任何引用。

請(qǐng)記住,變量屬性設(shè)為final僅確保它不會(huì)被重新分配不同的值,但仍可以更改該引用變量所指向的對(duì)象的各個(gè)屬性。這是面試官希望從候選人那里聽到的關(guān)鍵點(diǎn)之一。提到這一點(diǎn),就可以得到一些分?jǐn)?shù)。

問題4:String中的substring()如何工作?

答:許多開發(fā)人員知道答案:“子字符串通過獲取原始字符串的一部分,從原字符串中創(chuàng)建一個(gè)新對(duì)象。”

但我認(rèn)為這個(gè)答案是不夠的。這個(gè)問題的目的在于看看開發(fā)人員是否熟悉子串可能產(chǎn)生的內(nèi)存泄漏風(fēng)險(xiǎn)。

在Java1.7之前,一個(gè)保存了原始字符數(shù)組引用的子字符串,意味著5個(gè)字符長(zhǎng)的子字符串也可以通過保留強(qiáng)引來(lái)阻止垃圾收集中的1GB字符數(shù)組。

這個(gè)問題在Java1.7中得到了修復(fù),原來(lái)的字符數(shù)組不再被引用,但是這種改變也使得創(chuàng)建子字符串在時(shí)間上成本更高。早些時(shí)候,它在O(1)范圍內(nèi),在Java7最壞的情況下可能是O(N)。

問題5:你能為singleton編寫關(guān)鍵部分代碼嗎?

答:這個(gè)核心Java問題是前一個(gè)問題的后續(xù),希望面試者使用雙重檢查鎖定模式編寫Java單例,請(qǐng)記住使用volatile變量來(lái)使Singleton線程安全。

問題6:在編寫存儲(chǔ)過程或從Java訪問存儲(chǔ)過程時(shí),如何處理錯(cuò)誤條件?

答:這是Java面試題中幾乎對(duì)所有人開放的問題。如果某個(gè)操作失敗,存儲(chǔ)過程應(yīng)該返回一個(gè)錯(cuò)誤代碼,但如果存儲(chǔ)過程本身失敗,那么捕獲SQLException是唯一的選擇。

問題7:Executor.submit()和Executer.execute()方法有什么區(qū)別?

這個(gè)問題來(lái)自投資銀行針對(duì)有經(jīng)驗(yàn)的程序員的50個(gè)Java多線程問題列表。

由于擁有良好并發(fā)技能的Java開發(fā)人員的巨大需求,它日益普及。順便說(shuō)一句,如果想認(rèn)真構(gòu)建并發(fā)技能,那么HeinzKabutz的JavaConcurrencyinPractice課程是一個(gè)很好的開始。它是關(guān)于Java并發(fā)的最高級(jí)課程之一,也是基于BrianGoetz和其公司的經(jīng)典書籍JavaConcurrencyinPractice。

這個(gè)Java面試問題的答案是前者返回一個(gè)Future對(duì)象,它可以用來(lái)從worker線程中查找結(jié)果。查看異常處理時(shí)有區(qū)別。如果任務(wù)拋出一個(gè)異常(如果是在執(zhí)行時(shí)提交的),這個(gè)異常將進(jìn)入未捕獲的異常處理程序(當(dāng)沒有顯式提供異常時(shí),默認(rèn)只會(huì)將堆棧跟蹤打印到System.err)。

如果在提交任何拋出異常時(shí)提交了任務(wù),則檢查異常與否,這是任務(wù)返回狀態(tài)的一部分。對(duì)于已提交并以異常終止的任務(wù),F(xiàn)uture.get()將重新拋出此異常,并包裝在ExecutionException中。

問題8:Factory和AbstractFactory模式有什么區(qū)別?

與Factory模式相比,AbstractFactory提供了更多級(jí)別的抽象。

考慮不同的Factory,每個(gè)Factory都從AbstractFactory擴(kuò)展而來(lái),負(fù)責(zé)根據(jù)Factory類型創(chuàng)建不同的對(duì)象層次結(jié)構(gòu)。

例如,AbstractFactory可以通過AutomobileFactory,UserFactory,RoleFactory等進(jìn)行擴(kuò)展。

每個(gè)Factory都將負(fù)責(zé)創(chuàng)建該類型的對(duì)象。

問題9:什么是Singleton?讓整個(gè)方法同步還是只有關(guān)鍵部分同步更好?

答:Java中的Singleton是在整個(gè)Java應(yīng)用程序中只有一個(gè)實(shí)例的類。例如,java.lang.Runtime是一個(gè)Singleton類。

在Java5之前創(chuàng)建Singleton是棘手的,自從Java5引入Enum,它變得非常容易。

這個(gè)問題需要程序員了解使用Enums編寫單例和使用雙重檢查鎖定的一些細(xì)節(jié),這是此Java面試問題的目的。

問題10:你能編寫用于在Java4和Java5中迭代HashMaps的代碼嗎?

答:這是一個(gè)棘手問題,程序員可以設(shè)法使用while和for循環(huán)。但實(shí)際上,有幾種方法可以遍歷Java中的所有Map。

第一種方法涉及使用keySet()并迭代該鍵,然后使用get()方法檢索值,這有點(diǎn)貴。

第二種方法涉及使用entrySet()并遍歷它們,方法是使用for循環(huán)或使用Iterator.hasNext()方法。這個(gè)方法更好。因?yàn)樵诘^程中key和value對(duì)象都可用,并且不需要調(diào)用get()方法來(lái)檢索值,這可以提供O(N)性能。

如果使用Java8并且有樹而不是鏈接列表,可能會(huì)稍微好一點(diǎn)。

結(jié)論

這就是投資銀行常見的Java面試問題。如果你正在尋找Java開發(fā)人員相關(guān)崗位,那么應(yīng)該多了解Java并發(fā)性,多線程,集合,JVM內(nèi)部結(jié)構(gòu),垃圾回收以及如何提高Java應(yīng)用程序的性能。

  • 上一篇文章:

  • 下一篇文章:
  •  

    0791-87557233

    重視每個(gè)來(lái)電 珍惜您的時(shí)間
    思誠(chéng)者開發(fā)沙龍
    江西思誠(chéng)科技有限公司  贛ICP備17006097號(hào)  CopyRight©2014 - 2020