美文网首页
java包分类包括java.*,sun.*

java包分类包括java.*,sun.*

作者: __笙歌4J | 来源:发表于2019-08-06 10:30 被阅读0次

    最近在学习Class加载的过程,无意中看到ClassLoader中有sun开头的类,甚是奇怪,随知孤陋寡闻了,不由感叹到java果然博大精深,在下拜服。特此记录一番,以方便同辈人士观之

    1. java.*
      JavaSE的标准库,是java标准的一部分,是对外承诺的java开发接口,通常要保持向后兼容,一般不会轻易修改。包括其他厂家(IBMJDK/HPJDK/OpenJDK)在内,所有jdk的实现,在java.*上都是一样的。

    2. javax.*
      也是java标准的一部分,但是没有包含在标准库中,一般属于标准库的扩展。通常属于某个特定领域,不是一般性的api。

    此上两者都属于java标准库,公有的API,遵循java平台规范,

    1. com.sun.*
      是sun的hotspot虚拟机中java.* 和javax.*的实现类。因为包含在rt中,所以我们也可以调用。但是因为不是sun对外公开承诺的接口,所以根据根据实现的需要随时增减,因此在不同版本的hotspot中可能是不同的,而且在其他的jdk实现中是没有的,调用这些类,可能不会向后兼容,所以一般不推荐使用。

    2. org.*
      是由企业或者组织提供的java类库,大部分不是sun公司提供的,同com.sun.*,不具备向后兼容性,会根据需要随时增减。其中比较常用的是w3c提供的对XML、网页、服务器的类和接口

    3. sun.*包:
      1、不是API公开接口的一部分,调用sun包的程序并不能确保工作在所有Java平台上,不同的操作系统中的实现可能不相同。

    2、不同的jdk版本sun包中的类也可能不定期的变化,因此sun.*包中的类没有提供API文档及源码。

    不建议使用

    相关文章

      网友评论

          本文标题:java包分类包括java.*,sun.*

          本文链接:https://www.haomeiwen.com/subject/hafidctx.html