Java是一门面向对象的语言 ,我们知道Java中的数据类型分为基础数据类型和引用数据类型,然而基础数据类型不能称之为对象,因此Java设置了位于这些基本数据类型之上的包装类,
包装类和基本数据类型的对应关系如下
1 byte Byte
2 short Short
3 int Integer
4 long Long
5 char Character
6 float Float
7 double Double
8 boolean Boolean
可以清楚的看到除了integer和character以外其他的数据类型与对应的包装类名基本相同。
装箱和拆箱
Java中将一个基本数据类型转化为包装类的过程称为装箱,反之则是拆箱
在之前,装箱和拆箱必须手动操作,在Java更新了之后可以自动装箱和拆箱,如以下代码段
public class Demo {
public static void main(String[] args) {
int m = 500;
Integer obj = m; // 自动装箱
int n = obj; // 自动拆箱
System.out.println("n = " + n);
Integer obj1 = 500;
System.out.println("obj等价于obj1返回结果为" + obj.equals(obj1));
}
}
自动装箱和拆箱是非常实用和常用的操作,需要重点掌握。
Object类
object类是所有类的父类,也就是说,Java支持把所有类型的对象复制给object类
public static class...{}
与public static class...extends Object{}等价,没有事先注明类的类别则默认是Object类。
有三种方法比较常用
toSring()方法
toString方法是数据类型为string,功能为将其他类型的数据转化成字符串的一个方法
Object类中的toString()方法返回 运行时类名+@十六进制哈希码的字符串
值得注意的是,对象输出是一定会调用toString()方法的,但是其他类中部分类对原本的方法进行了重写,需要单独注意。
equals()方法
这个方法是用来比较两个对象或者基本数据的内容是否一样的方法。
用法是 对象.equals(str x);
getClass()方法
这个方法返回的是对象所属的类,是一个class对象。
Integer类
Integer类包装了int这个数据类型,包含的是int类型的字段,integer类中有许多关于int数据类型的
实用的方法
Integer类的构造方法有两种
1.Integer(int x);
2.Integer(String s);
方法 | 返回值 | 功能 |
---|---|---|
byteValue() | byte | 以 byte 类型返回该 Integer 的值 |
shortValue() | short | 以 short 类型返回该 Integer 的值 |
intValue() | int | 以 int 类型返回该 Integer 的值 |
toString() | String | 返回一个表示该 Integer 值的 String 对象 |
equals(Object obj) | boolean | 比较此对象与指定对象是否相等 |
compareTo(Integer anotherlnteger) | int | 在数字上比较两个 Integer 对象,如相等,则返回 0; 如调用对象的数值小于 anotherlnteger 的数值,则返回负值; 如调用对象的数值大于 anotherlnteger 的数值,则返回正值 |
valueOf(String s) | Integer | 返回保存指定的 String 值的 Integer 对象 |
parseInt(String s) | int | 将数字字符串转换为 int 数值 |
在实际的编程过程中,经常将字符串转换为 int 类型的数值,或者将 int 类型的数值转换为对应的字符串。以下代码演示如何实现这两种功能:
String a="456";
int b=Integer.parseInt(a);
int c=123;
String d=Integer.toString(c);
在执行过程中如果字符串中含有非数字字符,程序就会出现异常。
Integer类的几种常量
MAX_VALUE 代表int类型的最大值
MIN_VALUE 代表int类型的最小值
SIZE 该Integer对象的二进制补码
TYPE 基本类型int的class实例
Float类
顾名思义float类是基本数据类型float的包装类,包含float字段的信息。
Float类的构造方法有三种
1.Float(float value);
2.Float(double value);
3.Float(String s);
同样,Float类也提供了类中的许多方法,与Integer类中的方法较有不同。
方法 | 返回值 | 功能 |
---|---|---|
byteValue() | byte | 以 byte 类型返回该 Float 的值 |
doubleValue() | double | 以 double 类型返回该 Float 的值 |
floatValue() | float | 以 float 类型返回该 Float 的值 |
intValue() | int | 以 int 类型返回该 Float 的值(强制转换为 int 类型) |
longValue() | long | 以 long 类型返回该 Float 的值(强制转换为 long 类型) |
shortValue() | short | 以 short 类型返回该 Float 的值(强制转换为 short 类型) |
isNaN() | boolean | 如果此 Float 值是一个非数字值,则返回 true,否则返回 false |
isNaN(float v) | boolean | 如果指定的参数是一个非数字值,则返回 true,否则返回 false |
toString() | String | 返回一个表示该 Float 值的 String 对象 |
valueOf(String s) | Float | 返回保存指定的 String 值的 Float 对象 |
parseFloat(String s) | float | 将数字字符串转换为 float 数值 |
Float中的常量
MAX_VALUE
MIN_VALUE这两种分别代表float类型的最大值和最小值。
Double类
Double类的构造方法有两种:
1.Double(double value);
2.Double(String str);
double类也提供了许多方法
方法 | 返回值 | 功能 |
---|---|---|
byteValue() | byte | 以 byte 类型返回该 Double 的值 |
doubleValue() | double | 以 double 类型返回该 Double 的值 |
fioatValue() | float | 以 float 类型返回该 Double 的值 |
intValue() | int | 以 int 类型返回该 Double 的值(强制转换为 int 类型) |
longValue() | long | 以 long 类型返回该 Double 的值(强制转换为 long 类型) |
shortValue() | short | 以 short 类型返回该 Double 的值(强制转换为 short 类型) |
isNaN() | boolean | 如果此 Double 值是一个非数字值,则返回 true,否则返回 false |
isNaN(double v) | boolean | 如果指定的参数是一个非数字值,则返回 true,否则返回 false |
toString() | String | 返回一个表示该 Double 值的 String 对象 |
valueOf(String s) | Double | 返回保存指定的 String 值的 Double 对象 |
parseDouble(String s) | double | 将数字字符串转换为 Double 数值 |
Double类的常量
- MAX_VALUE:值为 1.8E308 的常量,它表示 double 类型的最大正有限值的常量。
- MIN_VALUE:值为 4.9E-324 的常量,它表示 double 类型数据能够保持的最小正非零值的常量。
- NaN:保存 double 类型的非数字值的常量。
- NEGATIVE_INFINITY:保持 double 类型的负无穷大的常量。
- POSITIVE_INFINITY:保持 double 类型的正无穷大的常量。
- SIZE:用秦以二进制补码形式表示 double 值的比特位数。
- TYPE:表示基本类型 double 的 Class 实例。
Number类
Number类是一个抽象类,也是一个父类,隶属于java.lang包,java中所有的包装类都是Number类的子类
方法 | 说明 |
---|---|
byte byteValue(); | 返回 byte 类型的值 |
double doubleValue(); | 返回 double 类型的值 |
float floatValue(); | 返回 float 类型的值 |
int intValue(); | 返回 int 类型的值 |
long longValue(); | 返回 long 类型的值 |
short shortValue(); | 返回 short 类型的值 |
Character类
Character类是基本数据类型char的包装类。
提供的方法如下
方法 | 描述 |
---|---|
void Character(char value) | 构造一个新分配的 Character 对象,用以表示指定的 char 值(构造一个character对象) |
char charValue() | 返回此 Character 对象的值,此对象表示基本 char 值 |
int compareTo(Character anotherCharacter) | 根据数字比较两个 Character 对象 |
boolean equals(Character anotherCharacter) | 将此对象与指定对象比较,当且仅当参数不是 null,而 是一个与此对象 包含相同 char 值的 Character 对象时, 结果才是 true |
boolean isDigit(char ch) | 确定指定字符是否为数字,如果通过 Character. getType(ch) 提供的字 符的常规类别类型为 DECIMAL_DIGIT_NUMBER,则字符为数字 |
boolean isLetter(int codePoint) | 确定指定字符(Unicode 代码点)是否为字母 |
boolean isLetterOrDigit(int codePoint) | 确定指定字符(Unicode 代码点)是否为字母或数字 |
boolean isLowerCase(char ch) | 确定指定字符是否为小写字母 |
boolean isUpperCase(char ch) | 确定指定字符是否为大写字母 |
char toLowerCase(char ch) | 使用来自 UnicodeData 文件的大小写映射信息将字符参数转换为小写 |
char toUpperCase(char ch) | 使用来自 UnicodeData 文件的大小写映射信息将字符参数转换为大写 |
Boolean类是基本数据类型boolean的包装类
Boolean类的构造方法有如下两种
1.Boolean(boolean value);
2.Boolean(String str);
其中str必须为"true"或"false"。
方法 | 返回值 | 功能 |
---|---|---|
booleanValue() | boolean | 将 Boolean 对象的值以对应的 boolean 值返回 |
equals(Object obj) | boolean | 判断调用该方法的对象与 obj 是否相等。当且仅当参数不是 null,且与调用该 方法的对象一样都表示同一个 boolean 值的 Boolean 对象时,才返回 true |
parseBoolean(String s) | boolean | 将字符串参数解析为 boolean 值 |
toString() | string | 返回表示该 boolean 值的 String 对象 |
valueOf(String s) | boolean | 返回一个用指定的字符串表示的 boolean 值 |
Boolean中常用的常量:
TRUE返回boolean值为true
FALSE false
TYPE 返回基本类型boolean的class对象。
Byte类
Byte类是基本数据类型byte的包装类
构造方法有两种:
1.Byte(byte value);
2.Byte(String str);
方法 | 返回值 | 功能 |
---|---|---|
byteValue() | byte | 以一个 byte 值返回 Byte 对象 |
compareTo(Byte bytel) | int | 在数字上比较两个 Byte 对象 |
doubleValue() | double | 以一个 double 值返回此 Byte 的值 |
intValue() | int | 以一个 int 值返回此 Byte 的值 |
parseByte(String s) | byte | 将 String 型参数解析成等价的 byte 形式 |
toString() | String | 返回表示此 byte 值的 String 对象 |
valueOf(String s) | Byte | 返回一个保持指定 String 所给出的值的 Byte 对象 |
equals(Object obj) | boolean | 将此对象与指定对象比较,如果调用该方法的对象与 obj 相等 则返回 true,否则返回 false |
System类
System类常用的成员方法
arraycopy()方法;一个可以实现数组复制的方法。
public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length)
src代表源数组,srcpos代表
原数组的起始位置,dest代表目标数组,destpos代表目标数组的起始位置。length代表复制的数据个数。
未完待续...