平台和api这两个词到底是啥意思?
Posted
技术标签:
【中文标题】平台和api这两个词到底是啥意思?【英文标题】:what do the words platform and api exactly mean?平台和api这两个词到底是什么意思? 【发布时间】:2011-01-03 08:33:01 【问题描述】:我买了一本书“学习 java SE 6 平台”。我想知道平台这个词的真正含义。因为它不仅仅是一堆我可以使用的类。 Netbeans 中的 JDK 1.6 节点在 Libraries 下。
什么是 API?是不是和平台一样。但是库不是意味着同样的事情..一堆带有一些超类的类等等?
【问题讨论】:
平台既可以指硬件架构,也可以指软件环境。详情请参考 coobird 的回复。 【参考方案1】:API - 是一个应用程序编程接口 - 这是一组可供使用的类。 平台是一个完整的捆绑包 - 具有运行时和附加应用程序(如编译器等)的 API。
【讨论】:
【参考方案2】:Java 平台(大致)由以下部分组成:
-
Java 编程语言
Java API
Java 虚拟机
Wikipedia article on Java (software platform)里面有不少细节。
API 或应用程序编程接口单独提供 Java 平台附带的类。例如,当说“Java API”时,可能是指Java SE 平台附带的类库。
为了提供链接,这里是Java平台各个部分的官方文档:
Java 编程语言 - The Java Language Specification Java SE API - Java Platform, Standard Edition 6 API Specification Java 虚拟机 - The Java Virtual Machine Specification【讨论】:
JVM 与 JRE 和 JDK 有什么关系? JVM 运行 Java 应用程序。 JRE 提供 JVM 来运行 Java 应用程序,而 JDK 有一个编译器,它以 JVM 为目标来编译 Java 应用程序。 简明扼要的回答。下面的链接解释了 Java 存在的不同 API。我不确定框架的想法在哪里适合。 en.wikipedia.org/wiki/List_of_Java_APIs sp 基本上是 JVM = JRE + JDK? @noname No. JRE = 核心 Java 库 + JVM。这是您运行 Java 软件所需要的。 JDK = JRE + 开发者工具(编译器等)。这是您开发和运行 Java 软件所需要的。【参考方案3】:是的,平台更像是一个通用术语,在不同的上下文中可能意味着不同的事物。想想像 Xbox 这样的游戏平台。在这种情况下,微软为开发者制作游戏和人们玩游戏提供了一个“平台”。
就 J2EE(企业 Java)而言,平台一词对我来说意味着开发人员构建企业应用程序的解决方案。正如您所指出的,它不仅仅是一组类。例如,有很多规范,如 JPA(用于持久性)、EJB 等。在这些情况下,Java 开发人员已经制定了规范供其他供应商实施。我将平台视为提供各种服务的基础,在这些服务上构建更大的东西。
API 是一个更专业的术语。它代表应用程序编程接口。 API 是我们开发人员在使用其他人的软件时使用的接口。想想Java String 类。它有一个 length() 方法。所有 Jave 开发人员都知道 String 类存在此方法,因此它是 Java API 的一部分。
【讨论】:
【参考方案4】:术语“平台”用于表示任何软件、服务和资源的集合,在特定的上下文中,它们被认为是给定的,因此它们可以用作应用软件的构建块(或构建更高级别的平台)最重要的是——在另一种情况下被认为是一个平台)
API 是应用程序编程接口的缩写。这通常意味着调用约定(函数签名等)的集合,应用程序(您正在编写的程序)可以使用这些约定来细读驻留在库或平台中的功能。
API 与库不同 - 术语接口表示它仅指定您可以调用的内容及其行为方式。实现接口的实际库可以自行决定它如何提供指定的功能。
一个很好的 API 示例是 JDBC API - 这是 Java 程序与数据库通信的标准方式。每个数据库供应商都有自己的协议,用于连接到数据库、绑定变量等到数据库命令,但是 JDBC API 抽象了所有这些并定义了一个共同点,允许所有 Java 程序使用相同的函数集进行对话——理想情况下- 任何数据库。实际提供驱动程序是数据库供应商的工作,也就是说,实现一个符合 API 并知道它如何为特定数据库系统完成任务的库。因此,在这种情况下,您有许多驱动程序库(每个供应商都有自己的,有时有多个),但它们都通过 API 指定的同一组函数、类等提供其功能(在这种情况下,是 JDBC API - 请参阅http://java.sun.com/j2se/1.5.0/docs/api/java/sql/package-summary.html
有时,API 是如此广泛以至于它被认为是一个平台,但术语平台更笼统,一个平台不需要是一个 API。例如,标准 UNIX 实用程序(如 ls、grep、cd 等)的集合可以被视为一个平台,但与其说是 API。
【讨论】:
很好的答案,它阐明了平台和 api 的含义......你节省了我的时间......:)以上是关于平台和api这两个词到底是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章
Walter Bright 使用了“冗余”这个词……或者“这到底是啥意思?”