[♡作者主页♡] :小黎的培培笔录
[♡作者介绍♡] :大一小白,专注于Java领域的创作,认证:华为云-云享专家、阿里云-云享专家、阿里云星级博主。
目录
一、基本介绍
1、什么是包装类
2、基本分类
3、拆箱与装箱
二、Integer 类
1、基本介绍
2、常用方法
3、常量
三、Boolean 类
四、Byte 类
五、Double 类
五、Character 类
一、基本介绍
1、什么是包装类
▶ Java中的基本数据类型是没有方法和属性的,使用基本数据类型在于效率,然而很多情况,会创建对象来使用,因为对象可以做更多的功能。于是Java设计者为了实现对象化交互,设计了包装类,而包装类就是为了让这些拥有方法和属性。
▶ Java提供了两种类型的系统,基本类型与引用类型,如果想要我们的基本类型像对象一样操作,就可以使用基本类型对应的包装类,其中数值型包装类都继承至 Number类,而字符型和布尔型继承至 Object类。其实这些类就是封装不同的数据类型,其中包含的方法基本相同。
2、基本分类
基本数据类型 | 包装类 |
boolean | Boolean |
char | Character |
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
3、拆箱与装箱
€€ 基本概述:
▶ 基本类型与对应的包装类对象之间,来回转换的过程称为”装箱“与”拆箱“,
解释:
>﹥ 装箱:从基本类型转换为对应的包装类对象。
>﹥ 拆箱:从包装类对象转换为对应的基本类型。
▶ 注意:
>﹥ jdk5 前,是手动装箱和拆箱
>﹥ jdk5 后,就可以自动装箱和自动拆箱
€€ int ← 相互转换 → Integer ==》代码示例:
//手动装箱 int->Integer
Integer integer = new Integer(100); //使用构造函数
Integer integer1 = Integer.valueOf(100); //使用包装类中的valueOf方法
//手动拆箱 Integer -> int
int i = integer.intValue(); //使用intValue()方法
//自动装箱 int->Integer
Integer integer2 = 100; //底层使用的是 Integer.valueOf(n2)
//自动拆箱 Integer->int
int n3 = integer2; //底层仍然使用的是 intValue()方法
Integer io = 1;//自动装箱,相当于Integer io = Integer.valueOf(4);
//等号右边:将i对象转成基本数值(自动拆箱) io.intValue() + 1;
io = io + 1;
//加法运算完成后,再次自动装箱,把基本数值转成对象。
€€ 三目运算符的细节:
Object obj1 = true ?new Integer(1) : new Double(2.0);
培培解析:此处为真,和很多人肯定毫无疑问的直接说结果为 1 ,然而却是错的,因为三目运算符会自动提高精度,即由 int 转成 double ,所以输出结果为 1.0 。
€€ 包装类和String类型相互转换:
~包装类(Integer)转成String的三种方式
Integer io = 100; //自动装箱
//第一种方式,加空字符串
String str1 = io + "";
//第二种方式,调用toString方法
String str2 = io.toString();
//第三种方式,调用valueOf(i)
String str3 = String.valueOf(i);
~String 转换成 包装类(Integer)
String str = "12345";
//方法1:使用到自动装箱,通过Integer静态方法parseInt()进行转换
Integer i1 = Integer.parseInt(str);
//方法2:构造器
Integer i2 = new Integer(str);
//方式3:String --﹥ Integer --﹥ int
Integer i3 = Integer.valueOf(str);
int i4= i3.intValue(); //调用的方法:public int intValue()
二、Integer 类
1、基本介绍
▶ 概述:
Integer 类在对象中包装了一个基本类型 int 的值。该类的对象包含一个 int 类型的字段。该类提供了多种方法,能在int 类型和String 类型之间进行转换,同时还提供了处理int
类型时常用的常量和方法。
▶ 构造方法:
▷ Integer(int number): 该方法以一个int型变量作为参数来获取Ineger 对象。
代码示例:
Integer number = new Integer (3) ;
▷ Integer(String str): 该方法以一 个String型变量作为参数来获取Integer对象。(注意:要用数值类型String型变量作为参数,否则会抛出NumberFormatException异常)
代码示例:
Integer number = new Integer ("3");
2、常用方法
方法 | 功能描述 |
byteValue() | 以byte类型返回该Integer的值 |
Int compareTo(Integer anotherinteger) | 在数字上比较两个Integer对象。如果这两个值相等,则返回0;如果调用对象的数值小于anothertnteger的数值,则返回负值:如果调用对象的数值大于anotherInteger的数值,则返回正值 |
boolean equals(Object IntegerObj) | 比较此对象与指定的对象是否相等 |
int intValue() | 以int型返回此Integer对象 |
short shortValue() | 以short型返回此Integer对象 |
String toString() | 返回一个表示该Integer值的String对象 |
Integer valueOf(String str) | 返回保存指定的String 值的Integer 对象 |
int parseInt(String str) | 返回包含在由str指定的字符串中的数字的等价整数值 |
3、常量
▷ MAX_VALUE: 表示int类型可取的最大值。
▷ MIN_VALUE: 表示int类型可取的最小值。
▷ SIZE: 用来以二进制补码形式表示int 值的位数。
▷ TYPE: 表示基本类型int的Class实例。
//返回最小值
System.out.println(Integer.MIN_VALUE);
//返回最大值
System.out.println(Integer.MAX_VALUE);
三、Boolean 类
1、构造方法:
▶ Boolean(boolean value): 该方法创建个 表示value参数的Boolean对象。
代码示例:
Boolean b = new Boolean (true) ;
▶ Boolean(String str): 该方法以String变量作为参数创建Boolean对象。如果String 参数不为null,且在忽略大小写时等于true,则分配一个表示true值的Boolean对象;否则获得一个false 值的Boolean对象。
代码示例:
Boolean bool = new Boolean ("Java");
2、常用方法:
方法 | 功能描述 |
boolean booleanValue() | 将Boolean对象的值以对应的boolean值返回 |
boolean equals(Object obj) | 判断调用该方法的对象与obj 是否相等。当且仅当参数不是null, 而且与调用该方法的对象一样都表示同一个Boolean值的boolean对象时,才返回true |
boolean parseBoolean(String s) | 将字符串参数解析为boolean值 |
String toString() | 返回表示该布尔值的String对象 |
Boolean valueOf(String s) | 返回一个用指定的字符串表示值的boolean值 |
3、常量:
▷ TRUE: 对应基值true的Boolean对象。
▷ FALSE: 对应基值false的Boolean对象。
▷ TYPE: 基本类型boolean的Class对象。
四、Byte 类
1、构造方法
▶ Byte(byte value):通过这种方法创建的Byte对象,可表示指定的byte值。
代码示例:
byte mybyte = 4;
Byte b = new Byte (mybyte);
▶ Byte(String str):通过这种方法创建的Byte 对象,可表示String参数所指示的byte值。
代码示例:
Byte mybyte = new Byte ("4");
2、常用方法
方法 | 功能描述 |
byte byteValue() | 以一个byte值返回Byte对象 |
int compare To(Byte anotherByte) | 在数字上比较两个Byte对象 |
double doubleValue() | 以一个double值返回此Byte的值 |
Int intValue() | 以一个int值返回此Byte的值 |
byte parseByte(String s) | 将String型参数解析成等价的字节(byte) 形式 |
String toString() | 返回表示此Byte的值的String对象 |
Byte valueOf(String str) | 返回一个保持指定String所给出的值的Byte对象 |
boolean equals(Object obj) | 将此对象与指定对象比较,如果调用该方法的对象与obj相等,则返回true;否则返回false |
3、常量
▷ MIN_VALUE: byte类型可取的最小值。
▷ MAX_VALUE: byte类型可取的最大值。
▷ SIZE: 用于以二进制补码形式表示 byte 值的位数。
▷ TYPE: 表示基本类型 byte 的 Class实例。
五、Double 类
1、构造方法
▶ Double(double value): 基于 double参数创建Double类对象。
▶ Double(Sring str): 构造一个新分配的 Double对象,表示用字符串表示的double类
型的浮点值。
2、常用方法
方法 | 功能描述 |
byte byteValue() | 以 byte 形式返回 Double对象值(通过强制类型转换) |
int compareTo(Double d) | 对两个 Double 对象进行数值比较。如果两个值相等,则返回0;如果调用对象的数值小于d的数值,则返回负值;如果调用对象的数值大于d的值,则返回正值 |
boolean equals(Object obj) | 将此对象与指定的对象相比较 |
int intValue() | 以 int 形式返回 double 值 |
boolean isNaN() | 如果此 double值是非数字(NaN)值,则返回 tue;否则返回 false |
String toString() | 返回此 Double 对象的字符串表示形式 |
Double valueOf(String str) | 返回保存用参数字符串str表示的 double值的 Double 对象 |
double doubleValue() | 以 double形式返回此 Double 对象 |
long long Value() | 以 long形式返回此 double 的值(强制转换为 long类型) |
3、常量
▷ MAX_EXPONENT : 返回int值,表示有限double变量可能具有的最大指数。
▷ MIN_EXPONENT : 返回int值,表示标准化double变量可能具有的最小指数。
▷ NEGATIVE_INFINITY : 返回double值,表示保存double类型的负无穷大值的常量。
▷ POSITIVE_INFINITY : 返回double值,表示保存double类型的正无穷大值的常量。
五、Character 类
1、构造方法
▶ Character (char value): 该类的构造方法的参数必须是一一个 char类型的数据。通过该构造方法创建的Character类对象包含由char类型参数提供的值。一日Character类被创建,它包含的数值就不能改变了。
代码示例:
Character mychar = new Character('s');
2、常用方法
方法 | 功能描述 |
char charvalue() | 返回此Character对象的值 |
int compareTo(Character anotherCharacter) | 根据数字比较两个Character对象,若这两个对象相等则返回0 |
Boolean equals(Object obj) | 将调用该方法的对象与指定的对象相比较 |
char toUpperCase(char ch) | 将字符参数转换为大写 |
char toLowerCase(char ch) | 将字符参数转换为小写 |
String toString() | 返回一个表示指定char值的String对象 |
char charValue() | 返回此Character对象的值 |
boolean isUpperCase(char ch) | 判断指定字符是否是大写字符 |
boolean isLowerCase(char ch) | 判断指定字符是否是小写字符 |
3、常量
▷ CONNECTOR_PUNCTUATION : 返回byte型值,表示Unicode规范中的常规类别"Pc”。
▷ UNASSIGNED : 返回byte型值,表示Unicode规范中的常规类别“Cn”。
▷ TITLECASE_LETTER : 返回byte型值,表示Unicode规范中的常规类别“Lt”。