Java学习——传说中的13个规范

早就听说J2EE有十三个规范,可是看完视频我都没有发现有什么规范,这就让我纳闷了,都说学习java就是学习十三个规范,可是它到底是什么呢?

原来十三个规范就是十三个API文档,视频里讲到的都是属于API文档的知识。那么,让我们一起来了解一下这传说中的十三个规范吧。

  • 1.JDBC(Java Database Connectivity):

用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。
个人理解:跟微软的ODBC很像,应该说是ODBC和ADO的结合,创建连接和发送SQL只用JDBC一个就行了,而ODBC只是创建一个连接,还需要用ADO来进行数据操作。ODBC把简单功能跟高级功能放到了一起,相对来说比较难学,而JDBC尽量保证简单功能的简便性,同时又可以在需要的时候使用高级功能。

JDBC是Java应用程序与各种不同数据库之间进行对话的方法的机制.简单地说,它做了三件事:与数据库建立连接–发送操作数据库的语句–处理结果.

  • 2.JNDI(Java Name and Directory Interface):

JNDI是一组在Java应用中访问命名和目录服务的API.(命名服务将名称和对象联系起来,我们即可用名称访问对象.JNDI允许把名称同Java对象或资源关联起来,建立逻辑关联,而不必知道对象或资源的物理ID.)
个人理解: JNDI是为了对高级网络应用开发中使用的目录基础结构进行访问。这个目录其实是一个特殊的数据库,提供了对存储数据的快速访问,不象传统的目录服务访问方式那样必须提供不同的API接口去访问不同的目录服务(如:LDAP,NIS,ADS等),它统一了不同类型目录访问的接口。JDNI与JDBC都构建在抽象层上。

它提供了标准的独立于命名系统的API,这些API构建在命名系统之上.这一层有助于将应用与实际数据源分离,因此不管是访问的LDAP,RMI还是DNS.也就是说,JNDI独立于目录服务的具体实现,只要有目录的服务提供接口或驱动,就可以使用目录.

  • 3.EJB(Enterprise JavaBean):

J在J2EE中,这个运行在一个独立的服务器上,并封装了业务逻辑的组件就是EJB组件。其实就是把原来放到客户端实现的代码放到服务器端,并依靠RMI进行通信。

Javabean的任务是:一次性编写,任何地方执行,任何地方重用。Javabean分为会话Bean(无会话状态的Bean,有会话状态的Bean)、实体Bean、消息驱动Bean。

关于实体Bean,我感觉很像三层里面的DAL+Entity。只不过,在这里,Bean可以由容器实现,也可以由Bean自己实现。由容器实现,在使用过程中,感觉很像为某个空间设置数据源,只需要通过自己选择一下,语句就可以出来。而有Bean自己控制的Bean,感觉就很像三层里面的DAL+Entiry了。

会话Bean,可以作为三层架构中的业务逻辑层出现。而消息驱动Bean,更多的是用在了JMS(Java massage Service)中。

  • 4.RMI(Remote Method Invoke):

正如其名字所表示的那样,RMI协议调用远程对象上方法。它使用了序列化方式在客户端和服务器端传递数据。RMI是一种被EJB使用的更底层的协议。

**个人理解:**RMI是非常重要的底层技术,是分布式的基础所在,刚刚提到的EJB就是建立在RMI的基础之上的。相比Web Service这样重量级的组件来说,RMI比较简单,更适合一些小型应用的使用。

  • 5.Java IDL/CORBA:

Java接口定义语言/公用对象请求代理程序体系结构在JavaIDL的支持下,开发人员可以将Java和CORBA集成在一起。

个人理解:他们可以创建Java对象并使之可在CORBA ORB中展开,或者他们还可以创建Java类并作为和其它ORB一起展开的CORBA对象的客户。后一种方法提供了另外一种途径,通过它Java可以被用于将新的应用和旧的系统相集成。

CORBA是面向对象标准的第一步,有了这个标准,软件的实现与工作环境对用户和开发者不再重要,可以把精力更多地放在本地系统的实现与优化上。

  • 6.JSP(Java Server Pages):

JSP页面=HTML+Java,其根本是一个简化的Servlet设计. 服务器在页面被客户端请求后,对这些Java代码进行处理,然后将执行结果连同原HTML代码生成的新HTML页面返回给客户端浏览器
个人理解:JSP跟ASP很像,ASP是在HTML的基础上加入了.Net代码,而JSP是在HTML的基础上加入了Java代码,它们都是动态网页,而JSP最大的优势就是跨平台,不但可以在Windows平台运行,还可以在Linux或者其他操作系统上运行。

  • 7.Java Servlet:

Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层。

Servlet是位 于Web 服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机。

个人理解:Servlets提供的功能大部分JSP相同,它采用的是一个有点不同的方法。
JSP中大部分是HTML代码,其中只有少量的Java代码,而servlets则相反,它完全使用Java编写,并且可以产生HTML代码。JSP并没有增加任何本质上不能用Servlet实现的功能。但是,在JSP中编写静态HTML更加方便,不必再用println语句来输出每一行HTML代码。
更重要的是,借助内容和外观的分离,页面制作中不同性质的任务可以方便地分开。Servlet跟微软的一般处理程序很像。

  • 8.XML(Extensible Markup Language):

