Java基本介绍
Java ME、Java SE、Java EE(库)
Java库 | 描述 |
---|---|
Java ME(Micro Edition) | 嵌入式系统开发 |
Java SE(Standard Edition) | 标准版(桌面应用开发) |
Java EE(Enterprise Edition) | 企业版(开发企业级分布式的网络程序) |
Java API帮助文档(Application Programming Interface)即应用程序编程接口
Java ME就和Java SE不同,它是一个针对嵌入式设备的“瘦身版”,Java SE的标准库无法在Java ME上使用,Java ME的虚拟机也是“瘦身版”。不幸的是,Java ME从来没有真正流行起来,反而是Android开发成为了移动平台的标准之一,因此,没有特殊需求,不建议学习Java ME
Java SE是整个Java平台的核心,而Java EE是进一步学习Web应用所必须的。Spring等框架都是Java EE开源生态系统的一部分
Java EE是企业版,它只是在Java SE的基础上加上了大量的API和库,以便方便开发Web应用、数据库、消息服务等,Java EE的应用使用的虚拟机和Java SE完全相同
Java EE主要技术
JavaEE 号称有十三种核心技术。它们分别是:JDBC、JNDI、EJB、RMI、Servlet、JSP、XML、JMS、Java IDL、JTS、JTA、JavaMail和JAF
JDBC
Java 数据库连接,(Java Database Connectivity,JDBC)是 Java 语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。
JNDI
Java 命名和目录接口(Java Naming and Directory Interface,JNDI),是 Java 的一个目录服务应用程序界面(API),它提供一个目录系统,并将服务名称与对象关联起来,从而使得开发人员在开发过程中可以使用名称来访问对象。
EJB
企业级 JavaBean(Enterprise JavaBean, EJB)是一个用来构筑企业级应用的服务器端可被管理组件。不过这个东西在 Spring 问世后基本凉凉了,知道是什么就行。
Servlet
Servlet(Server Applet),是用 Java 编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态 Web 内容。
狭义的 Servlet 是指 Java 语言实现的一个接口,广义的 Servlet 是指任何实现了这个 Servlet 接口的类,一般情况下,人们将 Servlet 理解为后者。
JSP
JSP(全称JavaServer Pages)是由 Sun 公司主导创建的一种动态网页技术标准。JSP 部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成 HTML、XML 或其他格式文档的 Web 网页,然后返回给请求者
Java特点
(1)Java是基于JVM虚拟机的跨平台语言,一次编写,到处运行
(2)Java程序易于编写,而且有内置垃圾收集,不必考虑内存管理
(3)Java虚拟机拥有工业级的稳定性和高度优化的性能,且经过了长时期的考验
(4)Java拥有最广泛的开源社区支持,各种高质量组件随时可用。
Java语言常年霸占着三大市场
①互联网和企业应用,这是Java EE的长期优势和市场地位
②大数据平台。主要有Hadoop、Spark、Flink等,都是Java或Scala(一种运行于JVM的编程语言)开发的
③Android移动平台
JAVA执行结构
①创建项目
②编写源程序:以.java为扩展名
③编译:以.class为扩展名
④运行:JDK(Java Development Kit,Java开发工具包)
编写的程序,既是编译型,又是解释型的
Java运行流程
JSR规范、JCP组织
JSR规范(Java Specification Request)
JSR规范:为了保证Java语言的规范性,SUN公司搞了一个JSR规范,凡是想给Java平台加一个功能,比如说访问数据库的功能,先创建一个JSR规范,定义好接口,这样,各个数据库厂商都按照规范写出Java驱动程序,开发者就不用担心自己写的数据库代码在MySQL上能跑,却不能跑在PostgreSQL上
JSR是一系列的规范,从JVM的内存模型到Web程序接口,全部都标准化了
JCP组织(Java Community Process)
JCP组织:负责审核JSR的组织就是JCP
RI参考实现、TCK兼容性测试套件
一个JSR规范发布时,为了让大家有个参考,还要同时发布一个“参考实现”,以及一个“兼容性测试套件”
RI(参考实现):Reference Implementation
TCK(兼容性测试套件):Technology Compatibility Kit
比如:有人提议要搞一个基于Java开发的消息服务器,这个提议很好啊,但是光有提议还不行,得贴出真正能跑的代码,这就是RI。如果有其他人也想开发这样一个消息服务器,如何保证这些消息服务器对开发者来说接口、功能都是相同的?所以还得提供TCK
通常来说,RI只是一个“能跑”的正确的代码,它不追求速度,所以,如果真正要选择一个Java的消息服务器,一般是没人用RI的,大家都会选择一个有竞争力的商用或开源产品