API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件的以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
运行Java程序时,虚拟机装载程序的class文件所使用的Java API class文件。所有被装载的class文件(包括从应用程序中和从Java API中提取的)和所有已经装载的动态库(包含本地方法)共同组成了在Java虚拟机上运行的整个程序。 在一个平台能够支持Java程序以前,必须在这个特定平台上明确地实现API的功能。为访问主机上的本地资源,Java API调用了本地方法。由于Java API class文件调用了本地方法,Java程序就不需要再调用它们了。通过这种方法,Java API class文件为底层主机提供了具有平台无关性、标准接口的Java程序。对Java程序而言,无论平台内部如何,Java API都会有同样的表现和可预测的行为。正是由于在每个特定的主机平台上明确地实现了Java虚拟机和Java API,因此,Java程序自身就能够成为具有平台无关性的程序。
Java API在Java安全性模型方面也有贡献。当Java API的方法进行任何有潜在危险的操作(比如进行本地磁盘写操作)之前,都会通过查询访问控制器来检验是否得到了授权。访问控制器是一个类,该类用来执行栈检验,已决定是否允许某种操作。
从概念上来看,是很简单的,但很多人还是不怎么理解,这里举个简单的例子:Scanner类是获取键盘输入的数据的,大部分人都有接触过,但是怎么用呢?
用法:Scanner m =new Scanner(System.in);
int num=m.nextInt();
看到这个,想必我们应该都不陌生;但是它为什么这样用?System.in又是什么?大多数人还是会有各种疑问,其实我们不需要理解,因为是API规定的,我们只需要记住它即可。
Java的API文档是SDK说明文件的一部分,是Java的API文档是SDK说明文件的一部分,是告诉你具体内容使用方法的文档,是Java程序开发的最好帮手。当你从Sun Microsystems公司的网站下载SDK参考文件“j2sdkˉ142ˉdoc.zip”并解压缩后,可以在名为“j2sdkˉ142ˉdoc”的文件夹下看到目录结构,其中的文本都是HTML格式文件,提供了所有有关API类库的信息及链接。
API文档内容主要包括:类层次结构、类及其一般目的的说明、成员变量表、构造函数表、方法表、变量详细说明表及每一个变量使用目的的详细描述、构造方法的详细说明及进一步的描述等等。为了方便使用,我们通常将C:\j2sdkˉ142ˉdoc\docs\api\index.html放置到浏览器的收藏夹中,以供随时查阅。
SDK给出了一套标准的类库,这些类为执行大部分的编程任务提供了方法和接口。类库被组织成许多包,每个包又包含一些子包和多个类。形成树型结构的类层次,其中包括核心包java、扩展包javax和org等。下面简单介绍一些Java API中重要的常见包及其类:
1)java.lang———这个包包含了一些形成语言核心的类,提供了类似Character、Integer和Double这样的封装类。它还提供了系统标准类,如String和StringBuffer。Java编辑器总是自动装载这个包。因而一般不必显示导入java.lang中的任何类。
2)java.applet———这个包提供了创建Java applet的途径,Java applet运行在Web浏览器下,通常通过Internet下载。
3)java.awt———是由许多组成Java的抽象视窗工具(awt)的类所组成的包,它提供了基于类的图形用户界面,可以为Java applet和应用程序编程提供视窗、按钮、对话框及其他控件。
4)java.net———这个包提供了网络、套接字处理器和Internet实用工具类。
5)java.io———这个包中的类提供了输入输出服务,用于读出和写入文件数据,访问键盘输入和打印输出。
6)java.util———这个包包含为任务设置的实用程序类和集合框架类,每一个Java应用程序和Java applet可能至少会用到这个包中的一个类。另外它还提供了Collection接口和它的实现容器类,如List和Set。
7)java.rmi———远程方法启用包,在这个包中的类提供了通过远程接口控制的分布式代码的支持。通过该包中的类,可以创建Java应用程序,使它的不同部分在不同的系统中一起运行。
8)java.sql———这个包提供了结构化查询语言数据库字段类型和方法的实现。根据系统的不同,这个包的类可能会通过一个特定的数据库系统实现,或者缺省时通过ODBC(开放数据库连接)标准的直接映射实现。
看API文档其实不难,关键是要有自信,还有就是目的要明确,再者就是看他给的例子;最重要的是注意积累自己的专业词汇。
不建议你去逐字逐句的看API及源码,如果你的IDE为Eclipse或MyEclipse,那么在你的日常开发中,可以用到哪就看到哪(ctrl+鼠标左键点击你想看的),这样你最常用的API源码就随着时间的积累而积累,而不用专门的去看,并且这样有较好的方向性,在用到的时候看,学习效率也较高。如果说通读源码的话,首先周期是相当长的,而且能做到的人少之又少。
如果从事Java EE开发时,要使用到一些开源框架的话,建议也读一下这些框架的源码,这样对你的设计模式的提升和安全性等方面知识的理解也是有好处的。
JAVA介入的领域很广泛,不同的领域有不同的API,没有人熟悉所有的API,对一般人而言只是熟悉工作中要用到的API。如果你做界面开发,那么你需要学习Swing/AWT/SWT等API;如果你进行网络游戏开发,你需要深入了解网络API/多媒体API/2D3D等;如果你做WEB开发,就需要熟悉Servlet等API啦。总之,需要根据工作的需要或你的兴趣发展方向去选择学习特定的API。 |
|