java虚拟机
文章平均质量分 62
kucaozhuzhu
这个作者很懒,什么都没留下…
展开
-
Java架构介绍(一)
http://blog.csdn.net/rodsonl/article/details/22163199 java语言平台架构 java语言的平台架构由下面四部分组成: java编程语言java的class文件格式java应用程序接口(API)java虚拟机 这四部分的关系如下图所示: 可以看到,java编程环境分为两个时期,编译时和运行时,程序中的java源文转载 2014-04-15 10:02:02 · 654 阅读 · 0 评论 -
Java虚拟机(三)
类加载器子系统 Java虚拟机实现中负责查找和加载类型的部分是类加载器子系统。java虚拟机包含两种类型的类加载器:bootstrap类加载器和user-defined类加载器。bootstrap类加载器是java虚拟机实现的一部分,而user-defind类加载器属于正在运行的java程序的一部分,不同的类加载器加载的classes被放置到各自的名字空间里。 user-defined转载 2014-04-15 10:09:59 · 453 阅读 · 0 评论 -
Java虚拟机(七)
本地方法栈 当一个线程调用native方法时,它就进入了一个不受java虚拟机限制的世界。它可以使用本地处理器的寄存器,在任何数量的本地堆上分配内存或者使用任意类型的栈。 本地方法接口会使用某种类型的本地方法栈,当线程调用java方法时,虚拟机创建一个帧并把它push到java栈中,当线程调用natvie方法时,线程不会将新的帧push到线程的java栈中,java虚拟机会只是动态连接转载 2014-04-15 10:14:51 · 486 阅读 · 0 评论 -
Java虚拟机(五)
堆 当一个类实例或者数组在java程序中被创建时,这些新对象的内存从一个单一的堆中分配。一个java虚拟机实例中只有一个堆,并被所有的线程共享,所以我们在程序中进行多线程访问对象时需要考虑同步的问题。 java虚拟机有为对象在堆中分配内存的指令,但却没有释放内存的指令。java虚拟机自身会负责决定什么时候应该将程序中不在引用的对象所占用的内存释放掉。通常,java虚拟机是实现中使用垃圾转载 2014-04-15 10:11:23 · 452 阅读 · 0 评论 -
Java虚拟机(四)
方法区 在java虚拟机中,方法区用于存储加载类型的信息。当虚拟机加载一个类型时,通过类加载器定位并读取符合条件的class文件(线性的二进制数据流),然后把从二进制数据中获取的类型信息存储到方法区中。类变量(static变量)的内存也来自方法区。 类型信息 对于每个加载的类型,java虚拟机需要将以下信息存储到方法区中: 类型的全限定名类型直接父类的全限定名(除非转载 2014-04-15 10:10:40 · 468 阅读 · 0 评论 -
Java虚拟机(二)
数据类型 Java虚拟机操作的数据类型可以分成两大类,基本类型和引用类型。引用类型的变量的值是指向对象的,而不是对象本身,相反,基本类型的值并不指向任何东西,存储的是它们的真实数据。数据类型的分类如下图所示: 所有java语言的基本类型都是java虚拟机的基本类型。虽然boolean作为java虚拟机的基本类型,但是java虚拟机对boolean的支持是非常有限的,当编译器把java源转载 2014-04-15 10:09:32 · 486 阅读 · 0 评论 -
Java虚拟机(一)
什么是java虚拟机 当谈到java虚拟机时一般会涉及到下面三个方面: 抽象规范具体实现运行实例 每个java程序运行在一个抽象的虚拟机规范的某种具体实现的运行实例上。 java虚拟机的生命周期 当以个程序启动时,一个java虚拟机运行实例被创建,当程序运行结束时,虚拟机运行实例被销毁,每个java程序对应一个java虚拟机。 java虚拟机通过调用类的main()方法转载 2014-04-15 10:05:53 · 505 阅读 · 0 评论 -
Java架构介绍(三)
Java API Java API是一套提供标准方式来访问主机系统资源的运行时库。当你运行一个java程序时,虚拟机会加载程序的class文件中引用到的Java API class文件。所有被加载的class文件(程序中的和Java API的)和被加载的动态链接库(含有native方法)组成了完整的Java虚拟机执行程序。 Java API的class文件本质上是特定于主机平台转载 2014-04-15 10:05:01 · 466 阅读 · 0 评论 -
Java架构介绍(二)
类加载器的结构 类加载器在安全性和网络移动性上起着重要作用,一个java虚拟机中可以包含多个类加载器,这些类加载器组成了类加载器子系统。 Java应用程序可以使用两种类型的类加载器: 一个bootstrap类加载器user-defined类加载器 bootstrap类加载器是Java虚拟机实现的一部分,它通常从本地磁盘中以某种默认的方式加载class文件转载 2014-04-15 10:03:54 · 459 阅读 · 0 评论 -
Java虚拟机(六)
程序计数器 程序中每个线程都有自己的程序计数器,在线程启动时创建。程序计数器的大小为一个word,所以它可以持有一个native指针或者一个returnAddress。当一个线程执行一个java方法时,程序计数器包含当前执行指令的地址,一个“地址”可以是native指针或者是一个从方法字节码开头的偏移量。如果一个线程执行一个native方法,程序计数器的值为undefined。转载 2014-04-15 10:12:58 · 445 阅读 · 0 评论