1 / 17

深入浅出 Java 虚拟机 —— 入门 第 2 讲 Java 规范和 JVM 规范简述 讲师:葛一鸣

深入浅出 Java 虚拟机 —— 入门 第 2 讲 Java 规范和 JVM 规范简述 讲师:葛一鸣 微博: http://weibo.com/u/5236909237 QQ 群: 397196583. 深入浅出 JVM( 入门 ) - Java 规范和 JVM 规范简述. 学习目标 了解 Java 语言规范的基本内容 了解 JVM 规范的基本内容. 深入浅出 JVM( 入门 ) - Java 规范和 JVM 规范简述. Java 语言规范 语法 变量 类型 文法 JVM 规范

nash-smith
Download Presentation

深入浅出 Java 虚拟机 —— 入门 第 2 讲 Java 规范和 JVM 规范简述 讲师:葛一鸣

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 深入浅出Java虚拟机——入门 第2讲 Java规范和JVM规范简述 讲师:葛一鸣 微博:http://weibo.com/u/5236909237 QQ群:397196583

  2. 深入浅出JVM(入门) - Java规范和JVM规范简述 • 学习目标 • 了解Java语言规范的基本内容 • 了解JVM规范的基本内容

  3. 深入浅出JVM(入门) - Java规范和JVM规范简述 • Java语言规范 • 语法 • 变量 • 类型 • 文法 • JVM规范 • Class文件类型 • 运行时数据 • 帧栈 • 虚拟机的启动 • 虚拟机的指令集

  4. 深入浅出JVM(入门) - Java规范和JVM规范简述 • 语法定义 • IfThenStatement:    if ( Expression ) Statement • ArgumentList: Argument ArgumentList, Argument if(true){do sth;} add(a,b,c,d);

  5. 深入浅出JVM(入门) - Java规范和JVM规范简述 • 词法结构 • \u + 4个16进制数字 表示UTF-16 • 行终结符: CR, or LF, or CR LF. • 空白符 • 空格 tab \t 换页 \f 行终结符 • 注释 • 标示符 • 关键字 Identifier:IdentifierCharsbut not a Keyword orBooleanLiteralorNullLiteralIdentifierChars:JavaLetterIdentifierCharsJavaLetterOrDigitJavaLetter:any Unicode character that is a Java letter (see below)JavaLetterOrDigit:any Unicode character that is a Java letter-or-digit (see below)

  6. 深入浅出JVM(入门) - Java规范和JVM规范简述 • 词法结构 • \u + 4个16进制数字 表示UTF-16 • 行终结符: CR, or LF, or CR LF. • 空白符 • 空格 tab \t 换页 \f 行终结符 • 注释 • 标示符 • 关键字 Identifier:IdentifierCharsbut not a Keyword orBooleanLiteralorNullLiteralIdentifierChars:JavaLetterIdentifierCharsJavaLetterOrDigitJavaLetter:any Unicode character that is a Java letter (see below)JavaLetterOrDigit:any Unicode character that is a Java letter-or-digit (see below)

  7. 深入浅出JVM(入门) - Java规范和JVM规范简述 public static void 打印() { System.out.println(“这个是中文方法哦!!"); } public static void main(String[] args) { 打印(); }

  8. 深入浅出JVM(入门) - Java规范和JVM规范简述 • 词法结构 • Int • 0 2 0372 0xDada_Cafe 1996 0x00_FF__00_FF • Long • 0l 0777L 0x100000000L 2_147_483_648L 0xC0B0L • Float • 1e1f 2.f .3f 0f 3.14f 6.022137e+23f • Double • 1e1 2. .3 0.0 3.14 1e-9d 1e137 • 操作 • +=  -=  *=  /=  &=  |=  ^=  %=  <<=  >>=  >>>=

  9. 深入浅出JVM(入门) - Java规范和JVM规范简述 • 合法 • 合法 • 合法 • 非法 • 非法 • 合法 • 合法 • 非法 • 合法 • 非法 • 哪些是合法的数字呢? • private int a=0xDada_Cafe; • private float b=0x1.fffffeP+127f; • private float c=1996; • private float d=1996.3; • private int f=9999e2; • private double g=33e2; • private float h=0x1.fffep-12f; • private float i=1.fffep-12f; • private long p=0b1_1_1_0_1; • private long q=0b1_1_1_0_2;

  10. 深入浅出JVM(入门) - Java规范和JVM规范简述 class Value { intval; } class Test { public static void main(String[] args) { int i1 = 3; int i2 = i1; i2 = 4; System.out.print("i1==" + i1); System.out.println(" but i2==" + i2); Value v1 = new Value(); v1.val = 5; Value v2 = v1; v2.val = 6; System.out.print("v1.val==" + v1.val); System.out.println(" and v2.val==" + v2.val); } } i1==3 but i2==4 v1.val==6 and v2.val==6 • 类型和变量 • 元类型 • byteshort int long float char • 变量初始值 • boolean false • char \u0000 • 泛型 i1 i2为不同的变量 v1 v2为引用同一个实例

  11. 深入浅出JVM(入门) - Java规范和JVM规范简述 • Java内存模型 • 类加载链接的过程 • public static final abstract的定义 • 异常 • 数组的使用 • …….

  12. 深入浅出JVM(入门) - Java规范和JVM规范简述 • Java语言规范就介绍到这里,下面来看一下JVM规范吧!

  13. 深入浅出JVM(入门) - Java规范和JVM规范简述 • Java语言规范定义了什么是Java语言 • Java语言和JVM相对独立 • Groovy • Jython • JRuby • Clojure • Scala • JVM主要定义二进制class文件和JVM指令集等

  14. 深入浅出JVM(入门) - Java规范和JVM规范简述 • Class 文件格式 • 数字的内部表示和存储 • Byte  -128 to 127 (-27 to 27 - 1) • returnAddress数据类型定义 • 指向操作码的指针。不对应Java数据类型,不能在运行时修改。Finally实现需要 • invokedynamic jdk7引入,专门针对动态语言 • 定义PC • 堆 • 栈 • 方法区

  15. 深入浅出JVM(入门) - Java规范和JVM规范简述 • VM指令集 • 类型转化 • l2i i2l i2f f2i • 出栈入栈操作 • aloadastoreiloadistore • 运算 • iaddisubfaddfsub • 流程控制 • ifeqifne • 函数调用 • invokevirtualinvokeinterfaceinvokespecialinvokestatic

  16. 深入浅出JVM(入门) - Java规范和JVM规范简述 • JVM需要对Java Library 提供以下支持: • 反射 java.lang.reflect • ClassLoader • 初始化class和interface • 安全相关 java.security • 多线程 • 弱引用

  17. 深入浅出JVM(入门) - Java规范和JVM规范简述 谢谢大家~

More Related