jvm
入门需知
世界上没有完美的程序,但我们并不因此而沮丧,因为写程序本来就是一个不断追求完美的过程
- Java不仅仅是一门编程语言,还是一个由一系列计算机软件和规范形成的技术体系,这个技术体系提供了完整的用于软件开发和跨平台部署的支持环境,并广泛应用于嵌入式系统,移动终端,企业服务器,大型机等各种场合。
- 作为一名Java程序员,编写程序是除了尽情发挥Java的各种优势外,还应该去了解和思考一下Java技术体系中这些技术特性是如何实现的。
Java技术体系
-
sun官方定义组成部分(统称为jdk)
- Java程序设计语言
- Java虚拟机
- class文件格式
- Java api类库
- JavaSE API&java虚拟机统称为jre
- 第三方Java类库
-
Java技术体系可以分为4个平台
- Java card 运行在智能卡
- Java me 运行在移动终端
- java se 桌面级应用
- java ee 多层架构的企业应用
-
Java发展史
- 1991 oak
- 1995 java
- 1996 jdk1.0 java虚拟机,Applet,AWT Javaone
- 1997jdk1.1 jar,jdbc,javabeans,rmi,内部类,反射
- 1998jdk1.2 j2se,j2ee,j2me;ejb,java plugi-in,java-idl,swing;jit;strictfp;collections集合类
- 1999hotspot虚拟机,sunjdk默认虚拟机
- 2000jdk1.3 TimerAPI,jndi,javasound
- 2002jdk1.4 正则表达式,异常链,nio,日志类,xml解析器和xslt转换器
- 2004jdk1.5 自动装箱,泛型,动态注解,枚举,可变长参数,遍历循环;改进了Java的内存模型JMM,提供Java.util.concurrent并发包
- 2006jdk1.6 动态语言支持,编译api和微型http服务器api,这个版本对Java虚拟机内部做了大量改进,包括锁与同步,垃圾收集,类加载等方面的算法。
- 2009jdk1.7 sun被收购;提供新的G1收集器,加强对非Java语言的调用支持,升级类加载架构,对arm指令集架构提供支持
- 2014jdk1.8 lambda表达式,函数式接口,方法引用和构造器调用,streamAPI,接口中的默认方法和静态方法,新时间日期API
-
Java虚拟机发展史
- sun classic/Exact VM
- sun hotspot VM
- BEA JRockit
- Azul VM/BEA Liquid VM
- ApacheHarmony/Google Andriod Davlvik VM
- microsoft jvm
-
java技术的未来
- 模块化
- 混合语言
- 多核并行
- 进一步丰富语法
- 64位虚拟机
-
建议自己编译一套jdk以贴近本质
-
参考书籍
《深入理解Java虚拟机:jvm高级特性与最佳实践》 ——周志明
加油,我的朋友