java中的java、javax、sun、org包有什么区别

深坑

java、javax、org、sun包都是jdk提供的类包,且都是在rt.jar中。rt.jar是JAVA基础类库(java核心框架中很重要的包),包含lang在内的大部分功能,而且rt.jar默认就在根classloader的加载路径里面。

他们之间的区别具体如下:

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

javax.*
也是java标准的一部分,但是没有包含在标准库中,一般属于标准库的扩展。通常属于某个特定领域,不是一般性的api。所以以扩展的方式提供api,以避免jdk的标准库过大。当然某些早期的javax,后来被并入到标准库中,所以也应该属于新版本JDK的标准库。比如jmx以前是java5扩展方式提供,但是jdk5以后就作为标准库的一部分了,所以 javax.management也是jdk5的标准库一部分。

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

org.omg.
是由企业或者组织提供的java类库,大部分不是 sun 公司提供的,同 com.sun.
不具备向后兼容性,会根据需求随时增减。