国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

如何讀open jdk native 源碼

Anchorer / 1434人閱讀

摘要:它對應的實現是在中,原始代碼為這里是省略的方法體轉換后這里是省略的方法體附錄簡介

怎么看open jdk native的源碼

類的命名與java類的命名是一模一樣的

方法的命名為JNI的代碼風格

一般關注下文件頭,如果是系統文件,比如 , 是搜不到源碼的,否則全局可以搜到對應的命名

JVM_ENTRY等類似這樣的字符是啥意思?

JVM_ENTRY本身是一個宏定義,位于interfaceSupport.hpp中

#define JVM_ENTRY(result_type, header)                                //宏定義,每個使用這個名字的地方,都會被宏的內容所替代
extern "C" {                                                          //表示編譯器需要按照C的方式編譯
  result_type JNICALL header {                                       
    JavaThread* thread=JavaThread::thread_from_jni_environment(env); 
    ThreadInVMfromNative __tiv(thread);                              
    debug_only(VMNativeEntryWrapper __vew;)                          
    __ENTRY(result_type, header, thread)                              
extern "C" 解釋

宏定義

jvm_entry做了什么

例子

java中有一個AccessController.doPrivileged方法。它對應的實現是在jvm.cpp中,原始代碼為

JVM_ENTRY(jobject, JVM_DoPrivileged(JNIEnv *env, jclass cls, jobject action, jobject context, jboolean wrapException))
              #這里是省略的方法體
JVM_END

轉換后

extern "C" {                                                          
  jobject JNICALL JVM_DoPrivileged(JNIEnv *env, jclass cls, jobject action, jobject context, jboolean wrapException) {                                       
    JavaThread* thread=JavaThread::thread_from_jni_environment(env); 
    ThreadInVMfromNative __tiv(thread);                              
    debug_only(VMNativeEntryWrapper __vew;)                          
    __ENTRY(result_type, header, thread) 
            #這里是省略的方法體                                                  
      
                }
           }
附錄

JNI 簡介

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/71592.html

相關文章

  • 源碼|jdk源碼之Object及裝箱類型分析

    摘要:作為條件變量的的不僅可以認為內嵌了一把鎖,還內嵌了一個條件變量。操作條件變量的函數將當前線程在條件變量上阻塞,一般是為了等待其他線程的某件事情執行完成。其它裝箱類其它裝箱類的代碼這里就不分析了。重點關注下各裝箱類的緩存范圍。 jdk源碼讀到現在這里,重要的集合類也讀了一部分了。集合類再往下讀的話,就要涉及到兩個方向。第一,是比較典型的但是不常用的數據結構,這部分我準備將數據結構復習、回...

    VioletJack 評論0 收藏0
  • 【自己源碼】Netty4.X系列(三) Channel Register

    摘要:我想這很好的解釋了中,僅僅一個都這么復雜,在單線程或者說串行的程序中,編程往往是很簡單的,說白了就是調用,調用,調用然后返回。 Netty源碼分析(三) 前提概要 這次停更很久了,原因是中途迷茫了一段時間,不過最近調整過來了。不過有點要說下,前幾天和業內某個大佬聊天,收獲很多,所以這篇博文和之前也會不太一樣,我們會先從如果是我自己去實現這個功能需要怎么做開始,然后去看netty源碼,與...

    darkbug 評論0 收藏0
  • Java 外部函數接口:JNI, JNA, JNR

    摘要:我們知道,發起函數調用,需要構造一個棧幀。構造棧幀的具體實現細節的選擇,被稱為調用慣例。要想完成這個函數調用邏輯,就要運行時構造棧幀,生成參數壓棧和清理堆棧的工作。目前,幾乎支持全部常見的架構。 原文:http://nullwy.me/2018/01/java...如果覺得我的文章對你有用,請隨意贊賞 遇到的問題 前段時間開發的時候,遇到一個問題,就是如何用 Java 實現 chdir...

    pubdreamcc 評論0 收藏0
  • JDK10都發布了,nio你了解多少?

    摘要:而我們現在都已經發布了,的都不知道,這有點說不過去了。而對一個的讀寫也會有響應的描述符,稱為文件描述符,描述符就是一個數字,指向內核中的一個結構體文件路徑,數據區等一些屬性。 前言 只有光頭才能變強 回顧前面: 給女朋友講解什么是代理模式 包裝模式就是這么簡單啦 本來我預想是先來回顧一下傳統的IO模式的,將傳統的IO模式的相關類理清楚(因為IO的類很多)。 但是,發現在整理的過程已...

    YFan 評論0 收藏0
  • Java魔法類——Unsafe應用解析

    摘要:典型應用鎖和同步器框架的核心類,就是通過調用和實現線程的阻塞和喚醒的,而的方法實際是調用的方式來實現。 前言 Unsafe是位于sun.misc包下的一個類,主要提供一些用于執行低級別、不安全操作的方法,如直接訪問系統內存資源、自主管理內存資源等,這些方法在提升Java運行效率、增強Java語言底層資源操作能力方面起到了很大的作用。但由于Unsafe類使Java語言擁有了類似C語言指針...

    reclay 評論0 收藏0

發表評論

0條評論

Anchorer

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<