强哥说Java--Java包装类

包装类可以分为 3 类:NumberCharacterBoolean,包装类的架构图如下所示:

img

2. 为什么需要包装类


我们知道 Java 是面向对象的编程语言,但为了便于开发者上手,Java 沿用了 C 语言的基本数据类型,因此 Java 数据类型被分为了基本数据类型和引用数据类型。

对于简单的运算,开发者可以直接使用基本数据类型。但对于需要对象化交互的场景(例如将基本数据类型存入集合中),就需要将基本数据类型封装成 Java 对象,这是因为基本数据类型不具备对象的一些特征,没有对象的属性和方法,也不能使用面向对象的编程思想来组织代码。出于这个原因,包装类就产生了。

包装类就是一个类,因此它有属性、方法,可以对象化交互。

3. 基本数据类型与包装类


下表列出了基本数据类型对应的包装类。这些包装类都位于 java.lang 包下,因此使用包装类时,我们不需要手动引入。

| 基本数据类型 | 对应的包装类 |

| :-- | :-- |

| byte | Byte |

| short | Short |

| int | Integer |

| long | Long |

| float | Float |

| double | Double |

| char | Character |

| boolean | Boolean |

除了 int 对应的包装类名称为 Integer 以及 char 对应的包装类名称 Character,其他 6 种数据类型对应的包装类,命名都为其基本数据类型的首字母的大写。

4. 包装类常用方法


4.1 Number 类

Number 类是所有数值类型包装类的父类,这里以其中一个子类 Integer 类为例,介绍其构造方法、常用方法以及常量。

4.1.1 构造方法

Integer 类提供两个构造方法:

  1. Integer(int value):以 int 型变量作为参数创建 Integer 对象;

  2. Integer(String s):以 String 型变量作为参数创建 Integer 对象。

实例如下:

package com.caq.exception;

public class Test2 {

public static void main(String[] args) {

//以int变量为参数创建对象

Integer integer = new Integer(3);

//以字符串类型作为参数创建对象

Integer integer1 = new Integer(“5”);

}

}

4.1.2 常用方法
  • byte byteValue():以 byte 类型返回该 Integer 的值;

  • int compareTo(Integer1 Integer2):在数值上比较两个 Integer 对象。如果这两个值相等,则返回 0;如果调用对象的数值小于 Integer2 的数值,则返回负值;如果调用对象的数值大于 Integer2的数值,则返回正值;

  • boolean equals(Object obj):比较此对象与指定对象是否相等;

  • int intValue():以 int 类型返回此 Integer 对象;

  • int shortValue():以 short 类型返回此 Integer 对象;

  • toString():返回一个表示该 Integer 值的 String 对象;

  • static Integer valueOf(String str):返回保存指定的 String 值的 Integer 对 象;

  • int parseInt(String str):返回包含在由 str 指定的字符串中的数字的等价整数值。

4.1.3 常用常量
  1. MAX_VALUE: 表示 int 型可取的最大值;

  2. MIN_VALUE: 表示 int 型可取的最小值;

  3. SIZE:表示以二进制补码形式表示 int 值的位数;

  4. TYPE: 表示基本类型 Class 实例。

package com.caq.exception;

public class Test2 {

public static void main(String[] args) {

int a = Integer.MAX_VALUE;

int b = Integer.MIN_VALUE;

int c = Integer.SIZE;

System.out.println(“int类型可取的MAX_VALUE是”+a);

System.out.println(“int类型可取的MIN_VALUE是”+b);

System.out.println(“int类型可取的二进制位数是”+c);

}

}

运行结果:

int类型可取的MAX_VALUE是2147483647

int类型可取的MIN_VALUE是-2147483648

int类型可取的二进制位数是32

4.2 Character 类

Character 类在对象中包装一个基本类型为 char 的值。一个 Character 对象包含类型为 char 的单个字段。

4.2.1 构造方法

Character 类提供了一个构造方法:

Character(char value):很少使用。

4.2.2 常用方法
  • char charValue():返回此 Character 对象的值;

  • int compareTo(Character anotherCharacter):返回此 Character 对象的值,根据数字比较两个 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):判断指定字符是否是小写字符。

4.3 Boolean 类

Boolean 类将基本类型为 boolean 的值包装在一个对象中。一个 Boolean 类型的对象只包含一个类型为 boolean 的字段。此外,此类还为 boolean 和 String 的相互转换提供了许多方法,并提供了处理 boolean 时非常有用的其他一些常量和方法。

4.3.1 构造方法

Boolean 类提供了如下两个构造方法:

  1. Boolean(boolean value):创建一个表示 value 参数的 boolean 对象(很少使用);

  2. Boolean(String s):以 String 变量作为参数,创建 boolean 对象。此时,如果传入的字符串不为 null,且忽略大小写后的内容等于 “true”,则生成 Boolean 对象值为 true,反之为 false。(很少使用)。

4.3.2 常用方法
  • boolean booleanValue():将 Boolean 对象的值以对应的 boolean 值返回;

  • boolean equals(Object obj):判断调用该方法的对象与 obj 是否相等,当且仅当参数不是 null,而且与调用该方法的对象一样都表示同一个 boolean 值的 Boolean 对象时, 才返回 true;

  • boolean parseBoolean(Sting):将字符串参数解析为 boolean 值;

  • String toString():返回表示该 boolean 值的 String 对象;

  • boolean valueOf(String s):返回一个用指定的字符串表示值的 boolean 值。

4.3.3 常用常量
  • TRUE:对应基值 true 的 Boolean 对象;

  • FALSR:对应基值 false 的 Boolean 对象;

  • TYPE:表示基本类型 Class 实例。

5. 装箱和拆箱


  1. 装箱就是基本数据类型向包装类转换;

  2. 拆箱就是包装类向基本数据类型转换。

  3. 装箱和拆箱又有自动和手动之分。

package com.caq.exception;

//java.lang包是java语言的核心,它提供了java中的基础类。

// 包括基本Object类、Class类、String类、基本类型的包装类、基本的数学类等等最基本的类。

//lang包中的类的应用不需要手动import。

public class Test2 {

public static void main(String[] args) {

//自动装箱

int num1 = 10;

Integer num2 = num1;

System.out.println(num2);

//手动装箱

Integer num3 = new Integer(10);

System.out.println(num3);

}

}

10

10

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

最后

由于细节内容实在太多了,为了不影响文章的观赏性,只截出了一部分知识点大致的介绍一下,每个小节点里面都有更细化的内容!

小编准备了一份Java进阶学习路线图(Xmind)以及来年金三银四必备的一份《Java面试必备指南》

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
71a72faed303032d36.jpg" alt=“img” style=“zoom: 33%;” />

最后

由于细节内容实在太多了,为了不影响文章的观赏性,只截出了一部分知识点大致的介绍一下,每个小节点里面都有更细化的内容!

[外链图片转存中…(img-XWgH0OiV-1713678830466)]

小编准备了一份Java进阶学习路线图(Xmind)以及来年金三银四必备的一份《Java面试必备指南》

[外链图片转存中…(img-VDAt4iD1-1713678830466)]

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

  • 19
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值