11 常用类的概述和使用

134 阅读9分钟

1 常用的包

在java开发中比较常用的包有:

  • Java.lang包-该包是java语言的核心包,该包中的所有内容有java虚拟机自动导入
  • Java.util包-该包是java语言的工具包,主要提供一些工具类和集合类等
  • Java.io包-该包是java语言中的输入输出包,提供了读写文件相关的类
  • Java.net-该包是java语言中的网络包,主要提供与网络编程相关的类
  • Java.sql-该包是java语言中的数据包,主要提供操作数据库相关的类和接口

上面只是java类库中的一部分,在实际开发中可以使用大量类库来提供开发效率。

2 Object类

Java.lang.Object类是java语言中类层次的根类,也就是说所有类都会直接或间接继承Object类,Object类定义了“对象”的基本行为,会被子类默认继承。

定义java类时没有使用extends关键字声明父类,则其父类为Java.lang.Object类

Object类中常用方法有:

方法声明功能介绍
Object()使用无参方式构造对象
boolean equals(Object obj)判断调用对象与参数对象是否相等。 该方法默认比较两个对象的地址是否相等,与==运算符的结果一致。 若希望比较两个对象的内容,需要重写该方法。
若该方法重写,则应该重写hashcode()方法来保证结果一致性。
int hashcode()获取调用对象的哈希码值(内存地址编号)
若两个对象调用equals方法相等,则各自调用hashcode方法的结果也必然相等
若两个对象调用equals方法不等,则各自调用hashcode方法的结果也必然不相等
为了使得该方法与equals方法保持一致,所以需要重写该方法
String toString()获取调用对象的字符串形式。
该方法默认返回的字符串形式:包名.类名@哈希码值的十六进制
为了返回更有意义的数据,需要重写该方法。
使用print或println打印引用或字符串拼接引用都会自动调用该方法
Class<?> getClass()返回调用对象执行时的Class实例,反射机制使用

3 包装类

基本数据类型并不是对象,为了满足万物皆对象的理念,对基本数据类型进行打包封装处理变成对象,而负责将这些变量声明为成员变量进行对象化处理的相关类就是包装类。

包装类具体分类如下:

包装类对应的基本数据类型
java.lang.Bytebyte
java.lang.Shortshort
java.lang.IntegerInt
java.lang.Longlong
java.lang.Floatfloat
java.lang.Doubledouble
java.lang.Booleanboolean
java.lang.Characterchar

4 Integer类

Java.lang.Integer类内部包装了一个int类型的变量作为成员变量,主要用于实现对int类型的包装并提供int类型到String类型之间的转换方法。

常用的常量有:

常量类型和名称功能介绍
public static final int MAX-VALUE表示int类型可以描述的最大值,即2^31-1
public static final int MIN-VALUE表示int类型可以描述的最小值,即-2^31
public static final int SIZE表示int类型采用二进制补码形式的位数
public static final int BYTES表示int类型所占的字节数
public static final Class TYPE表示int类型的Class实例

常用的方法有:

方法声明功能介绍
Integer(int value)根据指定的整数来构造对象(已过时)
Integer(String s)根据指定的字符串来构造对象(已过时)
int intValue()获取调用对象的整数值并返回
static Integer valueOf(int i)根据指定的整数值得到对应的Integer类型对象
boolean equals(Object ob)比较调用对象与参数指定的对象是否相等
String toString()返回调用对象数值的字符串形式
static int parseInt(String s)将字符串类型转化为int类型并返回
static String toString(int i)获取参数指定整数的十进制字符串形式
static String toBinaryString(int i)获取参数指定整数的二进制字符串形式
static String toHexString(int i)获取参数指定整数的十六进制字符串形式
static String toOctalString(int i)获取参数指定整数的八进制字符串形式

5 装箱和拆箱

java5发布之前使用包装类对象进行运算时,需要进行“拆箱”和“装箱”操作;即运算前先将包装类对象拆分为基本类型数据,运算完后再将结果封装成包装类对象。

从java5之后开始增加自动拆箱和自动装箱的功能。

自动装箱池:在Integer类的内部提供了自动装箱池技术,将-128到127之间的整数已经提前装箱,但程序需要使用该范围内的整数时,无需装箱直接取用自动装箱池中的对象即可,从而提高了效率。

6 Double类

Java.lang.Double类内部包装了一个double类型的变量作为成员变量,主要用于实现对double类型的包装并提供double类型到String类型之间的转换方法。

常用的常量有:

常量类型和名称功能介绍
public static final int SIZE表示double类型采用二进制补码形式的位数
public static final int BYTES表示double类型所占的字节数
public static final Class TYPE表示double类型的Class实例

