代码之家  ›  专栏  ›  技术社区  ›  Jaka Jančar

javax与java包

  •  472
  • Jaka Jančar  · 技术社区  · 17 年前

    javax包背后的基本原理是什么?什么是java,什么是javax?

    我知道很多企业级的包都是用javax编写的,但Swing、新的日期和时间api(JSR-310)和其他J2SE包也是如此。

    8 回复  |  直到 3 年前
        1
  •  179
  •   Jon Skeet    10 年前

    最初 javax Java扩展 进入java。

    一个问题是Netscape(可能还有IE)限制了java包中可能存在的类。

    当Swing被设置为“毕业”时 java Java扩展

    在那个时间点上,至少对社区来说(也许对孙来说不是) Java扩展 迷路了。所以现在我们在javax中有一些东西可能应该放在 Java ……但除了选择包裹名称的人之外,我不知道是否有人能根据具体情况找出理由。

        2
  •  210
  •   Jason K.    13 年前

    javax .如果它第一次被介绍为 部分 java .不确定为什么API的新日期和时间将以 Java扩展 然而,遵循这一逻辑。..除非它也可以单独作为一个库与早期版本一起使用(这将很有用)。 多年后的注意:它(API的日期和时间)实际上是 Java 毕竟。

    我认为对 Java package-我认为类加载器的设置是 java.* 从以下位置加载 rt.jar 或者类似的东西。(当然要办理入住手续 ClassLoader.preDefineClass .)

    编辑:虽然官方的解释(orbfish建议的搜索在第一页左右没有给出)毫无疑问是关于“核心”与“扩展”的,但我仍然怀疑,在许多情况下,对任何特定方案的决定背后也有历史原因。是 java.beans 例如,这真的是Java的“核心”吗?

        3
  •  49
  •   duffymo    17 年前

    java 包裹是 基础 ,以及 javax

    Swing是一个扩展,因为AWT是最初的UI API。Swing后来出现在1.1版本中。

        4
  •  35
  •   Vineet Reynolds    17 年前

    javax命名空间是 通常 (这是一个加载词)用于标准扩展,目前称为 optional packages 标准扩展是非核心API的子集;非核心API的另一部分显然称为非标准扩展,占据了com.sun.*或com.ibm.等名称空间。 核心API采用java。 命名空间。

    Java API世界中并不是所有的东西都是从核心开始的,这就是为什么扩展通常是从JSR请求中产生的。他们最终会根据“明智的建议”晋升为核心。

    对这种命名法的兴趣源于Sun的一个失误——扩展本可以提升到核心,即从javax.*移动到java.*,打破了向后兼容性的承诺。程序员们嘶哑地哭了起来,更好的感觉占了上风。这就是为什么Swing API虽然是核心的一部分,但仍然保留在javax.*命名空间中。这也是包从扩展升级到核心的方式——它们只是作为JDK和JRE的一部分可供下载。

        5
  •  1
  •   Lakshmi Prasanna    8 年前

    java.*包是核心java语言包,这意味着使用java语言的程序员必须使用它们才能充分利用java语言。

    javax.*包是可选包,它提供了一种标准的、可扩展的方式,使自定义API可用于Java平台上运行的所有应用程序。

        6
  •  1
  •   Miroslav    8 年前

    Javax过去只用于扩展。然而,后来sun将其添加到java库中,却忘了删除x。开发人员开始用javax编写代码。然而,后来Sun决定将其改为java。开发人员不喜欢这个想法,因为他们的代码会被破坏。..因此保留了javax。