引用
http://www.blogjava.net/AndersLin/archive/2006/06/11/51997.html
(从csdn的blog转来)
Java 程序的工作机制: Java 对象都以单独的 class 文件存在, java 虚拟机将其载入并执行其虚拟机指令。
Java 虚拟机查找这些 java 对象:
java 虚拟机根据 class path 来查找 java 对象,而虚拟机的 class path 又分为三层:
bootstrap : sun.boot.class.path
extension: java.ext.dirs
application: java.class.path
三个 class path 各有对应的 classloader 。由上而下形成父子关系
当程序中调用 new 指令,或者 ClassLoader.load 方法时。其顺序如下:
1. 首先查看 application 的 classloader 中是否已有对应的 class 缓存,如果有则返回,并根据 class 分配内存。如果没有,接下一步。
2. 首先查看 extension 的 classloader 中是否已有对应的 class 缓存,如果有则返回,并根据 class 分配内存。如果没有,接下一步。
3. 首先查看 bootstrap 的 classloader 中是否已有对应的 class 缓存,如果有则返回,并根据 class 分配内存。如果没有,接下一步。
4. 由 bootstrap 的 classloader 在其 class path 中试图加载该 class ,如果有,则将该 class 放入 cache 中,并返回。如果没有,接下一步。
5. 由 extension 的 classloader 在其 class path 中试图加载该 class ,如果有,则将该 class 放入 cache 中,并返回。如果没有,接下一步。
6. 由 application 的 classloader 在其 class path 中试图加载该 class ,如果有,则将该 class 放入 cache 中,并返回。如果没有,则抛出 ClassNotFound 的 exception 。
Java 虚拟机加载这些 java 对象:
每个 java 虚拟机都在其启动时产生一个唯一的 class heap ,并把所有的 class instance 都分配在其中。其中每个类实例的信息又分两部分, fields 域和 methods 域。每个类实例各自拥有 fields ,但同一个类的不同实例共享 methods
分享到:
相关推荐
【Java两年工作经验简历】 在Java开发领域,两年的工作经验意味着开发者已经从新手阶段逐渐过渡到熟练工阶段。在这段时间里,他们通常会掌握以下几个关键的知识点: 1. **基础语法与核心概念**:掌握Java的基础...
### Java的运行机制 在深入理解Java语言的过程中,了解其运行机制是至关重要的一步。本文将从Java的编译与执行、JVM(Java虚拟机)的作用、类加载器(ClassLoader)的工作原理以及JRE(Java运行时环境)与JDK(Java...
Java虚拟机工作原理详解 Java虚拟机工作原理详解是 Java 程序执行的核心组件之一。了解 Java 虚拟机的工作原理对 Java 开发人员来说非常重要。本文将详细介绍 Java 虚拟机工作原理的详细过程和类加载器的工作机理。...
4. **流程定义**:在Java工作流实现中,流程定义通常使用XML或YAML等格式描述,包含了各个步骤、转移条件和参与者等信息。虽然这里没有提供流程定义文件,但可以假设项目中包含了一个或多个流程定义,这些定义被工作...
《基于工作任务的Java程序设计》是一份教学资料,旨在帮助学习者通过实际的工作任务来掌握Java编程技术。Java是一种广泛使用的面向对象的编程语言,它以其跨平台性、高效性和强大的类库支持而受到广大开发者喜爱。这...
JVM(Java虚拟机)是Java平台的核心,理解其工作原理,比如类加载机制、内存模型(堆、栈、方法区、元空间等)、垃圾收集器(新生代、老年代、CMS、G1、ZGC等)以及性能调优技巧,是区分优秀开发者的关键。...
9. **分析Java反射Class类型的源代码**:深入理解反射机制的工作原理,了解Class文件的结构以及JVM如何加载类对象以支持反射操作。 #### 四、Java反射原理分析 1. **Class文件结构**:每个编译后的Java类都会生成...
这个名为“java 工作中的一些资料整理”的压缩包显然是一份宝贵的资源,包含了可能涵盖Java开发各个方面的文档。由于标签是"doc",我们可以推测这些文档可能是Microsoft Word格式,方便阅读和编辑。 1. **Java基础...
Java作为世界上最流行的编程语言之一,其面试题涵盖了广泛的知识...通过阅读提供的文档如"Java面试宝典2010版.doc"、"SSH面试题.doc"、"2011最新java面试题.doc"和"java 资料.pdf",你可以更全面地准备Java工作的面试。
##### 2.1 Reflection的工作机制示例 下面通过一个简单的示例来展示Java反射机制的工作流程: ```java import java.lang.reflect.*; public class DumpMethods { public static void main(String args[]) { try...
Java同步机制是多线程编程中确保数据一致性与正确性的关键。在Java中,主要有两种同步机制:内置的`synchronized`关键字以及基于`java.util.concurrent`包中的高级同步工具类。本文将深入探讨这些机制的底层实现,...
本报告将深入探讨Java语言中如何实现同步机制,并通过实际代码来阐述其工作原理。 1. **Java中的并发基础** - Java提供了多种并发工具,如`Thread`类、`Runnable`接口,以及`ExecutorService`和`Future`等高级API...
对于工作1到3年的Java开发者来说,掌握核心概念、理解基础原理以及具备实际项目经验是至关重要的。以下是一些可能出现在面试中的Java相关知识点,这些知识点涵盖了基础语法、面向对象编程、集合框架、多线程、异常...
本主题聚焦于"oa.rar"压缩包中的"java oa_java 工作流_oa java_工作流_表单"相关知识点,这涉及到Java技术栈在构建OA系统时的工作流实现和表单定制。 首先,我们来看"java oa_java"这部分。"Java"是全球最流行的...
此外,也可能讨论了并发编程、JVM优化、垃圾回收机制、AOP(面向切面编程)以及反射等进阶主题,这些都是提升Java开发效率和代码质量的关键知识。 3. **Java数据结构笔记.pdf**: 数据结构是任何编程语言中都不可...
javax.swing 提供一组“轻量级”(全部是 Java 语言)组件,尽量让这些组件在所有平台上的工作方式都相同。 javax.swing.border 提供围绕 Swing 组件绘制特殊边框的类和接口。 javax.swing.colorchooser 包含供 ...
本文深入探讨了 Java 类加载器的概念、类型、工作机制以及如何实现自定义类加载器。通过理解类加载器,开发者可以更好地控制类的加载过程,提高应用的性能和安全性。希望本文能帮助你更深入地理解 Java 类加载器及其...
Java的事件处理机制采用委托事件模型,这一模型的工作流程如下: 1. 用户与GUI组件(事件源)交互,触发事件。 2. 事件源通过调用注册方法将监听器对象添加到自己的监听器列表中,从而将事件处理权委托给监听器。 3...