一、Java内存组成组成图堆(Heap)运行时数据区域,所有类实例和数组的内存均从此处分配。Java虚拟机启动时创建。对象的堆内存由称为垃圾回收器的自动内存管理系统回收。组成
组成 详解Young Generation即图中的Eden + From Space + To Space1.Eden存放新...
分类:
编程语言 时间:
2014-05-15 02:07:43
阅读次数:
320
Java栈和局部变量操作Java虚拟机是基于栈的机器,几乎所有Java虚拟机的指令都与操作数栈相关。栈操作包括把常量压入操作数栈、执行通用的栈操作、在操作数栈和局部变量之间往返传输值。1常量入栈操作:操作码在执行常量入栈操作之前,使用三种方式指明常量的值:常量值隐含包含在操作码内部、常量值在字节码中...
分类:
编程语言 时间:
2014-05-15 02:07:03
阅读次数:
509
1、针对对象的操作码实例化一个新对象需要通过new操作码来实现。对象的创建操作码操作数说明newindex在堆中创建一个新的对象,将其引用压入栈new操作码后面紧跟一个无符号16位数,表示常量池中的一个索引。在特定偏移量位置处的常量池入口给出了新对象所属类的信息。如果还没有这些信息,那么虚拟机会解析...
分类:
编程语言 时间:
2014-05-15 02:03:49
阅读次数:
441
1.对多线程的支持是Java语言的一大优势,Java对线程的控制主要集中在对线程的同步和协作上,Java使用的同步机制是监视器。监视器java监视器支持两种线程:互斥和协作。java虚拟机通过对象锁来实现互斥,允许多个线程在同一个共享数据上独立而不干扰地工作。协作则通过object类的wait方法....
分类:
编程语言 时间:
2014-05-15 01:55:47
阅读次数:
297
《深入Java虚拟机学习笔记》- 第19章 方法的调用与返回
分类:
编程语言 时间:
2014-05-15 01:50:27
阅读次数:
234
一、体系结构组成当编写并运行一个Java程序时,就同时体验了这四种技术。用Java语言编写源代码,编译成Java
Class文件,然后再在Java虚拟机上运行class文件。当编写程序时,通过调用类中的方法来访问系统资源。当程序运行的时候,它通过调用class文件中的方法来满足程序的Java
API...
分类:
编程语言 时间:
2014-05-15 01:49:05
阅读次数:
359
Java虚拟机包括许多进行基本类型转换工作的操作码,这些执行转换工作的操作码后面没有操作数,转换的值从栈顶断获得。Java虚拟机从栈顶端弹出一个值,对它进行转换,然后再把转换结果压入栈。int、long、float、double类型之间的相互转换操作码操作数说明i2l(无)将int类型的值转换为lo...
分类:
编程语言 时间:
2014-05-15 01:45:48
阅读次数:
224
《深入Java虚拟机学习笔记》- 第13章 浮点运算
分类:
编程语言 时间:
2014-05-15 01:43:38
阅读次数:
206
认识Java虚拟机的内部体系结构Java虚拟机的内部体系结构也许很少有人去关心,因为对于Java程序员来说,一般只需要跟API打交道就可以了。这些体系结构只是Java虚拟机内部的结构而已。但是如果理解了其内部结构,对于我们开发项目,以及排除系统中的相关故障是由帮助的。先看看总体结构图,如下:各部分的...
分类:
编程语言 时间:
2014-05-14 23:45:23
阅读次数:
293
1、用户自定义的类加载器:要创建用户自己的类加载器,只需要扩展java.lang.ClassLoader类,然后覆盖它的findClass(String
name)方法即可,该方法根据参数指定类的名字,返回对应的Class对象的引用。findClassprotected Class findClas...
分类:
编程语言 时间:
2014-05-14 23:38:14
阅读次数:
649