class文件的版本号由两个u2组成(u2 minor_version; u2 major_version;),分别表示的是minor_version(副版本号)、major_version (主版本号),我们常说的JDK1.8、Java9等说的就是主版本号,如上图中的TestHelloWorld.class的版本号0x34即JDK1.8。
Java版本对应表:
| JDK版本 | 十进制 | 十六进制 | 发布时间 |
|---|---|---|---|
| JDK1.1 | 45 | 2D | 1996-05 |
| JDK1.2 | 46 | 2E | 1998-12 |
| JDK1.3 | 47 | 2F | 2000-05 |
| JDK1.4 | 48 | 30 | 2002-02 |
| JDK1.5 | 49 | 31 | 2004-09 |
| JDK1.6 | 50 | 32 | 2006-12 |
| JDK1.7 | 51 | 33 | 2011-07 |
| JDK1.8 | 52 | 34 | 2014-03 |
| Java9 | 53 | 35 | 2017-09 |
| Java10 | 54 | 36 | 2018-03 |
| Java11 | 55 | 37 | 2018-09 |
| Java12 | 56 | 38 | 2019-03 |
| Java13 | 57 | 39 | 2019-09 |
| Java14 | 58 | 3A | 2020-03 |
| Java15 | 59 | 3B | 2020-09 |
