本章主要介绍字节码实现的finally子句。包括相关指令以及这些指令的使用方式。此外,本章还介绍了Java源代码中finally子句所展示的一些令人惊讶的特性,并从字节码角度对这些特征进行了解释。1、微型子例程
字节码中的finally子句表现的很像“微型子例程”。Java虚拟机在每个try...
分类:
编程语言 时间:
2014-05-15 02:10:16
阅读次数:
403
一、JVM的生命周期当启动一个Java程序时,一个Java虚拟机实例就诞生了;当该程序关闭退出时,这个Java虚拟机也就随之消亡;JVM实例通过调用某个初始类的main方法来运行一个Java程序;这个main方法必须是public、static的,而且返回值必须是void;任何一个拥有这样的main...
分类:
编程语言 时间:
2014-05-15 02:09:06
阅读次数:
350
一、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