XML是一种可以用来定义其它标记语言的语言。它被用来在不同的商务过程中共享数据。XML的发展和Java是相互独立的,但是,它和Java具有的相同目标正是平台独立性。通过将Java和XML的组合,您可以得到一个完美的具有平 台独立性的解决方案。
个人理解:XML是一个用来定义其它标记语言的的语言。它可被用作商业之间的数据共享。XML的发展和Java是相互独立的。不过,它和Java具有的相同目标就是跨平台。通过将Java与XML结合,我们可以得到一个完全平台无关的解决方案。

9.JMS(Java Message Service):

JMS即Java消息服务(Java Message Service)应用程序接口是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提供支持。

个人理解: 点对点互发,消息广播。还可以这样设置:如果对方没有在线,那么消息会存在服务器,待对方上线后,发送给对方。其实这个自己新增个表,其实也可以实现,但是你不好实现的是优化,如果面对大数据量,你无法保证是否会像你使用JMS那样高效。

  • 10.JTA(Java Transaction Architecture):

Java事务API。允许应用程序执行分布式事务处理——在两个或多个网络计算机资源上访问并且更新数据。JDBC驱动程序的JTA支持极大地增强了数据访问能力。事务最简单最直接的目的就是保证数据的有效性,数据的一致性。
个人理解: JTA事务比JDBC事务更强大。一个JTA事务可以有多个参与者,而一个JDBC事务则被限定在一个单一的数据库连接。

  • 11.JTS(Java Transaction Service):

JTS是CORBA OTS事务监控的基本的实现。JTS规定了事务管理器的实现方式。该事务管理器是在高层支持Java Transaction API (JTA)规范,并且在较底层实现OMG OTSspecification的Java映像。JTS事务管理器为应用服务器、资源管理器、独立的应用以及通信资源管理器提供了事务服务。

  • 12.JavaMail:

JavaMail是用于存取邮件服务器的API,它提供了一套邮件服务器的抽象类。不仅支持SMTP服务器,也支持IMAP服务器。

  • 13.JAF(JavaBeans Activation Framework):

JAF是一个专用的数据处理框架,它用于封装数据,并为应用程序提供访问和操作数据的接口.也就是说,JAF让Java程序知道怎么对一个数据源进行查看,编辑,打印等.

JavaMail利用JAF来处理MIME编码的邮件附件。MIME的字节流可以被转换成Java对象,或者转换自Java对象。大多数应用都可以不需要直接使用JAF。

- 总结:

J2EE的基石是EJB,它是Java中的服务器端组件标准。
13个规范解决了背景中提到的问题,好比全世界制造轴承的标准是一样的,只有遵循标准自己生产的轴承才能被全世界使用。那么这些规范之间的关系是什么样的呢,它们到底怎么运转呢?
让我来看下边这张图

这里写图片描述

十三规范让我们见识到了java的强大,不得不说写这些规范还是比较抽象的。我们目前对于J2EE的理解还非常的肤浅,还需要在今后的学习与实践中不断的深入,继续学习。

  • 10
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 14
    评论
好的,我会尽力回答你的问题。针对USB接口程序设计,我们需要先了解一些基础知识: 1. USB是什么? USB(Universal Serial Bus)是一种用于连接计算机与外部设备的串行总线标准,可用于数据传输、充电和供电等多种用途。 2. USB接口类型 USB接口按照接口类型分为USB Type-A、USB Type-B、mini-USB、micro-USB等多种类型。 3. USB接口规范 USB接口规范包括USB1.0、USB2.0、USB3.0等多个版本,每个版本都有自己的传输速度和功能特性。 在了解了上述基础知识后,我们可以开始设计USB接口程序。具体步骤如下: 1. 定义一个接口类Usb,在该类定义一个抽象方法,用于实现数据传输功能。 ```java public interface Usb { void transferData(); } ``` 2. 定义一个USB设备类,该类实现了Usb接口,并实现了接口的抽象方法,用于实现具体的数据传输功能。 ```java public class UsbDevice implements Usb { @Override public void transferData() { System.out.println("USB设备传输数据"); } } ``` 3. 定义一个主机类,该类也实现了Usb接口,但是该类的transferData方法不是实现传输数据的功能,而是调用USB设备类的transferData方法,从而实现数据传输。 ```java public class Host implements Usb { private Usb usbDevice; public Host(Usb usbDevice) { this.usbDevice = usbDevice; } @Override public void transferData() { usbDevice.transferData(); } } ``` 4. 在主函数实例化USB设备类和主机类,并调用主机类的transferData方法,从而实现数据传输。 ```java public static void main(String[] args) { UsbDevice usbDevice = new UsbDevice(); Host host = new Host(usbDevice); host.transferData(); } ``` 这样,我们就完成了一个简单的USB接口程序设计。当然,实际情况,USB接口程序可能会更加复杂,需要考虑更多的因素,例如不同类型的USB接口、不同版本的USB规范等等。同时,我们还需要注意USB接口程序的稳定性和可靠性,以确保程序的正常运行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值