一级日韩免费大片,亚洲一区二区三区高清,性欧美乱妇高清come,久久婷婷国产麻豆91天堂,亚洲av无码a片在线观看

程序員面試攻略

時(shí)間:2022-10-27 02:17:09 面試問(wèn)題 我要投稿
  • 相關(guān)推薦

程序員面試攻略

  一、入門(mén)級程序員的面試題:

程序員面試攻略

  這些軟件設計和設計模式的先關(guān)問(wèn)題大多會(huì )出現在初學(xué)者面試情景中,什么是設計模式?特定的設計模式又是什么?等等這些概念,也許你很輕易回答這些概念,但文內提供的這些問(wèn)題也許能給你帶來(lái)更多價(jià)值。

  1。 什么是設計模式?在你編碼過(guò)程中使用了哪些設計模式?

  每位程序員都會(huì )利用自身經(jīng)歷來(lái)回答這些特定的設計問(wèn)題。設計模式是代碼重用的擴展。

  2。 你能說(shuō)出在標準的JDK庫中使用的一些設計模式嗎?

  Decorator設計模式常被用于各種Java IO類(lèi)中,Singleton模式常被用在運行環(huán)節中,Calendar以及各種其他類(lèi),Factory(工廠(chǎng))模式常被用于各種不可變類(lèi),比如Boolean。Boolean。valueOf和Observer模式常被用于Swing和許多事件監聽(tīng)機器框架中。

  3。 在Java中Singleton設計模式是什么?為線(xiàn)程安全Singleton編碼。

  Singleton模式在整個(gè)系統中主要是共享模式。在整個(gè)應用程序實(shí)例中只保持一個(gè)特定的類(lèi),這是由所以模塊共享決定的。Java。lang。Runtime是Singleton設計模式中一個(gè)典型范例。關(guān)于此問(wèn)題你可以查看更多。從Java 5版本開(kāi)始,你可以為安全線(xiàn)程singleton模式使用enum。

  4。 使用Factory模式主要優(yōu)勢是什么?你會(huì )在哪種情況下使用?

  Factory模式最主要的優(yōu)勢在于當創(chuàng )建對象時(shí)可提高封裝水平。如果你使用Factory模式來(lái)創(chuàng )建對象,你可以在后期重置最初產(chǎn)品的裝置或者無(wú)須任何客戶(hù)層就可實(shí)現更先進(jìn)更高性能的類(lèi)?梢圆榭次以l(fā)表過(guò)的有關(guān)Factory模式的更多細節及優(yōu)點(diǎn)。

  5。 Java中Observer設計模式是什么?

  Observer設計模式基于對象的變化而改變。比如:天氣系統,在這里必須將天氣變化的視圖呈現給觀(guān)眾。這里天氣項目是主體而非不同的觀(guān)察者。通過(guò)這篇文章,查看在Java中Observer模式。

  6。 例舉一個(gè)在Java中使用Decorator模式的案例?它從事的是對象級別還是類(lèi)級別?

  Decorator模式可提高個(gè)體對象的能力。Java IO廣泛使用Decorator模式和Buffered類(lèi)型的一些經(jīng)典例子,比如BufferedReader和BufferedWriter,增強讀者和作家執行Buffer級別的閱讀和寫(xiě)作從而提高性能。

  7。 什么是MVC設計模式?請例舉一個(gè)MVC設計模式案例。

  8。 Java中FrontController設計模式是什么?請例舉一個(gè)FrontController設計模式案例。

  9。 Responsibility設計模式是什么?

  10。 Adapter設計模式是什么?請例舉一個(gè)在Java中的Adapter設計模式案例。

  二、進(jìn)階級程序員的面試題:

  1。 舉例說(shuō)明你什么時(shí)候會(huì )用抽象類(lèi),什么時(shí)候更愿意使用接口?

  這是一個(gè)很常見(jiàn)的面試問(wèn)題,并不算難。接口和抽象類(lèi)都按照“不為實(shí)現寫(xiě)代碼”的設計原則,這是為了增加代碼的靈活性,以應付不斷變化的要求。下面是一些幫助你回答這個(gè)問(wèn)題的指南:

  在Java中,你只能繼承一個(gè)類(lèi),但實(shí)現多個(gè)接口。所以你繼承一個(gè)類(lèi)的時(shí)候就無(wú)法再繼承別的類(lèi)了。

  接口是用來(lái)代表形容詞或行為,例如Runnable、Clonable、Serializable等。因此,如果您使用一個(gè)抽象類(lèi)來(lái)實(shí)現Runnable和Clonacle,你就不可以使你的類(lèi)同時(shí)實(shí)現這兩個(gè)功能,而如果接口的話(huà)就沒(méi)問(wèn)題。

  抽象類(lèi)是比接口稍快,所以很在乎時(shí)間的應用盡量使用抽象類(lèi)。

  如果多個(gè)繼承層次的共同行為在在同一個(gè)地方編寫(xiě)更好,那么抽象類(lèi)會(huì )是更好的選擇。有時(shí)候可以在接口里定義函數但是在抽象類(lèi)里默認功能就能實(shí)現接口和抽象類(lèi)共同工作了。了解Java接口。

  2。 設計一個(gè)能接收不同硬幣、出售不同貨物的自動(dòng)售貨機。

  這是一個(gè)比較開(kāi)放的設計問(wèn)題,你可以使用它練習文檔設計、寫(xiě)代碼和JUnit單元測試,而不是僅僅是解決問(wèn)題。這道題的目標絕不會(huì )僅僅是想測出你多久能夠得到解決方案。理想情況下,這個(gè)問(wèn)題應該在3小時(shí)內給出一個(gè)可工作版本。

  3。 你有一個(gè)Smartphone類(lèi)和它派生類(lèi)iPhone、 AndroidPhone、WindowsPhone等,以及以品牌名稱(chēng)命名的派生類(lèi)如SonyPhone等。你該如何設計這一類(lèi)的系統?

  這是另一種設計模式的練習,你充分利用面向對象的設計技巧,保證它有足夠的靈活性來(lái)支持新產(chǎn)品,并且在現有模型改變時(shí)能夠保證足夠的穩定性。

  4。 在Java中,什么時(shí)候該使用overload,什么時(shí)候使用override?

  對于一個(gè)經(jīng)驗豐富的設計師來(lái)說(shuō)這是一個(gè)非常簡(jiǎn)單的問(wèn)題。重載和覆蓋在Java里實(shí)現的都是同一個(gè)功能,但overload的輸入變量不同,override則完全相同。

  5。 設計ATM機

  我們幾乎都使用過(guò)ATM機,但你想過(guò)該怎么設計它嗎?金融系統的設計原則之一就是必須能在所有預期情況下都能夠正常運行。所以無(wú)論是發(fā)生斷電還是什么其它暴力問(wèn)題,ATM機都必須能夠保證正確的狀態(tài)。 考慮下鎖、事務(wù)處理、錯誤狀態(tài)、臨界條件等等。即使你拿不定確切的設計方案,但是能夠指出非功能性需求、提出一些問(wèn)題或者考慮考慮臨界條件都會(huì )對你有幫助。

  6。 假設你正在設計市場(chǎng)數據類(lèi)來(lái)保證能夠切換不同的信息供應商,比如Reuters、wombat等等,或者直接交換信息,你該如何設計這個(gè)市場(chǎng)信息系統?

  這是非常有趣的設計面試問(wèn)題,實(shí)際上在大型投資銀行里是個(gè)很普遍的問(wèn)題。關(guān)鍵在于你需要提供擁有g(shù)etBid()、getPrice()和getLevel()方法的MarketData接口供客戶(hù)請求,同時(shí)還需要有一個(gè)使用依賴(lài)注入的MarketDataProvider組件。這樣在你改變MarketDataProvider時(shí)就不會(huì )對系統產(chǎn)生影響,因為客戶(hù)是通過(guò)MarketData接口或者類(lèi)調用方法的。

  7。 為什么Java里不允許從靜態(tài)方法中獲取非靜態(tài)變量?

  Java里不允許從靜態(tài)方法中獲取非靜態(tài)變量?jì)H僅是因為非靜態(tài)變量會(huì )和特定的對象實(shí)例相關(guān)聯(lián),而靜態(tài)變量不會(huì )。

  8。 用Java設計一個(gè)并發(fā)規則管道?

  并發(fā)編程和并行設計非常熱門(mén),因為它能更高效地利用現在越來(lái)越先進(jìn)的處理器,而且Java被認為是多線(xiàn)程語(yǔ)言也主要因為此原因。設計一個(gè)并發(fā)系統的關(guān)鍵在于線(xiàn)程安全、不可變性、本地變量,還有避免使用局部變量和實(shí)例變量。你只需要保證多個(gè)線(xiàn)程能夠在同一時(shí)間執行同一個(gè)類(lèi),所以最佳解決方案就是每個(gè)線(xiàn)程只操作自己的數據,盡量使用最小的同步,尤其是在管道開(kāi)始時(shí)。這個(gè)問(wèn)題可以從初始討論到最終類(lèi)和接口的編寫(xiě)實(shí)現,但是只要你記得注意并發(fā)問(wèn)題的關(guān)鍵,比如競爭狀態(tài)、死鎖、內存沖突、原子操作、ThreadLocal變量等等,盡量繞過(guò)這些問(wèn)題。

【程序員面試攻略】相關(guān)文章:

面試攻略談07-14

面試攻略問(wèn)答12-13

小升初面試攻略03-29

考研面試攻略08-10

如何面試:面試程序員12-08

面試攻略:心理面試成新寵11-14

進(jìn)入外企的面試攻略03-28

面試全攻略12-11

MBA英文面試攻略12-11

面試服飾禮儀攻略12-08

一级日韩免费大片,亚洲一区二区三区高清,性欧美乱妇高清come,久久婷婷国产麻豆91天堂,亚洲av无码a片在线观看