2012-02-06 7 views
1

Javaソースコードを提供するサイトがいくつかあります。 不都合なことに、これらはJavaネイティブのバイナリを参照していません。 要約:ネイティブ関数のソースコードは表示されません。Javaクラスのネイティブ実装を表示する方法は?

例はStrictMath.floorです。提供 唯一のことは、私は何に興味があり、実際のC/C++コードである生のJava宣言

public static native double floor(double a); 

です。彼らはどのように実際にそれを実装しましたか?

+1

可能重複http://stackoverflow.com/questions/2258031/source-code-for-the-java-library -クラス) – cdeszaq

答えて

5

OpenJDKプロジェクトには完全なソースが含まれています。 jdk 6のソースは、Sun/Oracleのjdkのものとほぼ同じです。 jdk 7のソースはほぼ正確に同等でなければなりません。

0

OpenJDKのデバッグビルドを使用すると、生成されたネイティブコードが表示されます。

StringMath.floor()は単一の機械命令に変換されます。すなわち、いくつかの「ネイティブ」メソッドがJVMによって実際にインライン化される。それがどのように役立つかわからない。 ;)

はFISTPのノートを参照してくださいhttp://stereopsis.com/FPU.html

[Javaのライブラリクラスのソースコード(の
関連する問題