在好例子网,分享、交流、成长!
您当前所在位置:首页Java 开发实例常规Java编程 → JVM白皮书.pdf

JVM白皮书.pdf

常规Java编程

下载此实例
  • 开发语言:Java
  • 实例大小:1.96M
  • 下载次数:10
  • 浏览次数:135
  • 发布时间:2020-06-13
  • 实例类别:常规Java编程
  • 发 布 人:yang1276
  • 文件格式:.pdf
  • 所需积分:2
 相关标签: JVM

实例介绍

【实例简介】JVM白皮书

【实例截图】

from clipboard

【核心代码】

Table of Contents
1 Introduction 1
1.1 A Bit of History 1
1.2 The Java Virtual Machine 2
1.3 Organization of the Specification 3
1.4 Notation 4
1.5 Feedback 4
2 The Structure of the Java Virtual Machine 5
2.1 The class File Format 5
2.2 Data Types 6
2.3 Primitive Types and Values 6
2.3.1 Integral Types and Values 7
2.3.2 Floating-Point Types, Value Sets, and Values 8
2.3.3 The returnAddress Type and Values 10
2.3.4 The boolean Type 10
2.4 Reference Types and Values 11
2.5 Run-Time Data Areas 11
2.5.1 The pc Register 12
2.5.2 Java Virtual Machine Stacks 12
2.5.3 Heap 13
2.5.4 Method Area 13
2.5.5 Run-Time Constant Pool 14
2.5.6 Native Method Stacks 14
2.6 Frames 15
2.6.1 Local Variables 16
2.6.2 Operand Stacks 17
2.6.3 Dynamic Linking 18
2.6.4 Normal Method Invocation Completion 18
2.6.5 Abrupt Method Invocation Completion 18
2.7 Representation of Objects 19
2.8 Floating-Point Arithmetic 19
2.8.1 Java Virtual Machine Floating-Point Arithmetic and IEEE
754 19
2.8.2 Floating-Point Modes 20
2.8.3 Value Set Conversion 20
2.9 Special Methods 22
2.9.1 Instance Initialization Methods 22
2.9.2 Class Initialization Methods 22
2.9.3 Signature Polymorphic Methods 23
2.10 Exceptions 23
The Java® Virtual Machine Specification
iv
2.11 Instruction Set Summary 26
2.11.1 Types and the Java Virtual Machine 26
2.11.2 Load and Store Instructions 29
2.11.3 Arithmetic Instructions 30
2.11.4 Type Conversion Instructions 32
2.11.5 Object Creation and Manipulation 34
2.11.6 Operand Stack Management Instructions 34
2.11.7 Control Transfer Instructions 34
2.11.8 Method Invocation and Return Instructions 35
2.11.9 Throwing Exceptions 36
2.11.10 Synchronization 36
2.12 Class Libraries 37
2.13 Public Design, Private Implementation 37
3 Compiling for the Java Virtual Machine 39
3.1 Format of Examples 39
3.2 Use of Constants, Local Variables, and Control Constructs 40
3.3 Arithmetic 45
3.4 Accessing the Run-Time Constant Pool 46
3.5 More Control Examples 47
3.6 Receiving Arguments 50
3.7 Invoking Methods 51
3.8 Working with Class Instances 53
3.9 Arrays 55
3.10 Compiling Switches 57
3.11 Operations on the Operand Stack 59
3.12 Throwing and Handling Exceptions 59
3.13 Compiling finally 63
3.14 Synchronization 66
3.15 Annotations 67
3.16 Modules 68
4 The class File Format 71
4.1 The ClassFile Structure 72
4.2 Names 77
4.2.1 Binary Class and Interface Names 77
4.2.2 Unqualified Names 78
4.2.3 Module and Package Names 78
4.3 Descriptors 79
4.3.1 Grammar Notation 79
4.3.2 Field Descriptors 79
4.3.3 Method Descriptors 81
4.4 The Constant Pool 82
4.4.1 The CONSTANT_Class_info Structure 85
4.4.2 The CONSTANT_Fieldref_info, CONSTANT_Methodref_info, and
CONSTANT_InterfaceMethodref_info Structures 86
4.4.3 The CONSTANT_String_info Structure 87
The Java® Virtual Machine Specification
v
4.4.4 The CONSTANT_Integer_info and CONSTANT_Float_info
Structures 87
4.4.5 The CONSTANT_Long_info and CONSTANT_Double_info
Structures 89
4.4.6 The CONSTANT_NameAndType_info Structure 90
4.4.7 The CONSTANT_Utf8_info Structure 91
4.4.8 The CONSTANT_MethodHandle_info Structure 93
4.4.9 The CONSTANT_MethodType_info Structure 95
4.4.10 The CONSTANT_Dynamic_info and
CONSTANT_InvokeDynamic_info Structures 95
4.4.11 The CONSTANT_Module_info Structure 96
4.4.12 The CONSTANT_Package_info Structure 97
4.5 Fields 98
4.6 Methods 100
4.7 Attributes 103
4.7.1 Defining and Naming New Attributes 110
4.7.2 The ConstantValue Attribute 110
4.7.3 The Code Attribute 111
4.7.4 The StackMapTable Attribute 115
4.7.5 The Exceptions Attribute 122
4.7.6 The InnerClasses Attribute 123
4.7.7 The EnclosingMethod Attribute 126
4.7.8 The Synthetic Attribute 127
4.7.9 The Signature Attribute 128
4.7.9.1 Signatures 129
4.7.10 The SourceFile Attribute 133
4.7.11 The SourceDebugExtension Attribute 133
4.7.12 The LineNumberTable Attribute 134
4.7.13 The LocalVariableTable Attribute 135
4.7.14 The LocalVariableTypeTable Attribute 137
4.7.15 The Deprecated Attribute 139
4.7.16 The RuntimeVisibleAnnotations Attribute 140
4.7.16.1 The element_value structure 142
4.7.17 The RuntimeInvisibleAnnotations Attribute 145
4.7.18 The RuntimeVisibleParameterAnnotations Attribute 146
4.7.19 The RuntimeInvisibleParameterAnnotations Attribute 147
4.7.20 The RuntimeVisibleTypeAnnotations Attribute 149
4.7.20.1 The target_info union 155
4.7.20.2 The type_path structure 159
4.7.21 The RuntimeInvisibleTypeAnnotations Attribute 163
4.7.22 The AnnotationDefault Attribute 164
4.7.23 The BootstrapMethods Attribute 165
4.7.24 The MethodParameters Attribute 167
4.7.25 The Module Attribute 169
4.7.26 The ModulePackages Attribute 176
4.7.27 The ModuleMainClass Attribute 177
4.7.28 The NestHost Attribute 178
4.7.29 The NestMembers Attribute 178
The Java® Virtual Machine Specification
vi
4.8 Format Checking 180
4.9 Constraints on Java Virtual Machine Code 180
4.9.1 Static Constraints 181
4.9.2 Structural Constraints 184
4.10 Verification of class Files 188
4.10.1 Verification by Type Checking 189
4.10.1.1 Accessors for Java Virtual Machine Artifacts 192
4.10.1.2 Verification Type System 196
4.10.1.3 Instruction Representation 200
4.10.1.4 Stack Map Frames and Type Transitions 202
4.10.1.5 Type Checking Abstract and Native Methods 207
4.10.1.6 Type Checking Methods with Code 210
4.10.1.7 Type Checking Load and Store Instructions 219
4.10.1.8 Type Checking for protected Members 221
4.10.1.9 Type Checking Instructions 224
4.10.2 Verification by Type Inference 343
4.10.2.1 The Process of Verification by Type Inference 343
4.10.2.2 The Bytecode Verifier 343
4.10.2.3 Values of Types long and double 347
4.10.2.4 Instance Initialization Methods and Newly Created
Objects 347
4.10.2.5 Exceptions and finally 349
4.11 Limitations of the Java Virtual Machine 351
5 Loading, Linking, and Initializing 353
5.1 The Run-Time Constant Pool 353
5.2 Java Virtual Machine Startup 356
5.3 Creation and Loading 357
5.3.1 Loading Using the Bootstrap Class Loader 359
5.3.2 Loading Using a User-defined Class Loader 359
5.3.3 Creating Array Classes 360
5.3.4 Loading Constraints 361
5.3.5 Deriving a Class from a class File Representation 362
5.3.6 Modules and Layers 364
5.4 Linking 366
5.4.1 Verification 367
5.4.2 Preparation 367
5.4.3 Resolution 368
5.4.3.1 Class and Interface Resolution 370
5.4.3.2 Field Resolution 371
5.4.3.3 Method Resolution 372
5.4.3.4 Interface Method Resolution 374
5.4.3.5 Method Type and Method Handle Resolution 375
5.4.3.6 Dynamically-Computed Constant and Call Site
Resolution 379
5.4.4 Access Control 384
5.4.5 Method Overriding 386
The Java® Virtual Machine Specification
vii
5.4.6 Method Selection 387
5.5 Initialization 387
5.6 Binding Native Method Implementations 390
5.7 Java Virtual Machine Exit 391
6 The Java Virtual Machine Instruction Set 393
6.1 Assumptions: The Meaning of "Must" 393
6.2 Reserved Opcodes 394
6.3 Virtual Machine Errors 394
6.4 Format of Instruction Descriptions 395
mnemonic 396
6.5 Instructions 398
aaload 399
aastore 400
aconst_null 402
aload 403
aload_<n> 404
anewarray 405
areturn 406
arraylength 407
astore 408
astore_<n> 409
athrow 410
baload 412
bastore 413
bipush 414
caload 415
castore 416
checkcast 417
d2f 419
d2i 420
d2l 421
dadd 422
daload 424
dastore 425
dcmp<op> 426
dconst_<d> 428
ddiv 429
dload 431
dload_<n> 432
dmul 433
dneg 435
drem 436
dreturn 438
dstore 439
dstore_<n> 440
dsub 441
The Java® Virtual Machine Specification
viii
dup 442
dup_x1 443
dup_x2 444
dup2 445
dup2_x1 446
dup2_x2 447
f2d 449
f2i 450
f2l 451
fadd 452
faload 454
fastore 455
fcmp<op> 456
fconst_<f> 458
fdiv 459
fload 461
fload_<n> 462
fmul 463
fneg 465
frem 466
freturn 468
fstore 469
fstore_<n> 470
fsub 471
getfield 472
getstatic 473
goto 475
goto_w 476
i2b 477
i2c 478
i2d 479
i2f 480
i2l 481
i2s 482
iadd 483
iaload 484
iand 485
iastore 486
iconst_<i> 487
idiv 488
if_acmp<cond> 489
if_icmp<cond> 490
if<cond> 492
ifnonnull 494
ifnull 495
iinc 496
iload 497
iload_<n> 498
The Java® Virtual Machine Specification
ix
imul 499
ineg 500
instanceof 501
invokedynamic 503
invokeinterface 505
invokespecial 509
invokestatic 513
invokevirtual 516
ior 523
irem 524
ireturn 525
ishl 527
ishr 528
istore 529
istore_<n> 530
isub 531
iushr 532
ixor 533
jsr 534
jsr_w 535
l2d 536
l2f 537
l2i 538
ladd 539
laload 540
land 541
lastore 542
lcmp 543
lconst_<l> 544
ldc 545
ldc_w 547
ldc2_w 549
ldiv 551
lload 552
lload_<n> 553
lmul 554
lneg 555
lookupswitch 556
lor 558
lrem 559
lreturn 560
lshl 561
lshr 562
lstore 563
lstore_<n> 564
lsub 565
lushr 566
lxor 567
The Java® Virtual Machine Specification
x
monitorenter 568
monitorexit 570
multianewarray 572
new 574
newarray 576
nop 578
pop 579
pop2 580
putfield 581
putstatic 583
ret 585
return 586
saload 587
sastore 588
sipush 589
swap 590
tableswitch 591
wide 593
7 Opcode Mnemonics by Opcode 595
A Limited License Grant 599

标签: JVM

实例下载地址

JVM白皮书.pdf

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警