2012-02-09 78 views
8

我在採訪中得到了這些問題。Java:關於克隆方法的問題

  1. 我們需要照顧的克隆方法在併發環境?我們可以同步克隆方法嗎?

  2. 在單例類中使用克隆方法有意義嗎?

我沒有在接受採訪時對這一令人信服的答案。

+13

不用擔心。這些都是可怕的面試問題,所以你可能不想在那裏工作。 – corsiKa 2012-02-09 02:36:22

+0

你知道單身人士的意思嗎? – 2012-02-09 02:43:22

+1

這是哪裏?我可以在那裏工作嗎? – 2012-02-09 02:45:53

回答

1
  1. 如果你是克隆的對象這是受其他線程改變,那麼你可能需要獲得某種形式的[閱讀]僅鎖定,如果你是它做任何其他操作。理論上,如果新對象可能受到不安全的發佈(我建議不發佈可變對象,不安全!),則需要鎖定新對象。

  2. 它不會是一個單身人士,如果你可以做它的另一個實例(有單反模式,就像單身反模式,只有更糟糕,可能涉及多個對象沒有明確的目的)。我猜如果你是繼承一些實施了Cloneable的課程,你想覆蓋clone,並且可以投擲CloneNotSupportedException是可能的,否則返回this

2
  1. 或許是肯定的時代,但你必須要考慮在喜歡你的類的任何其他方法克隆並在必要時根據您的特定背景下,同步的99.99%。同步其基類中未同步的方法沒有任何問題。在另一方面,不同步的方法,同時覆蓋同步的一個可能是錯誤即使代碼編譯罰款和不發出任何警告...

  2. 令人信服的答案可能會與一對夫婦的是NO關於單身設計模式的話。