Java API类如何执行此类特定操作?

时间:2012-08-19 06:49:50

标签: java api

我是java的新手,自从我开始学习它以来,我一直想知道:java API的类和包做了许多有用的事情,从创建窗口到写入文件。但是在开始时,API类只使用语言来做任何事情。

我知道使用该语言,您可以将数据存储在变量中,执行逻辑,创建方法,对象和类等等。但是要做所有“好东西”,你可以使用API​​类。但他们怎么能用语言做这么酷的事呢?内置于java的代码是否指定了如何创建窗口或写入文件?如何使用代码将信息输出到外部事物,如电机?

看起来内置的代码无法处理API本身可以完成的事情,但API是用java编写的,因此使用原始语言来完成它所做的事情。

我想我已经阐明了我的观点,但这一切都有用吗?

3 个答案:

答案 0 :(得分:3)

如果你检查各种java类的源代码(例如在docjar上),你最终会注意到一些以native开头并且没有提供实现的方法声明(检查Thread类)。这就是控制权传递给某些底层平台特定代码的地方。

答案 1 :(得分:1)

Java运行时库本身支持许多“很酷的东西”,但是对于对窗口,文件系统和其他操作系统本机资源的高效访问,Java提供了一种称为Java本机接口(JNI)的机制,它从JVM桥接到低端。级别,平台特定的库。

从Java的角度来看,过桥的位置将是native关键字,用于装饰方法声明。

答案 2 :(得分:1)

API类旨在为您提供一个干净的API来编程。想想List

然后有一些类履行他们的合同,例如ArrayListLinkedList,这两个类都是列表,但具有不同的特征。

需要操作系统帮助的东西,比如写入文件或在屏幕上绘图,都是为了符合操作系统提供的API而编写的。这通常是由本机代码调用的平台依赖(通常用C编写)。 Swing - 默认的Java GUI - 完全用Java编写,在操作系统提供的矩形内工作。

将现代IDE与JDK一起使用时,您始终可以导航到运行时库中的类,并查看它们实际上是如何执行它。它通常比你想象的要简单得多。