标签分类
当前位置:首页 > 程序设计电子书 > Java电子书网盘下载
Java虚拟机规范:Java SE 8版 Java虚拟机规范:Java SE 8版
码小辫

码小辫 提供上传

资源
43
粉丝
23
喜欢
111
评论
14

    Java虚拟机规范:Java SE 8版 PDF 影印清晰版

    Java电子书
    • 发布时间:

    给大家带来的一篇关于Java相关的电子书资源,介绍了关于Java、虚拟机、Java SE 8方面的内容,本书是由机械工业出版社出版,格式为PDF,资源大小161.2 MB,林霍尔姆编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:9.6,更多相关的学习资源可以参阅 程序设计电子书Java电子书、等栏目。

  • Java虚拟机规范:Java SE 8版 PDF 下载
  • 下载地址:https://pan.baidu.com/s/1QXqY4uMgRvhrNnKoVPAn7g
  • 分享码:mw33
  • Java虚拟机规范:Java SE 8版 PDF

    书是Oracle官方发布,Java虚拟机技术创建人撰写,国内资深Java技术专家翻译,是深度了解Java虚拟机和Java语言实现细节的必读之作,它完整地讲述了由JavaSE8所引入的新特性

    目录

    • 前言
    • 第1章 引言
    • 第2章 Java虚拟机结构
    • 第3章 Java虚拟机编译器
    • 第4章 class文件格式
    • 第5章 加载、链接与初始化
    • 第6章 Java虚拟机指令集
    • 第7章 操作码助记符
    • 附录A Limited License Grant

    上一篇:面向ArcGIS的Python脚本编程  下一篇:没有了

    展开 +

    收起 -

    Java相关电子书
    学习笔记
    网友NO.164105

    Java高级之虚拟机加载机制的实例讲解

    Jvm要加载的是二进制流,可以是.class文件形式,也可以是其他形式,按照它加载的标准来设计就不会有太大问题。 以下主要就机制和标准两个问题分析一番: 首先来Java类文件的加载机制 ,跟变量的加载机制类似,它先把Class文件加载入内存,再对数据进行验证、解析和初始化,最终形成虚拟机可以直接使用的Java类型。由于Java是采用JIT机制,所以加载时会比较慢,但优点也明显,具有高度灵活性,支持动态加载和动态连接。 接下来就讲讲类的加载过程: 一个类加载的基本过程是按照下面的顺序 来,但也有不严格按照这个顺序来的,也有打乱顺序来的,如动态加载就得先初始化再解析。 1、加载 由虚拟机自行决定,但也有由于下面的阶段要执行而执行上面阶段的情况。 这时虚拟机会做三件事: 第一、通过全限定名读取文件的二进制流; 第二、把文件里的静态方法和变量放到方法区中; 第三、生成一个对象放入堆中,作为访问入口。 注意第一条,仅是读取二进制流,没说具体从什么文件中读,也没说从哪里读,所以造就Java很强的扩展性,可以从Jar、Zip中,也可以从网络层、数据库层等 。 主要是对象和方法区的声明。 2、验证 确保二进制流符合虚拟机的要求, 不符合会报VerifyError。 第一、文件格式验证,是否有魔数……

    网友NO.161138

    详解Java虚拟机30个常用知识点之1——类文件结构

    1. Java文件 ClassFileTest.java package com.zxs.ssh.template.service; public class ClassFileTest { int m = 1; public int inc(){ return m+1; }} 2. Class文件ClassFileTest.class javacClassFileTest.java 编译.java文件得到.class文件 JDK版本1.8.0_201 .class文件可以用WinHex打开 3. javap -verboseClassFileTest.class (javap是一个用于分析.class文件字节码内容的工具) 4. 分析Class文件 4.1 魔数 a.格式:u4 b.内容CA FE BA BE c.含义:代表这是.class文件 4.2 版本号 a.格式:次版本号u2 + 主版本号u2 b.内容:00 00 00 34 c.含义:0034即十进制52,jdk 1.1是45,1.2是46,因此52代表1.8,所以主版本号是1.8;0000即十进制0,所以次版本号是0;合起来就是1.8.0 4.3 常量池 常量个数u2+tag u1+length u2+bytes u1 起点00000008 4.4 访问标志 u2 起点000000C2 4.5 类索引、父类索引和接口索引集合 u2+u2+u2(接口索引集合个数)+u2 起点000000C4 4.6 字段表集合 u2(字段个数)+u2(访问标志)+u2(name_index)+u2(字段描述符索引)+u2(属性表集合个数)+u2(属性名索引)+u4(属性长度)+u1起点000000CA 4.7 方法表集合 u2(方法个数)++u2(访问标志)+u2(name_index)+u2(方法描述符索引)+u2(属性表集合个数)+u2(属性名索引)+u4(属性长度)+u1起点000000D4 包含两个方法,第一个是构造器方法,起点是000000D6;另一个方法是inc方法,起点是0000010A 4.8 属性表集合 u2(属性表集合个数)+u2(属性名索引)+u4(属性长……

    网友NO.488613

    Java虚拟机处理异常的最佳方式

    前言 欢迎来到Under The Hood专栏。本专栏旨在让Java开发人员一瞥在运行Java程序底层的神秘机制。本月的文章继续讨论Java虚拟机的字节码指令集,方法是检查Java虚拟机处理异常抛出和捕获的方式,包括相关的字节码。本文不讨论finally条款 - 这是下个月的主题。后续文章将讨论字节码系列的其他成员。 下面话不多说了,来一起看看详细的介绍吧 Exceptions Exceptions允许您顺利处理程序运行时发生的意外情况。要演示Java虚拟机处理异常的方式,请考虑一个名为NitPickyMath的类。它提供了对整数执行加法,减法,乘法,除法和余数的方法。NitPickyMath在溢出,下溢和被零除的条件下抛出已检查的异常。Java虚拟机将在整数除零上抛出一个ArithmeticException,但不会在溢出和下溢上抛出任何异常。方法抛出的异常定义如下: class OverflowException extends Exception {}class UnderflowException extends Exception {}class DivideByZeroException extends Exception {} 捕获和抛出异常的简单方法是remainder类的方法NitPickyMath: static int remainder(int dividend, int divisor) throws DivideByZeroException { try { return dividend % divisor; } catch (ArithmeticException e) { throw new DivideByZeroException(); }} 该remainder方法仅在传递两个int参数时执行余数运算。如果余数运算的除数为零,则余数运算抛出一个ArithmeticException。这个方……

    网友NO.409841

    深入理解Java虚拟机体系结构

    1概述 众所周知,Java支持平台无关性、安全性和网络移动性。而Java平台由Java虚拟机和Java核心类所构成,它为纯Java程序提供了统一的编程接口,而不管下层操作系统是什么。正是得益于Java虚拟机,它号称的“一次编译,到处运行”才能有所保障。 1.1Java程序执行流程 Java程序的执行依赖于编译环境和运行环境。源码代码转变成可执行的机器代码,由下面的流程完成: Java技术的核心就是Java虚拟机,因为所有的Java程序都在虚拟机上运行。Java程序的运行需要Java虚拟机、Java API和Java Class文件的配合。Java虚拟机实例负责运行一个Java程序。当启动一个Java程序时,一个虚拟机实例就诞生了。当程序结束,这个虚拟机实例也就消亡。 Java的跨平台特性,因为它有针对不同平台的虚拟机。 1.2Java虚拟机 Java虚拟机的主要任务是装载class文件并且执行其中的字节码。由下图可以看出,Java虚拟机包含一个类装载器(classloader),它可以从程序和API中装载class文件,JavaAPI中只有程序执行时需要的类才会被装载,字节码由执行引擎来执行。 当Java虚拟机由主机操作系统上的软件实现时,Java程序通过调用本地方法和主机进行交互。Java方法由Java语言编写,编译成字节码,存储在class文件中。本地方法由C/C++/汇编语言编写,编译成和处理器相关的机器……

    Copyright 2018-2019 xz577.com 码农之家

    版权责任说明