J2ME J2SE J2EE,j2mej2sej2ee
J2ME J2SE J2EE,j2mej2sej2ee
JAVA技术体系
Sun官方定义的Java技术体系包括以下几个组成部分:
①Java程序设计语言
②各种硬件平台上的Java虚拟机
③Class文件格式
④Java API类库
⑤来着商业机构和开源社区的第三方Java类库
Java2平台包括:标准版(J2SE)、企业版(J2EE)和微缩版(J2ME)三个版本.
标准版(J2SE)
J2SE是Java 2 standard edition是Java2的标准版,主要用于桌面应用软件的编程。 Standard Edition(标准版) J2SE 包含那些构成Java语言核心的类。比如:数据库连接、接口定义、输入/输出、网络编程。
关于J2SE收费的信息:
- 收费方式
java8
Oracle jdk
授权使用BCL协议
具体分个人版本和商业版本两种
商业版本在19年1月停止免费的更新,这之前的更新还是能够免费用,交钱可以继续获得后续的更新
个人版本在20年12月停止免费的更新,这之前的更新还是能够免费用,交钱可以继续获得后续的更新
Open jdk
授权使用GPL协议或BCL协议
根据需求可以选择协议,如果选择BCL协议就跟Oracle版没什么区别了,但不需要收费
没说支持期限
java11
Oracle jdk
授权使用BCL协议
没有个人版商业版一说啦
除非交钱,否则一律不许商用,只能用来写写代码,调调代码,离线做点儿数据
Open jdk
授权使用GPL协议
目前Oracle愿意提供六个月的更新,是否提供更长时间的更新需要走着看
为啥不说java9和10
都不是长期支持版本,说了有啥用
- 两种许可协议有什么不同
简单的说
BCL协议
你不能改JDK,你基于JDK做出的内容是受保护的,同时根据你是个人版还是商业版来决定能否用来商用
GPL协议
开源,JDK随便改,也能随便用,但是如果用基于这个协议的JDK开发出来的内容,也必须是GPL协议的,也就是开源的
- 解决方案
java8
a 交钱
b 用旧版本,会有安全隐患(很多公司的选择吧,做好数据备份就不怕被黑)
c 换成OpenJDK(也是不错的选择,反正能选BCL协议)
d 20年12月前用个人版的JDK干商业的事儿(能爽两年,但被查了就很惨,还不如c呢)
java11
a 交钱
b 换成OpenJDK(这下自己的代码理论上全得变开源了,允悲)
其实我们还有其他的解决方案
a 管他收费不收费,黑着用(估计大部分公司都是这样吧,不查爽翻天,一查就允悲)
b 要不咱们换Go
企业版(J2EE)
J2EE即Java2 enterprise edition是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。Enterprise Edition(企业版) J2EE 包含J2SE 中的类,并且还包含用于开发企业级应用的类。比如:EJB、servlet、JSP、XML、事务控制。
JavaEE由4部分组成:
JAX-WS (Java API for XML-Based Web Services),
JAXB (Java Architecture for XML Binding)
JAF (the JavaBeans Activation Framework)
Common Annotations.
但是这个特性和JavaSE关系不大。并且JavaEE被维护在Github(https://github.com/javaee)中,
版本同步造成维护困难。最后,JavaEE可以单独引用,maven中心仓库也提供了JavaEE(http://mvnrepository.com/artifact/javax/javaee-api/8.0),
所以没必要把JavaEE包含到JavaSE中。
注:JDK11中已经把J2EE删除了。
J2EE的13个技术规范:
1、JDBC(Java Database Connectivity) java数据库连接
①为Java开发人员提供了一个行业标准API,可以在Java应用于关系数据库之间建立起独立于数据库的连接,API提供了数据库的调用层接口
②定义了连接数据库的四种不同驱动类型的规范。
2、JNDI(Java Naming and Directory Interface)Java命名和目录接口
①一个Java应用程序设计接口(API)
②为开发人员提供了查找和访问各种命名和目录服务的通用、统一方式。
③构建在NDS,LDAP等服务之上。
3、Servlets
Servlets是Java类,使用基于HTTP协议的请求/响应模型,同Web客户层进行交互。
HTTP Servelts:
①由容器管理
②可产生动态内容
③能在本地Session中储存客户数据
4、JSP(Java Server Page)Java服务器端页面
①是Servlet技术的发展和自然扩展,将转换成Servlet
②根据客户端请求创建动态Web页面的文本文件
③是J2EE中的“视图”组件
5、EJB(Enterprise javabean)企业级JavaBean
①EJB是实现分布式业务逻辑的Java组件
②“企业”意味着应用的扩展性、可用性、可靠性、安全性、事务性和分布性
③为客户提供可分布和可部署的业务逻辑服务
④拥有定义良好的接口
⑤在应用服务器之间可重用
⑥在提供管理和控制服务的容器中执行。
6、RMI(Remote Method Invocation)远程方法调用
①RMI是一种基于java的分布式编程模型,允许对象使用stub(桩)和skeleton(骨骼)调用远程的对象
②RMI使用序列化在两个对象间通过值传输数据
7、JMS(Java Messaging Service)
①JMS是Java API,提供了一种通用的方式来创建、发送、接受和读取企业消息通信系统的消息。
②该接口支持点对点模型、发布/订阅模型、保证消息分发、事务会话
8、JTA(Java Transaction Architecture)Java事务框架
JTA被用于与事务服务进行通信,为启动事务,连接现有的事务,提交事务和撤销 事务提供标准的Java API。
9、JTS(Java Transaction Server)Java事务服务
JTS规定了事务管理器的实现方式,该事务管理器是在高层支持JTA规范,为应用服务器、资源管理器、独立的应用及通信资源提供了事务服务。
10、JavaMail(Java邮件)
JavaMail是用于存放邮件服务的接口,提供了一套邮件服务器的抽象类。
11、JAF(JavaBean Activation Framework)JavaBean服务框架
JavaMail利用JAF来处理不同编码的邮件链接。
12、IDL(Interface Description Language)接口描述语言
在Java IDL的支持下,可以将Java和CORBA集成在一起,创建Java对象并使之可在CORBA ORB中使用。
13、XML(eXtendsible Markup Language)可扩展标记语言
XML是一种可以用来规定其他标记语言的语言,它被用来在不同的商务过程中共享数据,XML的发展和Java是相互独立的。具有平台独立性
微缩版(J2ME)
J2ME即Java 2 Micro Edition是Java的微型版,主要应用于嵌入式系统开发,如手机和PDA的编程。Micro Edition(微缩版) J2ME 包含J2SE中一部分类,用于消费类电子产品的软件开发。比如:呼机、智能卡、手机、PDA、机顶盒。
Android是操作系统,Google在制定标准。
J2ME是应用程序框架,Sun在制定标准,目前Sun已经被Oracle收购了。
Android上有支持J2ME的程序,可以运行J2ME的jar的
参考资料:
https://blog.csdn.net/cowcomic/article/details/82922933
https://blog.csdn.net/qq_26545305/article/details/53409485
相关文章
- 暂无相关文章
用户点评