分 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 版本

应用

  1. 服务端开发

  2. Android 开发

  3. 大数据

未来的发展

  1. 模块化。
    解决应用系统与应用平台越来越复杂、庞大的一种手段。

  2. 混合语言。
    每个应用层都使用不同的编程语言来编写,发挥他们的各自优点。

  3. 多核并行。
    软件开发越来越关注并行编程的领域。

  4. 丰富的语法。
    JDK5 进行了一次较大的补充。 面向函数方式的编程可能会成为主流。。。

一点感悟。。。

学习一门技术,那些细节问题固然重要,但更重要的是他背后的思想,站在更高层面上看待问题,理解问题,学到的可能会更多,更有普适性。。。