java 中常用五大包有哪些?

Python011

java 中常用五大包有哪些?,第1张

常用的五个

java.lang.*

提供利用 Java 编程语言进行程序设计的基础类。最重要的类是 Object(它是类层次结构的根)和 Class(它的实例表示正在运行的应用程序中的类)。

java.util.*

包含集合框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组、日期Date类、堆栈Stack类、向量Vector类等)。集合类、时间处理模式、日期时间工具等各类常用工具包

java.io.*

Java的核心库java.io提供了全面的IO接口。包括:文件读写、标准设备输出等。Java中IO是以流为基础进行输入输出的,所有数据被串行化写入输出流,或者从输入流读入。

java.net.*

并非所有系统都支持 IPv6 协议,而当 Java 网络连接堆栈尝试检测它并在可用时透明地使用它时,还可以利用系统属性禁用它。在 IPv6 不可用或被显式禁用的情况下,Inet6Address 对大多数网络连接操作都不再是有效参数。虽然可以保证在查找主机名时 java.net.InetAddress.getByName 之类的方法不返回 Inet6Address,但仍然可能通过传递字面值来创建此类对象。在此情况下,大多数方法在使用 Inet6Address 调用时都将抛出异常。

java.sql.*

提供使用 JavaTM 编程语言访问并处理存储在数据源(通常是一个关系数据库)中的数据的 API。此 API 包括一个框架,凭借此框架可以动态地安装不同驱动程序来访问不同数据源。

java的类装载器使用的是优先策略,加载类的时候先找到哪个就加载哪个。有时候我们做一个系统,当类库非常庞大的时候,类可能会出现冲突,也就是类路径中存在不同版本的两个相同的类,这往往给调试带来非常大的麻烦,我们可能修改了类,但由于类加载器却使用的是另外一个未被更新的类,这个时候就会丈二和尚摸不着头脑,一度使调试过程误入歧途。

import java.security.CodeSource

import java.security.ProtectionDomain

import org.apache.commons.lang.StringUtils/*** 判断类是从哪个jar包中加载的

* @author Winter Lau*/public class Test {

public static void main(String[] args) {

ProtectionDomain pd = StringUtils.class.getProtectionDomain()

CodeSource cs = pd.getCodeSource()

System.out.println(cs.getLocation())}}

这段代码在我的机器上运行的结果是:

但是有一个限制经由系统类加载器所加载的类不能使用该方法来获取路径,假如你对 String类做上面的测试就会发生空指针异常,因为所得到的CodeSource为空,你可以在程序启动的时候使用-verbose来查看系统类的装载信息,使用方式有如: