分 4 个部分来讲
- 特性
- 部分版本的更新
- 应用
- 未来的发展
特性
- 跨平台
write once, run anywhere …
运行一份代码的过程:
编译期 : .java ===> .class
运行时 : .class ===> 机器码. 分为 解释执行、编译执行
解释执行: JVM 里有内置的解释器。 逐条读入,逐条执行。
编译执行: JIT 编译器(Just-In-Time Completion),将热点代码 编译成 机器码。
JDK9 时,引入 AOT 编译方式(Ahead-Of-Time)
- 垃圾回收机制
Java 与 C++ 之间有一堵由 内存动态分配 和 垃圾收集技术 所围成的“高墙”,
墙外面的人想进去,墙里面的人却想出来。
部分版本的更新
1996年, Sun 推出 Java 语言。
2009年, 甲骨文公司收购 sun 公司。
JDK5 : 自动装箱、泛型、动态注解、枚举、可变长参数、遍历循环。。。
JDK7 : try-with-resources
JDK8 : LST , 引入函数式编程; Lambda 表达式;
接口中可以有默认(default)的方法实现; 对 HashMap 做了较大优化
JDK9 : 接口中的方法可以定义成 private;
String 类作了较大改动(char[] --> byte[] + coder)
JDK11 : 继 JDK8 后的一个 LST 版本
应用
服务端开发
Android 开发
大数据
未来的发展
模块化。
解决应用系统与应用平台越来越复杂、庞大的一种手段。混合语言。
每个应用层都使用不同的编程语言来编写,发挥他们的各自优点。多核并行。
软件开发越来越关注并行编程的领域。丰富的语法。
JDK5 进行了一次较大的补充。 面向函数方式的编程可能会成为主流。。。
一点感悟。。。
学习一门技术,那些细节问题固然重要,但更重要的是他背后的思想,站在更高层面上看待问题,理解问题,学到的可能会更多,更有普适性。。。