常用的方法:

方法声明功能介绍
Double(double value)根据指定的浮点数来构造对象(已过时)
Double(String s)根据指定的字符串来构造对象(已过时)
double doubleValue()获取调用对象的浮点数值并返回
static Double valueOf(int i)根据指定的浮点数值得到对应的Double类型对象
boolean equals(Object ob)比较调用对象与参数指定的对象是否相等
String toString()返回调用对象数值的字符串形式
static double parseDouble(String s)将字符串类型转化为double类型并返回
boolean isNaN()判断调用对象的数值是否为数字

Java.lang.Number类是抽象类,还是上述包装类的父类,用来描述素所有包装类共有的成员

7 Boolean类

Java.lang.Boolean类内部包装了一个boolean类型的变量作为成员变量,主要用于实现对boolean类型的包装并提供boolean类型到String类型之间的转换方法。

常用变量:

常量类型和名称功能介绍
public static final boolean FALSE对应值为false的对象
public static final boolean TRUE对应值为true的对象
public static final Class TYPE表示boolean类型的Class实例

常用的方法:

方法声明功能介绍
Boolean(boolean value)根据指定的布尔值来构造对象(已过时)
Boolean(String s)根据指定的字符串来构造对象(已过时)
boolean booleanValue()获取调用对象的布尔值值并返回
static Boolean valueOf(boolean i)根据指定的布尔值得到对应的Boolean类型对象
boolean equals(Object ob)比较调用对象与参数指定的对象是否相等
String toString()返回调用对象数值的字符串形式
static boolean parseBoolean(String s)将字符串类型转换为boolean类型并返回

8 Character类

Java.lang.Character类内部包装了一个char类型的变量作为成员变量,主要用于实现对char类型的包装并提供字符类别的判断和转换等方法。

常用的量:

常量类型和名称功能介绍
public static final int SIZE表示char类型采用二进制补码形式的位数
public static final int BYTES表示char类型所占的字节数
public static final Class TYPE表示char类型的Class实例

常用的方法:

方法声明功能介绍
Character(char value)根据指定的字符数据来构造对象(已过时)
char charValue()获取调用对象的字符数据并返回
static Character valueOf(char i)根据指定的字符得到对应的Character类型对象
boolean equals(Object ob)比较调用对象与参数指定的对象是否相等
String toString()返回调用对象数值的字符串形式
Static boolean isUpperCase(char ch)判断参数指定字符是否为大写字符
Static boolean isLowerCase(char ch)判断参数指定字符是否为小写字符
Static boolean isDigit(char ch)判断参数指定字符是否为数字字符
Static boolean toUpperCase(char ch)将指定参数字符转为大写字符
Static boolean toLowerCase(char ch)将指定参数字符转为小写字符

9 包装类的使用总结

  • 基本数据类型转换为对应包装类的方式:调用包装类的构造方法或者静态方法
  • 获取包装类对象中基本数据类型变量数值的方式:调用包装类中的xxxValue方法
  • 字符串转换为基本数据类型的方式:调用包装类中parseXxx方法

10 数学类

Java.lang.Math类主要用于提供执行数学运算的方法。

Math类中常用方法有:

方法声明功能介绍
static int max(int a,int b)返回两个参数中的最大值
static int min(int a,int b)返回两个参数中的最小值
static double pow(double a,double b)返回第一个参数的幂
static int abs(int a)返回参数的绝对值
static long round(double a)返回参数四舍五入的结果
static double sqrt(double a)返回参数的平方根
Static double random()返回0.0到1.0的随机数

11 BigDecimal类

float和double类型在运算时会存在误差,如果希望实现精确运算,需要借助java.lang.BigDecimal类型

常用方法有:

方法声明功能介绍
BigDecimal(String val)根据参数指定的字符串来构造对象
BigDecimal add(BigDecimal a)实现加法运算
BigDecimal subtract(BigDecimal a)实现减法运算
BigDecimal multiply(BigDecimal a)实现乘法运算
BigDecimal divide(BigDecimal a)实现除法运算

12 BigInteger类

当整数的范围超过long类型时,就需要使用java.lang.BigInteger类

常用方法有:

方法声明功能介绍
BigInteger(String val)根据参数指定的字符串来构造对象
BigInteger add(BigInteger a)实现加法运算
BigInteger subtract(BigInteger a)实现减法运算
BigInteger multiply(BigInteger a)实现乘法运算
BigInteger divide(BigInteger a)实现除法运算
BigInteger remainder(BigInteger a)实现取余运算
BigInteger[] divideAndRemainder(BigInteger a)实现取商和取余运算