我在哪里可以找到Java库中`native`方法的源代码?

时间:2015-05-15 03:26:00

标签: java java-8 native atomic openjdk

sun.misc包中,我在Unsafe class。

下看到了这些方法
public final native boolean compareAndSwapObject(Object var1, long var2, Object var4, Object var5);

public final native boolean compareAndSwapInt(Object var1, long var2, int var4, int var5);

public final native boolean compareAndSwapLong(Object var1, long var2, long var4, long var6);

似乎这些方法都是原子的并且是用C语言编写的,但我无法在Github上找到这些方法的源代码。有没有人对此有任何想法?如何轻松找到这些方法的开源实现?

4 个答案:

答案 0 :(得分:6)

答案 1 :(得分:0)

您可以下载OpenJdk源代码JDK7。有一个文件夹共享(jdk \ src \ share),您可以在其中获取源代码。文件夹native(jdk \ src \ share \ native)有源代码(用c和c ++编写):

  1. jdk \ src \ linux source for linux。
  2. jdk \ src \ windows source for windows。
  3. jdk \ src \ solaris souce for solaris。
  4. jd \ src \ share common source。

答案 2 :(得分:0)

谢谢@Buddy

最后,我在Github镜像中找到jdk7-hotspot的源代码:

https://github.com/openjdk-mirror/jdk7u-hotspot/blob/master/src/share/vm/prims/unsafe.cpp

答案 3 :(得分:0)

您的问题明确要求var canvasGraphic = (function(){ return { getCanvas:function(){ var canvas = document.createElement("canvas"); var body = document.getElementsByTagName("body")[0]; body.appendChild(canvas); canvas.style.border = "black solid"; } } })(); canvasGraphic.getCanvas(); 。从命令行运行此命令(您需要安装java 8客户端)

Mercurial

这将为您提供hg clone http://hg.openjdk.java.net/jdk8/jdk8 及其他所有内容的源代码。