为什么com.sun.* 和 sun.*包下面的类却不要去使用

为什么java. javax. org. 下面的类可以使用,com.sun. 和 sun.*包下面的类却不要去使用?

答:

java.* javax.* org.* 这些包下面的类是对JavaSE平台的弥补,是有官方支持的,兼容所有Java支持的平台。

com.sun.* sun.* 则是不被官方支持的,Oracle不保证这些API是跨平台的,比如,有一些类在Windows上面有,但是在Linux上面却没有。而且随着JDK版本的升级,有一些类可能会被去掉,一些类的接口也会发生变化。最后,从Oracle的角度来说,他也会慢慢的把会sun都换成oracle,毕竟Oracle已经把Java买下来了嘛。

时间: 2024-12-21 15:53:51

为什么com.sun.* 和 sun.*包下面的类却不要去使用的相关文章

Java中的sun.misc.Unsafe包

chronicle项目:https://github.com/peter-lawrey/Java-Chronicle 这个项目是利用mmap机制来实现高效的读写数据,号称每秒写入5到20百万条数据. 作者有个测试,写入1百万条log用时0.234秒,用java自带的logger,用时7.347秒. 在看chronicle的源代码,发现一个牛B的利用Unsafe来直接读写内存,从而提高效率的例子. 详细见这个类:https://github.com/peter-lawrey/Java-Chroni

Java千百问_02基本使用(010)_java、javax、sun、org包有什么区别

点击进入_更多_Java千百问 1.java.javax.sun.org包有什么区别 java.javax.org.sun包都是jdk提供的类包,且都是在rt.jar中.rt.jar是JAVA基础类库(java核心框架中很重要的包),包含lang在内的大部分功能,而且rt.jar默认就在根classloader的加载路径里面,所以放在classpath是多此一举 .他们之间的区别具体如下: 了解java核心框架看这里:java核心框架是什么样的 java.* java SE的标准库,是java标

Java 控制台执行带自定义包定义的类,出现“Exception in thread "main" java.lang.NoClassDefFoundError: ConnectSQLServer (wrong name: sine/ConnectSQLServer)”

1.先说明一下代码实现:自定义package sine, 源代码保存路径为:E:\JSP\HibernateDemo\HibernateDemoProject\src\sine\ConnectSQLServer.java 1 package sine; 2 import java.sql.*; 3 4 public class ConnectSQLServer { 5 6 public static void main(String args[]){ 7 String url="jdbc:sql

带包的java类在cmd环境下的执行办法

带包的java类在cmd环境下的执行办法:工程目录为D:\Program Files\eclipse\workspace\ReadFileByLinesUniq上面目录下有两个文件夹bin和src源文件位于src\cn\cnnic\ops\zonefile目录下通过eclipse编译src\cn\cnnic\ops\zonefile\ReadFileByLinesUniq.java的.class文件位于bin\cn\cnnic\ops\zonefile\ReadFileByLinesUniq.c

27 Java动态加载第三方jar包中的类

我加载的方法是://参数fileName是jar包的路径,processorName 是业务类的包名+类名public static A load(String fileName, String processorName) {            String filePath = fileName;              A processor = null;  URL url;try {  url = new URL(filePath);} catch (MalformedURLEx

韩顺平细说Servlet视频系列意外收获之用命令行编译带有包的java类解决方案

命令行编译带有包的java类 在命令行编译这一块,基本上都是新手入门时了解一下,然后就直奔IDE而去.这样固然没错,就怕那些--.然后今天在视频中看到了这种方法,觉得可能会用到,所以就记录下来了,以备自查. 步骤如下: 在X盘新建一个java文件,编写一段内带包的代码,示例如下: package com.hsp; public class Exercise{ public static void main(String[] args){ System.out.println("Hello Wor

关于java同步包中ConcurrentLinkedQueue类的深入分析与理解

一,官方描述 一个基于连接节点的无界线程安全队列.这个队列的顺序是先进先出.队列头部的元素是留在队列中时间最长的,队列尾部的元素是留在队列中时间最短的.新元素被插入到元素的尾部,队列从队列的头部检索元素.当许多线程共享访问同一个集合时,这个类是不二选择.这个队列不允许有null元素. 这个实现基于一种被描述为简单,快速,实用的非阻塞和阻塞公布队列算法而提供的一种有效的空闲等待算法. 注意,不像大多数集合,size方法的操作不是常量时间的,由于是异步队列,决定了元素的数量需要遍历真个元素集. 这个

JavaSE8基础 不通包之间的类进行访问 通过包名来限定类

os :windows7 x64    jdk:jdk-8u131-windows-x64    ide:Eclipse Oxygen Release (4.7.0)        代码一: package cnblog.jizuiku.Tool; //其他的包中的类要想 访问到这个类,那么就需要为Tools加修饰符 我加的是最大权限 public public class Tools { public static void sayHello() { System.out.println("h

Java遍历包中所有类

PackageUtil 类 import java.io.File; import java.net.URL; import java.net.URLClassLoader; import java.util.ArrayList; import java.util.Enumeration; import java.util.List; import java.util.jar.JarEntry; import java.util.jar.JarFile; /** * 获取包中所有的类 * @au