熟悉你所不熟悉的JDK JVM

Java JDK

Java JDK是什么 Oracle官网

The JDK is a development environment for building applications, applets, and components using the Java programming language.
The JDK includes tools useful for developing and testing programs written in the Java programming language and running on the Java platform.

翻译

JDK是使用Java编程语言构建应用程序,小程序和组件的开发环境。
JDK包括用于开发和测试以Java编程语言编写并在Java平台上运行的程序的工具。

Java JDK历史版本和特性


  • 1996年 SUN JDK 1.0 Classic VM
    • 纯解释运行,使用外挂进行JIT
  • 1997年 JDK1.1 发布
    • AWT、内部类、JDBC、RMI、反射
  • 1998年 JDK1.2 Solaris Exact VM
    • JIT 解释器混合
    • Accurate Memory Management 精确内存管理,数据类型敏感
    • 提升的GC性能
    • Java 2J2SE J2EE J2ME
    • Swing Collections
  • 2000年 JDK 1.3 Hotspot (默认虚拟机)发布
    • JavaSound
  • 2002年 JDK 1.4 Classic VM退出历史舞台
    • Assert
    • 正则表达式
    • NIO
    • IPV6
    • 日志API
    • 加密类库
  • 2004年发布 JDK1.5 即 JDK5 、J2SE 5 、Java 5
    • 泛型
    • 注解
    • 装箱
    • 枚举
    • 可变长的参数
    • Foreach循环
  • 2006年 JDK1.6 JDK6
    • 脚本语言支持
    • Java编译器 API
    • JDBC 4.0
  • 2011年 JDK7发布
    • 延误项目推出到JDK8
    • G1
    • 动态语言增强
    • 64位系统中的压缩指针
    • NIO 2.0
    • switch语句块中允许以字符串作为分支条件
    • 在创建泛型对象时应用类型推断
    • 在一个语句块中捕获多种异常
    • 支持动态语言
  • 2014年 JDK8发布
    • Lambda表达式
    • 语法增强 Java类型注解
    • Pipelines和Streams
    • Date和Time API
    • Default方法
    • Type注解
    • Nashhorn JavaScript引擎
    • 并发计数器
    • Parallel操作
    • 移除PermGen Error
    • TLS SNI
  • 2017年9月 JDK9(General Availability)
    • 模块化
    • Jigsaw
  • XXXX JDK10 (展望 )
    引用Stephen Colebourne的话

希望Java 10来的能够比Java 9快,而且我希望它的更改能够少一些。在未来的版本中,不只是Java 10,能够有数据类的扩展,包括现在用于POJO / bean的用例,这对Java来说将是非常有用的开发。

JVM规范和Java规范

Java语言规范

  1. 语法
  2. 变量
  3. 类型
  4. 文法

JVM规范

  1. Class文件类型
  2. 运行时数据
  3. 帧栈
  4. 虚拟机的启动
  5. 虚拟机的指令集

Java语言的重点

标识符命名规则

Identifier: IdentifierChars but not a Keyword or BooleanLiteral or NullLiteral.

IdentifierChars: JavaLetter IdentifierChars JavaLetterOrDigit.

JavaLetter: Any Unicode character that is a Java letter (see below).

JavaLetterOrDigit: Any Unicode character that is a Java letter-or-digit (see below).

翻译

标识符:标识符字符,但不是关键字或布尔​​字面值或空字面值。

标识符字符串:Java字母标识符字符Java字母或数字。

Java字母:任何Unicode字符,均为Java字母(见下文)。

Java字母或数字:任何Unicode字符是Java字母或数字(见下文)。

问题:类名或方法名是否可以使用中文呢?

原始数据类型

下划线_是方便观察数字

int

1 12 0372 0xDada_Cafe 2017 0x00_FF_00_FF

long

5l 0523L 0x250000L 2_147_483_648L 0xC0B0L

float

3e1f 6.f .3f 0f 3.14f 6.022137e+23f

double

1e1 2. .3 0.0 3.14 1e-9d 1e137

byte

取值范围:-128~127

short

取值范围为-32768~32767

boolean

true false

char

a b A B

操作运算符

+= -= *= /= &= |= ^= %= <<= >>= >>>=

JVM规范重点

Class 文件格式转载JVM Class图文解析

returnAddres

方法区


参考书籍:

《java虚拟机规范》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值