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虚拟机(JVM)的重要性日益凸显。掌握JVM不仅可以帮助开发者更好地理解...
这份JVM相关的笔记包含了深入理解JVM内部工作机制的关键代码资源,是学习和优化Java应用程序的重要参考资料。下面,我们将深入探讨Java与JVM的相关知识点。 1. **类加载机制**:JVM通过类加载器(ClassLoader)将...
### Java课堂笔记学习 #### 软件定义与软件开发 - **软件**:软件是运行在硬件之上的一组指令集,这些指令集能够完成特定的功能。软件开发过程包括设计和编码两个主要阶段。 #### 编程语言的重要性 - **编程语言...
深入理解Java虚拟机,首先我们要明白Java虚拟机(JVM)的核心功能:它负责装载类文件,执行字节码,并管理内存。Java虚拟机的结构复杂且高效,主要由类装载器、执行引擎、内存管理和类库等组件构成。 类装载器是JVM...
这份“JVM的学习笔记PDF版”应该包含了关于JVM的详细信息,帮助学习者深入理解这个复杂的系统。JVM允许Java代码跨平台运行,通过解释器、类加载器、垃圾收集器等组件实现“一次编写,到处运行”的理念。 1. **JVM...
在讨论Java编程思想学习笔记时,首先需要了解的是Java语言的平台无关性,而这一特性正是通过Java虚拟机(JVM)得以实现的。JVM作为Java程序设计的关键组成部分,对于Java开发人员来说是必须掌握的基础知识。在该学习...
6. **体系结构中立**:Java程序可以在任何环境中运行,只要这个环境中有一个Java虚拟机(JVM)。 7. **可移植性**:Java的可移植性来源于它的体系结构中立性。 8. **解释型**:Java源程序经过编译后得到的是字节码,...
这个压缩包包含了一本名为"良葛格Java学习笔记"的HTML文档,它很可能包含了从基础到高级的Java知识体系,涵盖了从语法、数据类型、控制结构,到面向对象编程、异常处理、集合框架、多线程、网络编程等多个方面。...
总的来说,“java基础知识学习笔记”是一份全面的教程,覆盖了Java编程的各个方面,无论你是初学者还是希望巩固基础的开发者,都能从中受益。通过这份笔记,你可以逐步建立起自己的Java知识体系,迈向编程世界的更...
### Java+JDK+6 学习笔记知识点详解 #### 一、Java 概述 ...综上所述,Java+JDK+6 学习笔记覆盖了 Java 语言的基本概念、特性以及如何开始学习 Java 的一系列指导。这对于初学者来说是非常宝贵的学习资源。
书中涵盖了JVM的体系结构、字节码规范、运行时数据区、异常处理、线程模型等多个方面,对于深入学习JVM非常有帮助。 6. **源码和工具**:了解JVM的源码有助于开发者更深入地理解其工作原理,同时,工具如JVisualVM...
### 学习笔记之对象的创建(Java) #### Java技术与Java虚拟机 Java作为一种广泛使用的编程语言,其独特之处在于“一次编写,到处运行”的理念。这一特性主要得益于Java虚拟机(JVM)的存在。Java技术主要包括以下几...
- **JAVA语言体系结构:** - **JAVASE(Java Platform, Standard Edition):** 用于开发桌面应用程序。 - **JAVAEE(Java Platform, Enterprise Edition):** 用于开发Web应用程序和企业级应用。 - **JAVAME...
在北大青鸟的学习笔记中,Java作为一门广泛使用的编程语言,是学习者深入理解软件开发的基础。这门课程涵盖了Java的各个方面,旨在帮助学生掌握核心的编程概念和实际应用技巧。下面将详细阐述Java编程的一些关键知识...
Java语言的特性包括简单性、面向对象、分布式、解释性、稳健性、安全性、体系结构中立性、可移植性、高性能、多线程和动态性等。为了能够运行Java程序,我们需要搭建相应的Java语言环境,包括JDK和JRE,并且需要正确...
这份"java学习笔记(corejava)部分.rar"文件很显然是针对Java初学者或者希望巩固基础知识的开发者准备的。下面我们将深入探讨Java Core的一些关键知识点。 1. **Java基础**:Java是一种面向对象的编程语言,其设计...
总的来说,"深入理解Java虚拟机读书笔记之:第3章 安全(2)"主要涵盖了Java安全体系的核心概念,包括类加载器、权限模型、安全管理器以及相关工具的使用。理解这些内容对于任何希望构建安全、可靠的Java应用程序的...
"JVM成神之路.rar"这个压缩包显然提供了一条深入理解JVM的路径,通过作者精心录制的6小时视频教程和54页的配套笔记,我们可以期待全面了解JVM的体系结构以及与其相关的内存管理,特别是垃圾回收(GC)机制。...