3

クラスのオーバーライドされたclone()メソッドはjava.lang.Object、すべての配列で使用できます。

配列のこのメソッドはどこでオーバーライドされますか?

4

1 に答える 1

5

JLS10.7で定義されています。

パブリックメソッドcloneは、クラスObjectの同じ名前のメソッドをオーバーライドし、チェックされた例外をスローしません。配列型T[]のcloneメソッドの戻り型はT[]です。
多次元配列のクローンは浅いです。つまり、新しい配列を1つだけ作成します。サブアレイは共有されます。

どこでどのようにオーバーライドされるかは、実装によって異なります。たとえば、HotSpotの場合は、539行目以降にありますドリルダウンすると、プラットフォームに依存するメソッドを呼び出すことがわかります。たとえば、Windows-x86の場合、pd_conjoint_jlongs_atomicメソッドはここの97行目にあり、アセンブリコードを使用します。

于 2012-06-16T10:06:15.880 に答える