我想知道JVM是怎么样调用一个方法,是怎么样定位到这个方法的,请高手们给详细解释一下!!!

解决方案 »

  1.   

    java虚拟机内存模型中有这么两个区域——方法区和执行栈(具体好像不是这个名字,这个栈是每个线程一个的),方法区中存放了所有的方法的字节码,当你通过一个引用去调用一个类的方法时候,JVM会通过引用实际指向的类的对象去判断当前类,然后去方法区找到当前类的方法的存储位置,然后根据方法名找到这个方法的入口
    这时候,在当前线程的执行栈会分配一个方法栈桢给这个调用的方法,用来存储参数、局部变量等,然后就是方法的字节码执行了。(其实方法执行的时候还有一个操作数栈配合方法栈桢栈一起使用,就不说这个了)
    方法结束,这个方法栈桢就释放了。