JVM java 的虚拟机.从来没有深入的研究过。这几天有时间看看网上的帖子,在自己理解做下笔记。
java虚拟机的体系结构:
当一个ClassLoad启动的时候,ClassLoad首先将硬盘上的class文件读取后,放入JVM的方法区,
JVM 会产生一个new A()的对象放在JVM 的堆区。
字节码会产生两个引用,一个指向加载自己的ClassLoad,一个指向JVM 创建的new对象。
作图如下:
A文件的字节码包含的信息如下:
用代码看看JVM 如何加载一个类:
先写一个类:
public class ProcessJvm { public void showStatus() { System.out.println("I am runing....."); } public int showNumber(int x){ return x+10; } }
调用,用反射调用类的方法,含参数的方法就是调用不成,感觉有问题??
public class Studyjvm { public static void fileProcess(){ try { URL[] urls = new URL[]{new URL("file:/E:/IntelliJWorkSpace/javaThink/out/javaThink/")}; URLClassLoader classLoader = new URLClassLoader(urls); Class c = classLoader.loadClass("jvm.ProcessJvm"); System.out.println("classesName:"+c.getPackage()); Method m = c.getMethod("showNumber"); Object o = c.newInstance(); m.invoke(o); //这里想调用含参数的showNumber(int x) 方法怎么调用都不对,为什么?? // Object oo = c.newInstance(); // Method me = c.getMethod("showNumber",Integer.class); // // Object x = me.invoke(oo,10); // System.out.println("x:==-=="+x); // } catch (Exception e) { e.printStackTrace(); } }
相关推荐
JVM 学习笔记(Java虚拟机)
一个文档让你读懂什么事java虚拟机,让你的编程生涯更加的透彻!
本书讲述了Java虚拟机一运行 所有Java程序的抽象计算机,还讲了几种与虚拟机密切相关的核心Java API。本书通过分析讲解、可运行的示例、参考资料和applet (它作为文中所述概念的交互式例示),提供了Java技术的深人...
java之jvm学习笔记五(实践写自己的类装载器)
IBM Thread and Monitor Dump Analyzer for Java专业JVM调优工具 一、使用方法 1.使用java -jar启动程序 2.找到需要分析的jvm进程 3.使用jstack [pid] > /tmp/sdapjvmlog.txt导出进程的详细日志 4.使用程序打开...
JVM内存结构-JVM体系结构 程序计数器 虚拟机栈 本地方法栈 堆 方法区
Java语言规范和JVM虚拟机规范.zip,Oracle官方文档,包括Java语法的定义等内容。Java语言规范包含JDK678三个版本,JVM虚拟机规范包含78两个版本。
java之jvm学习笔记十一(访问控制器)-源码
一份JVM学习的笔记,含查看JVM运行时信息\JVM垃圾收集信息\JVM锁信息等
java虚拟机第二版
JVM(Java虚拟机)的整个流程:发展,运行区域,垃圾回收器,内存分配策略,垃圾收集,JVM分析工具,JVM优化
深入Java虚拟机JVM类加载学习笔记:jvm java classloader 垃圾回收 gc
Java虚拟机JVM类加载学习笔记
jvm java虚拟机 调优 马士兵 笔记 让你对java虚拟机调优有初步的认识
详细介绍了jvm生命周期和体系结构及垃圾回收机制
java8虚拟机规范,适合中文较好的同学尝试,对虚拟机底层的知识进行接触及学习,俗话说的好,磨刀不误砍柴工,一起进步吧!!!
深入了解jvm,理解java虚拟机底层实现。是一个很不错的额视频教程
实战java虚拟机,实战java虚拟机,小弟不才,没有文采。
java之jvm学习笔记八(实践对jar包的代码签名)
经典JVM PPT,可以直接讲课的 java虚拟机原理介绍 Java虚拟机生命周期 Java虚拟机体系结构 Java 的class文件