class档案

生活百科 2023-01-26 08:57生活百科www.aizhengw.cn

class档案

class档案全名称为Java class档案,主要在平台无关性和网路移动性方面使Java更适合网路。它在平台无关性方面的任务是为Java程式提供独立于底层主机平台的二进制形式的服务。

该档案打破了C或者C++等语言所遵循的传统,使用这些传统语言写的程式通常被编译,然后被连线成单独的、专门支持特定硬体平台和作业系统的二进制档案。

基本介绍

  • 中文名Java class
  • 简称class档案
  • 所属语言java
  • 执行过程Java虚拟机

基本信息

class档案径打破了C或者C++等语言所遵循的传统,使用这些传统语言写的程式通常被编译,然后被连线成单独的、专门支持特定硬体平台和作业系统的二进制档案。通常情况下,一个平台上的二进制执行档不能在其他平台上工作。而Java class档案是可以运行在任何支持Java虚拟机的硬体平台和作业系统上的二进制档案。

执行过程

2.1 执行过程简介
当编译和连线一个C++程式时,所获得的可执行二进制档案只能在指定的硬体平台和作业系统上运行,因为这个二进制档案包含了对目标处理器的机器语言。而Java编译器把Java源档案的指令翻译成位元组码,这种位元组码就是Java虚拟机的“机器语言”。
与普通程式不同的是,Java程式(class档案)并不是本地的可执行程式。当运行Java程式时,运行JVM(Java虚拟机),然后再把Java class载入到JVM里头运行,负责载入Java class的这部分就叫做Class Loader。
2.2 JVM中的ClassLoader
JVM本身包含了一个ClassLoader称为Bootstrap ClassLoader,和JVM一样,BootstrapClassLoader是用本地代码实现的,它负责载入核心JavaClass(即所有java.开头的类)。
JVM还会提供两个ClassLoader,它们都是用Java语言编写的,由BootstrapClassLoader载入;其中Extension ClassLoader负责载入扩展的Javaclass(例如所有javax.开头的类和存放在JRE的ext目录下的类)ApplicationClassLoader负责载入应用程式自身的类。
当运行一个程式的时候,JVM启动,运行bootstrapclassloader,该ClassLoader载入java核心API(ExtClassLoader和AppClassLoader也在此时被载入),然后调用ExtClassLoader载入扩展API,AppClassLoader载入CLASSPATH目录下定义的Class,这就是一个程式最基本的载入流程。
2.3 执行ClassLoader例子
什幺时候JVM会使用ClassLoader载入一个类呢?当你使用java去执行一个类,JVM使用ApplicationClassLoader载入这个类;然后如果类A引用了类B,不管是直接引用还是用Class.forName()引用,JVM就会找到载入类A的ClassLoader,并用这个ClassLoader来载入类B。JVM按照运行时的有效执行语句,来决定是否需要装载新类,从而装载儘可能少的类,这一点和编译类是不相同的。
上一篇:西蒙·巴兹 下一篇:G字头

Copyright@2015-2025 www.aizhengw.cn 癌症网版板所有