jvm,java虚拟机,内存机制,线程

jvm,java虚拟机,内存机制,线程

ID:32658065

大小:145.18 KB

页数:26页

时间:2019-02-14

jvm,java虚拟机,内存机制,线程_第1页
jvm,java虚拟机,内存机制,线程_第2页
jvm,java虚拟机,内存机制,线程_第3页
jvm,java虚拟机,内存机制,线程_第4页
jvm,java虚拟机,内存机制,线程_第5页
资源描述:

《jvm,java虚拟机,内存机制,线程》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、JVM的机制学习代码编译为classSunjdk中的javac装载!classClassLoaderlentcompiler执行class-^Servercompiler内存空间方法区,堆,JVM方法栈,木地方法栈,PC奇存器j内存分配SS内〃回收堆上分配栈上分配TLAB分配Copyingark-Sweepark-Compact算法并行回收GC串行GC并行GC内存状态分析代冋收实现GC参数G1新生代可用GC(^_IIVI:KFullGCMinorGC触发机制串行Mark-Swccp-CompactIMrCompact并发Mar

2、k-Sweep交互状态solejstat.jmap,MATJVM标准结构类加载子系统内存空间方法区Java堆本地方法栈A-•垃圾收集器I;/A指令计数器及其他隐含计数器Z--KXI—1/执行引擎<■==>本地方法接口A―本地方法库Java栈Java代码执行机制源码编译机制JVM规范中定义了class文件的格式,JDK在编译java源码时,使用了javac,javac编译的步骤:1.分析和输入到符号表(ParseAndEnter)Parse做的是词法和语法的分析。词法分析:将代码字符串转变为token序列语法分析:将根据语法由

3、token序列生成抽象语法树Enter将符号输入到符号表,通常包括确定类的超类和接口,添加默认构造器等。2.注解处理3.语义分析和生成class文件通常生成class文件不知包括字节码,一般包扌舌结构信息,元数据,方法信息。下面是一个例子:Compiledfrom"Foo.java"〃类/继承的超类/实现的接口的声明信息publicclassFooextendsjava」ang.ObjectSourceFile:"Foo.java"//class文件格式版本号,majorversion50表示jdk6,49为jdk5只有高版本

4、能执行低版本的class文件minorversion:0majorversion:50〃常量池,存放了所有的Field名称,方法名,方法签名,类型名,代码及class文件中的常量值Constantpool:const#1=Methodconst#2=Fieldconst#3=classconst#4=Stringconst#5=Method#7.#27;//java/lang/Object.HM:()V#6.#2&//Foo.count:I#29;//java/lang/Exception#30;//countov

5、erflow#3.#31;//java/lang/Exception.Mu:(Ljava/lang/String;)Vconst#6=classconst#7=classconst#8=Ascizconst#9二Ascizconst#10=Ascizconst#11=int1000;const#12=Ascizconst#13=Ascizconst#14=Ascizconst#15=Ascizconst#16=Ascizconst#17=Ascizconst#18=Ascizconst#19二Ascizconst#

6、20=Ascizconst#21=Ascizconst#22=Ascizconst#23=Ascizconst#24=Ascizconst#25=Ascizconst#26=Asciz#32;//Foo#33;//java/lang/ObjectMAX_COUNT;I;ConstantValue;count;;()v;Code;LineNumberTable;LocalVariableTable;this;LFoo;;bar;()1;StackMapTable;Exceptions;;SourceF

7、ile;Foo.java;const#27=NameAndType#13:#14;//nM:()Vconst#28=NameAndType#12:#9;//count:Iconst#29=Ascizconst#30=Ascizjava/lang/Exception;countoverflow;const#31=NameAndType#13:#34;//Hn:(Ljava/lang/String;)Vconst#32=Ascizconst#33=Ascizconst#34=AscizFoo;java/la

8、ng/Object;(Ljava/lang/String;)V;〃将符号输入到符号表时生成的默认构造器方法publicFoo();Signature:()VLineNumberTable:line1:0LocalVariableTable:StartLengthSlotNam

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。