注册 | 登录读书好,好读书,读好书!
读书网-DuShu.com
当前位置: 首页出版图书科学技术工业技术建筑科学建筑设计Java虚拟机规范(Java SE 8版)

Java虚拟机规范(Java SE 8版)

Java虚拟机规范(Java SE 8版)

定 价:¥108.00

作 者: (美)Tim Lindholm(蒂姆·林霍尔姆,(美)Frank Yellin(费兰克·耶林),(美)Gilad Bracha(吉拉德·布拉查),(美)Alex Buckley(亚力克斯·巴克利)
出版社: 电子工业出版社
丛编项:
标 签: Java Java Script J2EE 程序设计 计算机/网络

购买这本书可以去


ISBN: 9787121273056 出版时间: 2016-03-01 包装: 平塑勒单衬
开本: 页数: 600 字数:  

内容简介

  本书由Java虚拟机技术创建人撰写,全面而准确地阐释了Java虚拟机各方面的细节,围绕Java虚拟机整体架构、编译器、class文件格式、加载、链接与初始化、指令集等核心主题对Java虚拟机进行全面而深入的分析,深刻揭示Java虚拟机的工作原理。书中完整地讲述了由JavaSE8所引入的新特性,例如对包含默认实现代码的接口方法所做的调用,以及为支持类型注解及方法参数注解而对class文件格式所做的扩展等,还阐明了class文件中各属性的含义及字节码验证的规则。本书基于JavaSE8,是深度了解Java虚拟机和Java语言实现细节的极佳选择。

作者简介

  (美)Tim Lindholm(蒂姆·林霍尔姆、(美)Frank Yellin(费兰克·耶林)、(美)Gilad Bracha(吉拉德·布拉查)、(美)Alex Buckley(亚力克斯·巴克利)

图书目录

目录前言1 Introduction1.1 A Bit of History1.2 The Java Virtual Machine1.3 Organization of the Specification1.4 Notation1.5 Feedback2 The Structure of the Java Virtual Machine2.1 The class File Format2.2 Data Types2.3 Primitive Types and Values2.3.1 Integral Types and Values2.3.2 Floating-Point Types, Value Sets, and Values2.3.3 The returnAddress Type and Values2.3.4 The boolean Type2.4 Reference Types and Values2.5 Run-Time Data Areas2.5.1 The pc Register2.5.2 Java Virtual Machine Stacks2.5.3 Heap2.5.4 Method Area2.5.5 Run-Time Constant Pool2.5.6 Native Method Stacks2.6 Frames2.6.1 Local Variables2.6.2 Operand Stacks2.6.3 Dynamic Linking2.6.4 Normal Method Invocation Completion2.6.5 Abrupt Method Invocation Completion2.7 Representation of Objects2.8 Floating-Point Arithmetic2.8.1 Java Virtual Machine Floating-Point Arithmetic and IEEE 7542.8.2 Floating-Point Modes2.8.3 Value Set Conversion2.9 Special Methods2.10 Exceptions2.11 Instruction Set Summary2.11.1 Types and the Java Virtual Machine2.11.2 Load and Store Instructions2.11.3 Arithmetic Instructions2.11.4 Type Conversion Instructions2.11.5 Object Creation and Manipulation2.11.6 Operand Stack Management Instructions2.11.7 Control Transfer Instructions2.11.8 Method Invocation and Return Instructions2.11.9 Throwing Exceptions2.11.10 Synchronization2.12 Class Libraries2.13 Public Design, Private Implementation3 Compiling for the Java Virtual Machine3.1 Format of Examples3.2 Use of Constants, Local Variables, and Control Constructs3.3 Arithmetic3.4 Accessing the Run-Time Constant Pool3.5 More Control Examples3.6 Receiving Arguments3.7 Invoking Methods3.8 Working with Class Instances3.9 Arrays3.10 Compiling Switches3.11 Operations on the Operand Stack3.12 Throwing and Handling Exceptions3.13 Compiling finally3.14 Synchronization3.15 Annotations4 The class File Format4.1 The ClassFile Structure4.2 The Internal Form of Names4.2.1 Binary Class and Interface Names4.2.2 Unqualified Names4.3 Descriptors4.3.1 Grammar Notation4.3.2 Field Descriptors4.3.3 Method Descriptors4.4 The Constant Pool4.4.1 The CONSTANT_Class_info Structure4.4.2 The CONSTANT_Fieldref_info, CONSTANT_Methodref_info, and CONSTANT_InterfaceMethodref_info Structures4.4.3 The CONSTANT_String_info Structure4.4.4 The CONSTANT_Integer_info and CONSTANT_Float_info Structures4.4.5 The CONSTANT_Long_info and CONSTANT_Double_info Structures4.4.6 The CONSTANT_NameAndType_info Structure4.4.7 The CONSTANT_Utf8_info Structure4.4.8 The CONSTANT_MethodHandle_info Structure4.4.9 The CONSTANT_MethodType_info Structure4.4.10 The CONSTANT_InvokeDynamic_info Structure4.5 Fields4.6 Methods4.7 Attributes4.7.1 Defining and Naming New Attributes4.7.2 The ConstantValue Attribute4.7.3 The Code Attribute4.7.4 The StackMapTable Attribute4.7.5 The Exceptions Attribute4.7.6 The InnerClasses Attribute4.7.7 The EnclosingMethod Attribute4.7.8 The Synthetic Attribute4.7.9 The Signature Attribute4.7.9.1 Signatures4.7.10 The SourceFile Attribute4.7.11 The SourceDebugExtension Attribute4.7.12 The LineNumberTable Attribute4.7.13 The LocalVariableTable Attribute4.7.14 The LocalVariableTypeTable Attribute4.7.15 The Deprecated Attribute4.7.16 The RuntimeVisibleAnnotations Attribute4.7.16.1 The element_value structure4.7.17 The RuntimeInvisibleAnnotations Attribute4.7.18 The RuntimeVisibleParameterAnnotations Attribute4.7.19 The RuntimeInvisibleParameterAnnotations Attribute4.7.20 The RuntimeVisibleTypeAnnotations Attribute4.7.20.1 The target_info union4.7.20.2 The type_path structure4.7.21 The RuntimeInvisibleTypeAnnotations Attribute4.7.22 The AnnotationDefault Attribute4.7.23 The BootstrapMethods Attribute4.7.24 The MethodParameters Attribute4.8 Format Checking4.9 Constraints on Java Virtual Machine Code4.9.1 Static Constraints4.9.2 Structural Constraints4.10 Verification of class Files4.10.1 Verification by Type Checking4.10.1.1 Accessors for Java Virtual Machine Artifacts4.10.1.2 Verification Type System4.10.1.3 Instruction Representation4.10.1.4 Stack Map Frame Representation4.10.1.5 Type Checking Abstract and Native Methods4.10.1.6 Type Checking Methods with Code4.10.1.7 Type Checking Load and Store Instructions4.10.1.8 Type Checking for protected Members4.10.1.9 Type Checking Instructions4.10.2 Verification by Type Inference4.10.2.1 The Process of Verification by Type Inference4.10.2.2 The Bytecode Verifier4.10.2.3 Values of Types long and double4.10.2.4 Instance Initialization Methods and Newly Created Objects4.10.2.5 Exceptions and finally4.11 Limitations of the Java Virtual Machine5 Loading, Linking, and Initializing5.1 The Run-Time Constant Pool5.2 Java Virtual Machine Startup5.3 Creation and Loading5.3.1 Loading Using the Bootstrap Class Loader5.3.2 Loading Using a User-defined Class Loader5.3.3 Creating Array Classes5.3.4 Loading Constraints5.3.5 Deriving a Class from a class File Representation5.4 Linking5.4.1 Verification5.4.2 Preparation5.4.3 Resolution5.4.3.1 Class and Interface Resolution5.4.3.2 Field Resolution5.4.3.3 Method Resolution5.4.3.4 Interface Method Resolution5.4.3.5 Method Type and Method Handle Resolution5.4.3.6 Call Site Specifier Resolution5.4.4 Access Control5.4.5 Overriding5.5 Initialization5.6 Binding Native Method Implementations5.7 Java Virtual Machine Exit6 The Java Virtual Machine Instruction Set6.1 Assumptions: The Meaning of "Must"6.2 Reserved Opcodes6.3 Virtual Machine Errors6.4 Format of Instruction Descriptionsmnemonic6.5 Instructionsaaloadaastoreaconst_nullaloadaload_<n>anewarrayareturnarraylengthastoreastore_<n>athrowbaloadbastorebipushcaloadcastorecheckcastd2fd2id2ldadddaloaddastoredcmp<op>dconst_<d>ddivdloaddload_<n>dmuldnegdremdreturndstoredstore_<n>dsubdupdup_x1dup_x2dup2dup2_x1dup2_x2f2df2if2lfaddfaloadfastorefcmp<op>fconst_<f>fdivfloadfload_<n>fmulfnegfremfreturnfstorefstore_<n>fsubgetfieldgetstaticgotogoto_wi2bi2ci2di2fi2li2siaddialoadiandiastoreiconst_<i>idivif_acmp<cond>if_icmp<cond>if<cond>ifnonnullifnulliinciloadiload_<n>imulineginstanceofinvokedynamicinvokeinterfaceinvokespecialinvokestaticinvokevirtualioriremireturnishlishristoreistore_<n>isubiushrixorjsrjsr_wl2dl2fl2iladdlaloadlandlastorelcmplconst_<l>ldcldc_wldc2_wldivlloadlload_<n>lmullneglookupswitchlorlremlreturnlshllshrlstorelstore_<n>lsublushrlxormonitorentermonitorexitmultianewarraynewnewarraynoppoppop2putfieldputstaticretreturnsaloadsastoresipushswaptableswitchwide7 Opcode Mnemonics by OpcodeIndexA Limited License Grant

本目录推荐