java常用的包
Java语言采用包结构组织和管理类与接口,避免命名冲突,结构富有条理而清晰。
作为java语言使用者,我们可以感受到java语言带来的优势(平台无关、面向对象、多线程、高效易扩展等),而且它有很多已经实现的类库可以供我们直接使用,这些类库都是以jar包的形式提供的,也可以成为java API,它为编程者实现了各种常用操作的方法,为程序员编写java程序代码带来了许多方便。
包名 | 内容概述 |
---|---|
Java.applet | 提供创建applet小程序所需要的类 |
Java.awt | 包含用于创建用户界面和绘制图形图像的所有类 |
Java.io | 提供与输入输出相关的类 |
Java.beans | 包含与开发javaBeans相关的类 |
Java.lang | 提供java语言程序设计的基础类 |
Java.net | 提供实现网络操作相关的类 |
Java.nio | 为输入输出提供缓冲区的类 |
Java.text | 提供处理文本、日期、数字和消息的类和接口 |
Java.util | 提供处理日期、时间、随机数生成等各种使用工具的类 |
Javax.net | 提供用于网络应用程序的类、网络应用扩展类 |
Java.swing | 提供一组与AWT功能相同的纯java的组件类 |
java.lang.*
提供利用 Java 编程语言进行程序设计的基础类。最重要的类是 Object(它是类层次结构的根)和 Class(它的实例表示正在运行的应用程序中的类)。
该包提供了Java语言进行程序设计的基础类,它是默认导入的包。该包里面的Runnable接口和Object、Math、String、StringBuffer、System、Thread以及Throwable类需要重点掌握,因为它们应用很广。
Java.lang包是java语言体系中其他所有类库的基础,已经内嵌到java虚拟机中,而且以对象的形式创建好了,所以,我们在使用java.lang包时不需要再使用import将其导入,可以直接使用java.lang包中的所有类以及直接引用某个类中的敞亮、变量和操作方法。
类名 | 功能 |
---|---|
Boolean | 封装了boolean类型的值以及一些操作该类型的方法 |
Byte | 封装了byte类型的值以及一些操作该类型的方法 |
Character | 封装了char类型的值以及一些操作该类型的方法 |
Double | 封装了double类型的值以及一些操作该类型的方法 |
Float | 封装了float类型的值以及一些操作该类型的方法 |
Integer | 封装了int类型的值以及一些操作该类型的方法 |
Long | 封装了long类型的值以及一些操作该类型的方法 |
Short | 封装了short类型的值以及一些操作该类型的方法 |
String | 封装了与字符串类型相关的操作方法 |
Void | 表示对Java中的void关键字的声明,这个类不可以实例 |
Class | 用于描述正在运行的java应用程序中的类和接口的状态 |
ClassLoader | 用于加载类的对象 |
Enum | 用于定义枚举类型 |
Math | 用于实现基本数学运算 |
Number | 抽象类,是基本数据类型类的父类 |
Object | 是所有java类的根类 |
Package | 封装了有关java包的实现和规范的版本信息 |
Runtime | Runtime类对象使java应用程序与其运行环境相连接 |
StrictMath | 用于实现基本的数学运算 |
StringBuffer | 用于可变字符串的操作 |
StringBuilder | 创建可变的字符串对象 |
System | 封装了一些与java虚拟机系统相关的方法 |
Thread | 创建和控制线程 |
ThreadGroup | 创建和控制线程组 |
Throwable | 定义了java中的所有错误或者异常的父类 |
Process | 定义一个进程process对象,通过Runtime类中的exec方法启动该进程对象 |
定义在java.lang包中的主要接口及其相应的功能说明如下表:
接口 | 功能 |
---|---|
Appendable | 用于追加字符串 |
Cloneable | 用于复制类对象 |
Runnable | 用于实现类对象具有线程功能 |
Comparable | 用于类对象的排序 |
1.Object类说明
Object类是java体系中所有类的父类,即在java语言开发的程序中所创建的类对象都是由object类派生出来的,都实现或者继承了object类中的方法。
Jar包中封装了一些常量、变量以及方法,当一个类对象被创建后,可以直接引用对象中的常量和变量,调用对象中的方法时要明确方法的输入参数,并为方法提供符合参数类型的数据和返回值;还要知道该方法在调用时是否会产生异常,如果方法可能会产生异常,需要使用try-catch语句结构来捕获和处理异常,或者使用java关键字throws将可能产生的异常抛出。
2.Java基本数据类型
Java语言中规定的基本数据类型包括boolean、byte、character、double、float、integer、long、short等8个。通过这些可以声明基本数据类型的常量、变量。但是因为java是纯面向对象的程序设计语言,为了实现面向对象,java.lang中给这些基本数据类型定义了对应的类(封装了基本数据类型的变量类型、与变量相关的常量及相关的操作方法),这样就能够在使用这些基本类型的值或者变量时将其当做对象处理。
在java.lang包中还定义了Number抽象数据类型,专门针对纯数字对象的操作,在基本数据类型中针对纯数字对象的操作包括整数和浮点类型。由此可知,Number类是整型和浮点类型的直接父类,在number类中定义了适用于不同数据类型纯数字的操作方法和抽象方法。
(说明:character类封装了char类型的数值以及相关的操作方法,其字符全部采用Unicode标准编码)
3.字符串类String&StringBuffer
在java.lang中还提供了处理字符串的String类,String类用于处理“不可变”的字符串;相对地,还提供了StringBuffer类用于处理“可变”字符串。Stirng类和StringBuffer类都被声明为final类型,因此不能将其当做父类再被继承使用了。
(1)String类
String类用于创建字符串对象,其值在创建之后被当做常量,String类里面还封装了字符串类型的数值以及相关的操作方法。String类中的所有操作方法都是针对已经创建的String对象而言的,而String对象是通过String类的构造函数创建的。
(2)StringBuffer类
StringBuffer类是字符串缓冲区类,用于创建长度可变的字符串对象,这里的“长度可变”是指通过某些方法的调用可以改变字符串的长度和内容,比如通过在原字符串的基础上追加新的字符串序列,或者在原字符串的某个位置上插入新的字符序列等构成新的字符串对象。
StringBuffer类创建字符串对象是基于开辟新的缓冲区实现的,在缓冲区中存放字符串的字符序列,因为缓冲区是有一定容量的,所以当字符串长度改变的之后,如果超过了缓冲区的容量时,即发生缓冲区溢出时,java运行系统会自行扩大StringBuffer对象创建的缓冲区容量,保证了对字符串操作的安全性。
4.Math类
Math类中封装了各种数据类型的算术操作,即包含了指数、对数、平方根、三角函数等操作。在math类中其所有的常量和方法都被定义为静态的,因此所有的成员都可以直接被引用。
5.Runtime类
Runtime类中封装了一些和java虚拟机相关的方法,在java虚拟机启动每个java应用程序时都会创建一个runtime对象,它会保证java应用程序和其运行环境的连接,runtime对象创建后,在java应用程序中就可以直接调用runtime类中定义的方法(如:获取当前程序的运行信息、退出程序运行、关闭java虚拟机等操作)。
6.System类
System类封装了一些和计算机输入/输出系统相关的常量,以及与java虚拟机相关的操作方法。Java虚拟机启动之后就会创建system对象,在java应用程序中无法创建system对象。System类中所有的常量和方法都被定义为静态的,因此,在java应用程序中可以直接调用system类里面定义的常量和方法。
7.小结
关于java语言提供的可用类库有很多,给程序员带来很多的便捷,在具体使用时需要查看帮助文档和说明,确定功能。要重点关注的还是某个操作方法的输入参数、返回值、异常等。
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常用包