1.5-展望Java技术的未来(笔记)
1. 模块化.
模块化是解决庞大问题的重要途径,在未来的Java平台中,很可能会对模块化提出语法层面上的支持.Sun公司一再提交新的规范请求文档却也一直没有通过.但Sun公司已独立于JCP专家组在OpenJDK里建立一个名为Jigsaw(拼图)的子项目来推动这个规范在Java平台中转变为具体的实现.而IBM公司的OSGI已发布到R5.0版本.可见Java模块化已经是一项无法阻挡的变革潮流.
2. 混合语言.
单一的Java开发已无法满足当前软件的复杂需求,Java平台上的多语言混合编程正成为主流.通过特定语言去解决特定领域的问题是当前软件开发对日趋复杂的项目需求的一个发展方向.
除了催生了大量的新语言,很多有很长历史的程序语言也出现了基于JVM实现的版本.推动JVM从"Java语言的虚拟机"向"多语言的虚拟机"的方向发展.
3. 多核并行.
CPU硬件的发展已经从高频率转向了多核心,随着多核时代的来领,软件开发将越来越注重并行编程的领域.
JDK 1.5加入了java.util.concurrent包,JDK1.7加入java.util.concurrent.forkjoin包.Fork/Join模式是处理并行编程的经典方法.在Java8中提供的Lambda表达式能极大改善当前Java语言不适合函数式编程的现状.目前显卡的算术运算能力,并行能力已远远超过了CPU,Sumatra项目就是为Java提供使用GPU和APU运算能力的工具.以后它将提供Java语言层面的API,或者为Lambda和其他JVM语言提供底层的并行运算支持.在JDK外围,也出现了专为满足并行计算需求的计算框架.如Apache的Hadoop Map/Reduce就是一个简单易懂的并行框架.能运行在上千个商用机器之上,可靠的处理TB级别的数据集.
4. 进一步丰富语法.
Sun(已被Oracle收购)专门为改进Java语法在OpenJDK中建立Coin子项目来统一处理对Java语法的细节修改.除了Coin项目之外,JSR-335中定义的Lambda表达式也将对Java语法和语言习惯产生很大的影响,面向函数式编程很有可能成为主流.
5. 64位VM
Java程序运行在64VM上需要付出较大的额外代价.如消耗更多内存及慢得多运行速度.
但在Java EE方面,企业级应用常常需要超过4GB的内存,对64VM的需求是非常迫切的.由于上述原因.很多企业应用仍采用在虚拟集群方式在32位VM上进行部署.但随着硬件的发展,计算机终究会过渡到64位时代,主流的VM应用也将从32位发展到64位,VM对64位的支持将进一步完善.

浙公网安备 33010602011771号