认识javaEE
JavaEE是sun公司推出的企业级应用程序版本。能够帮助我们开发和部署可移植、健壮、可伸缩且安全的服务器端Java应用程序。
想要完整的认识javaEE,先要认识什么是jdk,什么是javaME, javaSE
1.先说jdk
jdk不分javaME,javaSE,javaEE
jdk从1.5开始改名为Java SE,也就是Java SE 5.0 等于 jdk1.5
而Java8(又称为jdk1.8)是Java语言开发的一个重要版本。Java8是Oracle公司于2014年3月发布,可以看成是自Java5以来最具革命性的版本。(但是本文的重点并不是jdk或者jvm)。
JDK包含的东西:
- Javac - 编译器,将后缀名为.java的源代码转为后缀名为.class的字节码
- Java - 运行工具,运行.class的字节码
- jar - 打包工具,将相关类文件打包成一个文件
- javadoc - 文档生成器,从源码注释中提取文档,注释需符合规范
- jdb debugger - 调试工具
JRE和JDK的区别:
- JRE是Java Runtime Environment的缩写,意思是Java运行环g境
- JRE包括JVM和JAVA核心类库与支持文件。与JDK不同,它不包含开发工具—-编译器、调试器和其它工具。
- JRE用于普通用户运行Java程序
- JDK用于开发者编译,调试Java程序
- JDK包含了JRE
再看jvm:
- (Java 虚拟机)JVM是JRE的一部分,它是一个虚拟出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。JVM有自己完善的硬件架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。
- JVM是Java实现跨平台最核心的部分,所有的Java程序会首先被编译为.class的类文件,JVM的主要工作是解释自己的指令集(即字节码)并映射到本地的CPU的指令集或OS的系统调用。Java面对不同操作系统使用不同的虚拟机,依次实现了跨平台。JVM对上层的Java源文件是不关心的,它关心的只是由源文件生成的类文件。
- 所有的Java程序都需要在JRE下才能运行。只有JVM还不能进行class的执行,因为解释class的时候,JVM需要调用解释所需要的类库lib。JRE里面有两个文件夹bin和lib,这里可以认为bin就是JVM,lib就是JVM所需要的类库,而JVM和lib合起来就称为JRE。
2.javaME, javaSE还有javaEE
网络上普遍认为javaME就是用来开发嵌入式的,javaSE就是用来开发桌面的,javaEE就是用来开发企业端的。
说得更简单点
Java SE 是做电脑上运行的软件。
Java EE 是企业及开发,最多的应该是web开发。
Java ME 是做手机软件的。
JavaSE
Javaseeeme都有什么区别?JavaSE(JavaStandardEdition,Java标准版)是Java技术的核心和基础,是JavaME和JavaEE编程的基础。JavaSE是由SunMicrosystems公司于1995年5月推出的Java程序设计语言和Java平台的总称。用Java实现的HotJava浏览器(支持Javaapplet)显示了Java的魅力:跨平台、动态的Web、Internet计算。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器均支持Javaapplet。
看完概念是不是还有点懵?简单来说JavaSE就是Java的基础知识,包含一些基础语法,工具包和一些简单的封装工具,可以开发桌面、服务器和嵌入式环境中的程序。是学习Java不可缺少且至关重要的一环。
Java EE
JavaEE大家可以将其当做成为一种代码规范,是用来进行企业级开发的,例如封装规则,网站的请求规则等等,方便开发者统一处理,避免企业级开发者出现一个人一个样的问题。
Java ME
这个JavaME一般很少有培训机构去教,因为JavaME主要应用在移动端或者一些小设备上面,但是现在这种设备已经被安卓设备占领了,所以现在学JavaMe也没有什么意义了,大家做个了解就可以了。
3. 对javaEE的思考
Java刚开始的时候,因为各种应用和生态不成熟,很多东西需要有人牵头制定强制规范引导Java的发展,于是Java EE曾经引领了企业级应用的开发。
但随着时代的进步,以及越来越多的公司和组织参与到Java世界,出现了各种各样的Java EE组件的代替者,比如Hibernate、Spring就是其中两个典型。相反,Java官方制定的各种Java EE规范反而不太受欢迎,他们制定了JSF规范,但实际企业开发喜欢用Struts 2、Spring MVC;他们制定了EJB规范,但实际企业开发往往还是喜欢用Spring;他们制定了JPA规范,但实际企业开发往往还是喜欢直接Hibernate、MyBatis。
现代企业级应用常用的各种框架和工具,比如Struts 2、Spring、Hibernate、jBPM、Activiti、Lucene、Hadoop、Drools、CXF等这些大家耳熟能详的组件,全部都不是来自Oracle官方,但是却在企业应用中开发经常用到的。
现在企业里面,真正常用的JavaEE规范有什么?Servlet、JSP、JMS、JNDI。这些技术都只是充当了一个程序的入口而已。
Oracle之所以可能考虑放弃Java EE,正体现了Oracle对丧失Java控制权的无奈。企业的本质是逐利,Oracle每年为制定Java EE规范投入不少人力、财力,但制定的规范最终并没有获得市场的青睐,所以Oracle可能放弃这种吃亏不讨好的事情。
由此可见,oracle上提供的java EE是官方指定的javaEE规范,里面都是符合官方指定的javaEE组件,我们用SSM,SSH开发后台时使用到的只有Servlet、JSP、JMS等少量的java EE规范,没有必要使用orcale提供的java EE版本,直接使用jdk就可以(当然还需要maven等管理第三方的jar包来实现功能)