精华内容
下载资源
问答
  • 07本地方法接口-本地方法库-本地方法栈什么是本地方法?为什么要使用Native Method ?现状本地方法栈 在这里感谢尚硅谷JVM(宋红康),在此记录一下自己详细对学习笔记,希望对你有所帮助。 视频地址 代码地址 06&...

    在这里感谢尚硅谷JVM(宋红康),在此记录一下自己详细对学习笔记,希望对你有所帮助。

    视频地址
    代码地址

    06&07本地方法接口-本地方法库-本地方法栈

    什么是本地方法?

    简单地讲,一个Native Method就 是一个Java调用非Java代码的接口。 一个
    Native Method是这样 一个Java方法:该方法的实现由非Java语言实现,比如C。这个特征并非Java所特有,很多其它的编程语言都有这一机制,比如在C++中,
    你可以用extern "C"告 知C++编译器去调用-一个C的函数。

    “A native method is a Java method whose implementation isprovided by non-java code.”

    在定义一个native method时,并不提供实现体(有些像定义一个Javainterface),因为其实现体是由非java语言在外面实现的。

    本地接口的作用是融合不同的编程语言为Java所用,它的初衷是融合C/C++程序。

    public class IHaveNatives {
        public native void Native1(int x);
    
        native static public long Native2();
    
        native synchronized private float Native3(Object o);
    
        native void Native4(int[] art) throws Exception;
    }
    

    标识符native可以与所有其它的java标识符连用,但是abstract除外。

    为什么要使用Native Method ?

    Java使用起来非常方便,然而有些层次的任务用Java实现起来不容易,或者我们对程序的效率很在意时,问题就来了。
    与Java环境外交互:
    **有时Java应用需要与Java外面的环境交互,这是本地方法存在的主要原因。**你可以想想Java需要与一些底层系统,如操作系统或某些硬件交换信息时的情况。本地方法正是这样一种交流机制:它为我们提供了一个非常简洁的接口,而且我们无需去了解Java应用之外的繁琐的细节。

    ●与操作系统交互:
    JVM支持着Java语言本身和运行时库,它是Java程序赖以生存的平台,它由一个解释器(解释字节码)和一些连接到本地代码的库组成。然而不管怎样,它毕竟不是一个完整的系统,它经常依赖于一些底层系统的支持。这些底层系统常常是强大的操作系统。**通过使用本地方法,我们得以用Java实现了jre的与底层系统的交互,甚至JVM的一些部分就是用c写的。**还有,如果我们要使用一些Java语言本身没有提供封装的操作系统的特性时,我们也需要使用本地方法。
    ●Sun’ s Java
    Sun的解释器是用C实现的,这使得它能像一些普通的C一样与外部交互。jre大部分是用Java实现的,它也通过一些本地方法与外界交互。 例如:类java.lang. Thread的setPriority() 方法是用Java实现的,但是它实现调用的是该类里的本地方法setPriority0()。这个本地方法是用c实现的,并被植入JVM内部,在windows 95
    的平台上,这个本地方法最终将调用win32 SetPriority() API。 这是一个本地方
    法的具体实现由JVM直接提供,更多的情况是本地方法由外部的动态链接库,
    (external dynamic link library) 提供,然后被JVM调用。

    现状

    目前该方法使用的越来越少了,除非是与硬件有关的应用,比如通过Java程序驱动打印机或者Java系统管理生产设备,在企业级应用中已经比较少见。因为现在的异构领域间的通信很发达,比如可以使用Socket通信,也可以使用web Service等等, 不多做介绍。

    本地方法栈

    ●Java虛拟机栈用于管理Java方法的调用,而本地方法栈用于管理本地方法
    的调用。
    ●本地方法栈,也是线程私有的。
    允许被实现成固定或者是可动态扩展的内存大小。(在内存溢出方面是相同的)

    ➢如果线程请求分配的栈容量超过本地方法栈允许的最大容量,Java虚拟机将会。
    抛出一个StackOverflowError 异常。
    ➢如果本地方法栈可以动态扩展,并且在尝试扩展的时候无法申请到足够的内存,
    或者在创建新的线程时没有足够的内存去创建对应的本地方法栈,那么Java虚拟机将会抛出一个OutOfMemoryError 异常。

    ●本地方法是使用C语言实现的。
    ●它的具体做法是Native Method Stack中登记native方法,在Execution Engine 执行时加载本地方法库。

    ●当某个线程调用一个本地方法时,它就进入了一个全新的并且不再受虚拟
    机限制的世界。它和虚拟机拥有同样的权限。

    ➢本地方法可以通过本地方法接口来访问虚拟机内部的运行时数据区。
    ➢它甚至可以直接使用本地处理器中的寄存器
    ➢直接从本地内存的堆中分配任意数量的内存。

    ●并不是所有的JVM都支持本地方法。因为Java虚拟机规范并没有明确要求9
    **本地方法栈的使用语言、具体实现方式、数据结构等。**如果JVM产品不打算支持native方法,也可以无需实现本地方法栈。
    ●在Hotspot JVM中, 直接将本地方法栈和虚拟机栈合二为-。

    image-20200510155636354

    public synchronized void start() {
        /**
         * This method is not invoked for the main method thread or "system"
         * group threads created/set up by the VM. Any new functionality added
         * to this method in the future may have to also be added to the VM.
         *
         * A zero status value corresponds to state "NEW".
         */
        if (threadStatus != 0)
            throw new IllegalThreadStateException();
    
        /* Notify the group that this thread is about to be started
         * so that it can be added to the group's list of threads
         * and the group's unstarted count can be decremented. */
        group.add(this);
    
        boolean started = false;
        try {
            start0();
            started = true;
        } finally {
            try {
                if (!started) {
                    group.threadStartFailed(this);
                }
            } catch (Throwable ignore) {
                /* do nothing. If start0 threw a Throwable then
                  it will be passed up the call stack */
            }
        }
    }
    
    private native void start0();
    

    在Thread类中start()又调用了start0()这个本地方法,所以说合二为一

    展开全文
  • 本地方法栈.xmind

    2020-08-26 11:53:30
    自己总结的jvm中本地方法栈的笔记,绘制了详细的思维导图,每个思维导图中均有详细的博文解释,方便大家学习理解,免费分享给大家。适合jvm的爱好者学习者自己总结的jvm中本地方法接口的笔记,绘制了详细的思维...
  • JVM学习笔记(三)本地方法栈

    千次阅读 2018-12-01 15:30:25
     本地方法栈的功能特点类似于虚拟机,均具有线程隔离的特点以及都能抛出StackOverflowErrorOutOfMemoryError异常。  不同的是,本地方法栈服务的对象是JVM执行的native方法,而虚拟机服务的是JVM执行的...

    本地方法栈(Native Method Stack)

    本地方法栈的功能和特点类似于虚拟机栈,均具有线程隔离的特点以及都能抛出StackOverflowError和OutOfMemoryError异常。
      不同的是,本地方法栈服务的对象是JVM执行的native方法,而虚拟机栈服务的是JVM执行的java方法。如何去服务native方法?native方法使用什么语言实现?怎么组织像栈帧这种为了服务方法的数据结构?虚拟机规范并未给出强制规定,因此不同的虚拟机实可以进行自由实现,我们常用的HotSpot虚拟机选择合并了虚拟机栈和本地方法栈。


    延伸——java的native方法

    一. 什么是Native Method
    简单地讲,一个Native Method就是一个java调用非java代码的接口。一个Native Method是这样一个java的方法:该方法的实现由非java语言实现,比如C。这个特征并非java所特有,很多其它的编程语言都有这一机制,比如在C++中,你可以用extern "C"告知C++编译器去调用一个C的函数。
    在定义一个native method时,并不提供实现体(有些像定义一个java interface),因为其实现体是由非java语言在外面实现的。,下面给了一个示例:

     {
          native public void Native1( int x ) ;
          native static public long Native2() ;
          native synchronized private float Native3( Object o ) ;
          native void Native4( int[] ary ) throws Exception ;
        } 
    

    标识符native可以与所有其它的java标识符连用,但是abstract除外。这是合理的,因为native暗示这些方法是有实现体的,只不过这些实现体是非java的,但是abstract却显然的指明这些方法无实现体。native与其它java标识符连用时,其意义同非Native Method并无差别,比如native static表明这个方法可以在不产生类的实例时直接调用,这非常方便,比如当你想用一个native method去调用一个C的类库时。上面的第三个方法用到了native synchronized,JVM在进入这个方法的实现体之前会执行同步锁机制(就像java的多线程。)
    **一个native method方法可以返回任何java类型,包括非基本类型,而且同样可以进行异常控制。**这些方法的实现体可以制一个异常并且将其抛出,这一点与java的方法非常相似。当一个native method接收到一些非基本类型时如Object或一个整型数组时,这个方法可以访问这非些基本型的内部,但是这将使这个native方法依赖于你所访问的java类的实现。有一点要牢牢记住:我们可以在一个native method的本地实现中访问所有的java特性,但是这要依赖于你所访问的java特性的实现,而且这样做远远不如在java语言中使用那些特性方便和容易。
    如果一个含有本地方法的类被继承,子类会继承这个本地方法并且可以用java语言重写这个方法,同样的如果一个本地方法被fianl标识,它被继承后不能被重写。
    二.为什么要使用Native Method
    与java环境外交互:
    有时java应用需要与java外面的环境交互。这是本地方法存在的主要原因,你可以想想java需要与一些底层系统如操作系统或某些硬件交换信息时的情况。本地方法正是这样一种交流机制:它为我们提供了一个非常简洁的接口,而且我们无需去了解java应用之外的繁琐的细节。
    与操作系统交互:
    JVM支持着java语言本身和运行时库,它是java程序赖以生存的平台,它由一个解释器(解释字节码)和一些连接到本地代码的库组成。然而不管怎 样,它毕竟不是一个完整的系统,它经常依赖于一些底层(underneath在下面的)系统的支持。这些底层系统常常是强大的操作系统。通过使用本地方法,我们得以用java实现了jre的与底层系统的交互,甚至JVM的一些部分就是用C写的,还有,如果我们要使用一些java语言本身没有提供封装的操作系统的特性时,我们也需要使用本地方法。
    三.JVM怎样使Native Method跑起来:
    我们知道,当一个类第一次被使用到时,这个类的字节码会被加载到内存,并且只会回载一次。在这个被加载的字节码的入口维持着一个该类所有方法描述符的list,这些方法描述符包含这样一些信息:方法代码存于何处,它有哪些参数,方法的描述符(public之类)等等。
    如果一个方法描述符内有native,这个描述符块将有一个指向该方法的实现的指针。这些实现在一些DLL文件内,但是它们会被操作系统加载到java程序的地址空间。当一个带有本地方法的类被加载时,其相关的DLL并未被加载,因此指向方法实现的指针并不会被设置。当本地方法被调用之前,这些DLL才会被加载,这是通过调用java.system.loadLibrary()实现的。

    展开全文
  • Java的内存区中,为线程私有的有三部分:程序计数器,虚拟机本地方法栈。1. Java虚拟机的程序计数器用于指定程序所执行字节码的行号。2. Java的多线程是用时间片轮转的方式实现的。每个线程都有自己的程序...

    Java的内存区中,为线程私有的有三部分:程序计数器,虚拟机栈,本地方法栈。

    1.    Java虚拟机的程序计数器用于指定程序所执行字节码的行号。

    2.    Java的多线程是用时间片轮转的方式实现的。每个线程都有自己的程序计数器,称之为线程私有,用于轮转到自己时从上次执行位置继续执行。

    3.    每个线程执行时,都会创建一个栈,称为虚拟机栈。而每个方法在执行时,需要存储变量表,操作数,动态链接和方法出口等,称为栈帧。每一个方法从调用到执行完成,就对应一个栈帧在虚拟机栈中从入栈到出栈的过程。所以虚拟机栈也是每个线程私有的

    虚拟机栈有深度。若请求的深度大于允许深度,那么将抛出栈溢出异常;若虚拟机动态扩展时无法申请到足够的内存,则抛出内存不足异常。

    4.    虚拟机栈是用于虚拟机执行Java方法时使用的。而本地方法栈则是虚拟机执行本地方法时使用。但有的虚拟机会将这两个栈合二为一。

    本地方法栈也是线程私有的。因为本地方法也需要存储变量表,操作数等信息,与虚拟机栈类似。

    5.    本地方法通常是通过Java方法调用的。所以整个过程是:调用Java方法(虚拟机栈)→调用本地方法(本地方法栈)→返回给Java方法(虚拟机栈)。

    当然在此过程中,可能出现Java方法调用其他Java方法,本地方法调用其他本地方法,本地方法调用Java方法等情况。

     

    本地方法即在Java工程外实现的方法,可能是由其他语言例如C编写。通常本地方法封装在库内。例如对操作系统接口的调用,操作系统接口就是本地方法。

    展开全文
  • 本地方法栈与Native方法

    千次阅读 2018-08-18 10:07:38
    刚开始看《深入理解Java虚拟机》,在里面看到一句话,不是很理解:本地方法栈与虚拟机所发挥的作用时非常相似的,它们之间的区别不过是虚拟机为虚拟机执行Java方法(也就是字节码)服务,而本地方法栈则为虚拟机...

    刚开始看《深入理解Java虚拟机》,在里面看到一句话,不是很理解:本地方法栈与虚拟机栈所发挥的作用时非常相似的,它们之间的区别不过是虚拟机栈为虚拟机执行Java方法(也就是字节码)服务,而本地方法栈则为虚拟机使用到的的Native方法服务。在这里转载一篇帖子介绍什么是Native方法。

    http://blog.csdn.net/wike163/article/details/6635321

    ---------------------------------------------------------分割线-------------------------------------------------------------------------------------------------------

    今天花了两个小时把一份关于什么是Native Method的英文文章好好了读了一遍,以下是我依据原文的理解。


    一. 什么是Native Method
       简单地讲,一个Native Method就是一个java调用非java代码的接口。一个Native Method是这样一个java的方法:该方法的实现由非java语言实现,比如C。这个特征并非java所特有,很多其它的编程语言都有这一机制,比如在C++中,你可以用extern "C"告知C++编译器去调用一个C的函数。
       "A native method is a Java method whose implementation is provided by non-java code."
       在定义一个native method时,并不提供实现体(有些像定义一个java interface),因为其实现体是由非java语言在外面实现的。,下面给了一个示例:    
        public class IHaveNatives
        {
          native public void Native1( int x ) ;
          native static public long Native2() ;
          native synchronized private float Native3( Object o ) ;
          native void Native4( int[] ary ) throws Exception ;
        } 
    这些方法的声明描述了一些非java代码在这些java代码里看起来像什么样子(view).
    标识符native可以与所有其它的java标识符连用,但是abstract除外。这是合理的,因为native暗示这些方法是有实现体的,只不过这些实现体是非java的,但是abstract却显然的指明这些方法无实现体。native与其它java标识符连用时,其意义同非Native Method并无差别,比如native static表明这个方法可以在不产生类的实例时直接调用,这非常方便,比如当你想用一个native method去调用一个C的类库时。上面的第三个方法用到了native synchronized,JVM在进入这个方法的实现体之前会执行同步锁机制(就像java的多线程。)一个native method方法可以返回任何java类型,包括非基本类型,而且同样可以进行异常控制。这些方法的实现体可以制一个异常并且将其抛出,这一点与java的方法非常相似。当一个native method接收到一些非基本类型时如Object或一个整型数组时,这个方法可以访问这非些基本型的内部,但是这将使这个native方法依赖于你所访问的java类的实现。有一点要牢牢记住:我们可以在一个native method的本地实现中访问所有的java特性,但是这要依赖于你所访问的java特性的实现,而且这样做远远不如在java语言中使用那些特性方便和容易。   native method的存在并不会对其他类调用这些本地方法产生任何影响,实际上调用这些方法的其他类甚至不知道它所调用的是一个本地方法。JVM将控制调用本地方法的所有细节。需要注意当我们将一个本地方法声明为final的情况。用java实现的方法体在被编译时可能会因为内联而产生效率上的提升。但是一个native final方法是否也能获得这样的好处却是值得怀疑的,但是这只是一个代码优化方面的问题,对功能实现没有影响。
      如果一个含有本地方法的类被继承,子类会继承这个本地方法并且可以用java语言重写这个方法(这个似乎看起来有些奇怪),同样的如果一个本地方法被fianl标识,它被继承后不能被重写。
     

    本地方法非常有用,因为它有效地扩充了jvm.事实上,我们所写的java代码已经用到了本地方法,在sun的java的并发(多线程)的机制实现中,许多与操作系统的接触点都用到了本地方法,这使得java程序能够超越java运行时的界限。有了本地方法,java程序可以做任何应用层次的任务。


    二.为什么要使用Native Method
       java使用起来非常方便,然而有些层次的任务用java实现起来不容易,或者我们对程序的效率很在意时,问题就来了。
       与java环境外交互:
       有时java应用需要与java外面的环境交互。这是本地方法存在的主要原因,你可以想想java需要与一些底层系统如操作系统或某些硬件交换信息时的情况。本地方法正是这样一种交流机制:它为我们提供了一个非常简洁的接口,而且我们无需去了解java应用之外的繁琐的细节。
       与操作系统交互:
       JVM支持着java语言本身和运行时库,它是java程序赖以生存的平台,它由一个解释器(解释字节码)和一些连接到本地代码的库组成。然而不管怎 样,它毕竟不是一个完整的系统,它经常依赖于一些底层(underneath在下面的)系统的支持。这些底层系统常常是强大的操作系统。通过使用本地方法,我们得以用java实现了jre的与底层系统的交互,甚至JVM的一些部分就是用C写的,还有,如果我们要使用一些java语言本身没有提供封装的操作系统的特性时,我们也需要使用本地方法。
        Sun's Java
        Sun的解释器是用C实现的,这使得它能像一些普通的C一样与外部交互。jre大部分是用java实现的,它也通过一些本地方法与外界交互。例如:类java.lang.Thread 的 setPriority()方法是用java实现的,但是它实现调用的是该类里的本地方法setPriority0()。这个本地方法是用C实现的,并被植入JVM内部,在Windows 95的平台上,这个本地方法最终将调用Win32 SetPriority() API。这是一个本地方法的具体实现由JVM直接提供,更多的情况是本地方法由外部的动态链接库(external dynamic link library)提供,然后被JVM调用。


    三.JVM怎样使Native Method跑起来:
        我们知道,当一个类第一次被使用到时,这个类的字节码会被加载到内存,并且只会回载一次。在这个被加载的字节码的入口维持着一个该类所有方法描述符的list,这些方法描述符包含这样一些信息:方法代码存于何处,它有哪些参数,方法的描述符(public之类)等等。
        如果一个方法描述符内有native,这个描述符块将有一个指向该方法的实现的指针。这些实现在一些DLL文件内,但是它们会被操作系统加载到java程序的地址空间。当一个带有本地方法的类被加载时,其相关的DLL并未被加载,因此指向方法实现的指针并不会被设置。当本地方法被调用之前,这些DLL才会被加载,这是通过调用java.system.loadLibrary()实现的。
       
       最后需要提示的是,使用本地方法是有开销的,它丧失了java的很多好处。如果别无选择,我们可以选择使用本地方法。

     

    展开全文
  • 本地方法栈及native方法

    千次阅读 2017-09-26 11:20:06
    看到虚拟机栈和本地方法栈的区别的时候有点疑惑,因为本地方法栈为虚拟机的Native方法服务。以下转载一篇关于native方法的介绍: http://blog.csdn.net/wike163/article/details/6635321 ——————————...
  • 第 7 章 本地方法栈

    2020-08-12 16:31:39
    第 7 章 本地方法栈 1、本地方法栈 本地方法栈的特点 Java虚拟机于管理Java方法的调用,而本地方法栈用于管理本地方法的调用。 本地方法栈,也是线程私有的。 允许被实现成固定或者是可动态扩展的内存大小...
  • JVM本地方法栈及native方法

    千次阅读 2018-01-27 09:01:57
    看到虚拟机栈和本地方法栈的区别的时候有点疑惑,因为本地方法栈为虚拟机的Native方法服务。以下转载一篇关于native方法的介绍: http://blog.csdn.net/wike163/article/details/6635321 ——————————...
  • 什么是本地方法栈? oracle官方文档jvms-se7 Java虚拟机的实现可以使用传统的堆栈(俗称“ C堆栈”)来支持native方法(用Java编程语言以外的语言编写的方法)。解释器的实现也可以使用诸如C之类的语言来解释Java...
  • 1.1本地方法栈

    千次阅读 2016-02-08 22:49:54
    [last updated :2016/2/8]  在上一讲(1....本文将通过以下几个话题来进一步讨论本地方法栈。 Topic 1. JVM运行时数据区里有什么?Topic 1. JVM运行时数据区里有什么?Topic 1. JVM运行时数据区里有什么?
  • 本地方法栈服务的对象是JVM执行的native方法,其就是一个java调用非java代码的接口,作用是与操作系统外部环境交互 如果某个虚拟机实现的本地方法接口是使用C连接模型的话,那么它的本地方法栈就是C。当C程序...
  • 最近在看《深入理解Java虚拟机》,书中给了几个例子,比较好的说明了几种...Java程序运行时,数据会分区存放,JavaStack(Java)、 heap(堆)、method(方法区)。1、JavaJava的区域很小,只有1M,特点是存...
  • 不同的jvm对于内存的划分方式管理机制存在着部分差异(对于Hotspot主要指方法区) java虚拟机定义了若干种程序运行期间会使用到的运行时数据区,其中有一些会随着虚拟机启动而创建,随着虚拟机退出而销毁。另外...
  • 看到虚拟机栈和本地方法栈的区别的时候有点疑惑,因为本地方法栈为虚拟机的Native方法服务。以下转载一篇关于native方法的介绍: http://blog.csdn.net/wike163/article/details/6635321 ————————————...
  • 本地方法栈(Native Method Stacks)与虚拟机栈所发挥的作用是非常相似的,其区别不过是虚拟机栈为虚拟机执行Java方法(也就是字节码)...甚至有的虚拟机(譬如Sun HotSpot虚拟机)直接就把本地方法栈和虚拟机栈合二
  • 本地方法可以通过本地方法接口来访问虚拟机的运行时数据区,但不止如此,它还可以做任何它想做的事情。 本地方法本质上时依赖于实现的,虚拟机实现的设计者们可以自由地决定使用怎样的机制来让Java程序调用本地方法...
  • Java内存管理:深入Java内存区域1. 运行时数据区域Java虚拟机在执行Java程序...这些区域都有各自的用途,创建以及销毁时间,有的区域随着虚拟机进程的启动而存在,有些区域则是依赖用户线程的启动结束而建立销毁。
  • 本文笔记参考自小滴课堂传智播客JVM学习教程整合而来 小滴课堂 传智播客哔哩哔哩链接 一、JVM 入门介绍 JVM 定义 Java Virtual Machine,JAVA程序的运行环境(JAVA二进制字节码的运行环境) JVM 优势 一次编写...
  • 本地方法 1.什么是Native Method 一个Native Method就是一个Java调用非Java代码的接口。一个Native Method是这样一个Java方法,该方法的实现由非Java语言实现。 "A native method is a Java method whose ...
  • 和栈的精华大总结

    万次阅读 多人点赞 2019-11-18 18:37:41
    、堆、常量池虽同属Java内存分配时操作的区域,但其适用范围功用却大不相同。 一般Java在内存分配时会涉及到以下区域: ◆寄存器:我们在程序中无法控制 ◆:存放基本类型的数据对象的引用,但对象本身不...
  • 甚至有的虚拟机(例如Sun HotSpot虚拟机)直接就把本地方法栈和虚拟机栈合二为一。与虚拟机栈一样本地方法栈也会抛出StackOverFlowError和OutOfmMemoryError异常 java堆 对于大多数应用来说,java堆(java ...
  • java-基础-JNI本地栈

    千次阅读 2016-07-29 23:29:38
    Native Interface是在JAVANative层(包括但不限于C/C++)相互调用的接口规范。 JNI在JAVA1.1中正式推出,在JAVA1.2版本中加入了JNI_OnLoad,JNI_OnUnload方法,这两个方法还是很有用的,后面再说。 JNI基础...
  • 包括字节码指令集,寄存器,栈(方法栈和本地方法栈),垃圾回收,堆,方法区,运行在操作系统上,与硬件无交互 这里给大家整理了一些面试题有需要完整版的朋友可以点一点领取:点这里即可领取下面资料!!!,获取...
  • 我们知道本地服务与Framework层服务都是基于Binder框架实现的,本地系统服务采用Binder进程间通信,Framework系统服务利用AIDL最简单(当然也可以自己写),但是他们都是基于Binder框架实现,所以他们的接口是可以...
  • Java 里的分为 虚拟机本地方法栈,在大家口中经常说的,一般是指我们的虚拟机 虚拟机 Java 虚拟机(后面简称)是线程私有的,所以他的生命周期与当前线程是一样的,是用来描述方法执行的一个内存...
  • VxWorks网络协议的MUX接口

    千次阅读 2011-10-15 11:45:54
    介绍嵌入式操作系统VxWorks网络协议的MUX(Multiplexer)接口及其使用方法。 关键词 VxWorks 网络协议 MUX   VxWorks是美国Wind River System公司(风河公司)推出的一个运行在目标机上的高性能、可裁
  • JVM的体系结构(1) Class Loader类加载器 负责加载 .class文件,class文件在文件开头有...① 定位导入二进制class文件② 验证导入类的正确性③ 为类分配初始化内存④ 帮助解析符号引用.(2) Native Interface本地...
  • 根据《java虚拟机规范》规定,JVM的基本结构一般如下图所示:由上图可知JVM基本机构包括:类加载器、内存区域、执行引擎、本地库接口 。这里我们说明一下内存区(也叫运行时数据区),运行时内存区主要可以划分为5个...
  • Java JVM 中 堆,方法区 详解

    万次阅读 多人点赞 2017-03-01 16:45:51
    一 jvm运行时数据区有哪些我们先来看一张图 JVM运行时数据区分类 1. JVM (Java Virtual Machine Stacks) ... 本地方法栈 (Native Method Stacks) 5. 程序计数器 (Program Counter (PC) Register)二
  • Vue(二)模拟本地数据,做数据接口 一、默认创建好vue的项目,我这里的vue项目是test如图 二、 (1)创建json.data文件,文件与index.html文件同级,如上图,写入以下代码 { "seller": { "...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 120,356
精华内容 48,142
关键字:

本地库接口和本地方法栈