一、Java内存组成组成图堆(Heap)运行时数据区域,所有类实例和数组的内存均从此处分配。Java虚拟机启动时创建。对象的堆内存由称为垃圾回收器的自动内存管理系统回收。组成
组成 详解Young Generation即图中的Eden + From Space + To Space1.Eden存放新...
分类:
编程语言 时间:
2014-05-15 02:07:43
阅读次数:
320
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
Java虚拟机提供几种进行整数算术运算的操作码,他们执行基于int和long类型的运算。当byte、short和char类型值参与算术运算时,首先会将它们转换为int类型。这些操作码都不会抛出异常,溢出在这里通常可以被忽略。整数加法操作码操作数说明iadd(无)从栈中弹出两个int类型数,相加,然后...
分类:
编程语言 时间:
2014-05-14 23:36:57
阅读次数:
386