一 语言基础
1 基础Java语言。面向对象的语言,有常见语言的共同特征,包括基本的语法要求,有变量,语句,数组,数据结构(容器,哈希等等)等语言惯用的关键字、内置类型等。
此外,Java也进一步封装了IO流,网络流等。
2 Java是面向对象的语言,支持面向对象的一般特性,包括封装、继承、多态等,有类和对象的概念,所有的变量也属于类类型,是纯粹的面向对象语言。
3 Java语言的高级特性:反射,序列化,本地接口JNI,垃圾回收等。发展过程中也在不断借鉴吸收各种语言的好特性,比如lamda表达式等。
4 Java语言支持跨平台特性,代码编译成为中间码,一般为class文件,由虚拟机解释执行。只要平台上装有Java虚拟机,就可以运行Java程序。
Hotspot是一种Java虚拟机的实现,关注热点代码。Java虚拟机解释字节码不是绝对的,为了高效率,有的平台实现完全可以进一步直接转换为机器码,比如JIT。
5 除了以上语言本身相关的特性外,还有外围工具的支持,包括编译器,打包工具,工程分析工具等。
6 给定语法规则,构建基础类库,推出开发JDK。利用JDK开发Java应用,按Java语法规则编译为字节码,交由Java虚拟机构建的JRE,实现跨平台运行。
这一整套流程规则,实现了Java语言家族的基础。
二 语言平台化,平台语言化
7 随着语言的成熟、流行,进一步的推动语言快速发展和广泛渗透到各个领域。这就在一定程度上,促进了语言平台化。
通过整合各种应用场景下所需的一些公用特性,比如分布式、事务、远程交互、数据库等,以及促进语言更好的使用、更规范的开发、具备更先进的理念,J2EE应用而生。
J2EE包含了很多组件和特性,大大简化了重复开发工作,根据场景贴合度,有J2SE、J2ME可供选择,满足不同层次的需求。这进一步促进了平台语言化。
J2EE整合了JNDI/EJB/JPA/JTA/JMS/RMI/RMI-IIOP/JDBC/XML等,UI层提供AWT/SWING,具体可参考官方架构图。
8 Java的五大构件:applet,Javabean,servlet,ejb,应用客户端。
三 与业务深度融合
9 在Web开发方向,Java推出了servlet+jsp+ejb的方案。
早期流行 struts+spring+hibernate的方案,属于MVC框架思想。
10 基于spring技术,扩展出springmvc、springboot、springcloud等框架,面向特定领域的企业级开发。
基于这些框架,大大降低了开发复杂度,提高了效率和稳定性。目前较为流行这套框架。
11 从单体应用到MVC三层架构到SOA架构到微服务架构,Java的框架也在跟随发展趋势和大浪,不断前进。
大数据、云计算领域,Java也贡献了众多知名的顶级组件和框架,为开发者带来便利和强大基础的同时,也在不断增强开发者的信心和力量。
总的来讲,还是天时地利人和,相互促进,单纯技术往往并不是唯一决定性因素,有时甚至都算不上主要因素。