当前位置: 首页 > news >正文

[1-01-01].第27节:常用类 - 包装类

Java基础语法学习大纲


一、包装类是什么:

  • 1.为了方便开发,Java为8种基本数据类型分别又提供了对应的包装类包装类都是引用数据类型
  • 2.对于8种基本数据类型对应的包装类分别是:
    • byte:java.lang.Byte
    • short:java.lang.Short
    • int:java.lang.Integer
    • long:java.lang.Long
    • float:java.lang.Float
    • double:java.lang.Double
    • boolean:java.lang.Boolean
    • char:java.lang.Character

二、Number类说明:

  • 包装类中的6个数字类型都继承了Number类: Byte、Short、Integer、Long、Float、Double都继承了Number类,因此这些类中都有以下这些方法:
    在这里插入图片描述
  • 这些方法的作用就是将包装类型的数据转换为基本数据类型
  • 包装类转换成基本数据类型的过程我们称为:拆箱 unboxing
    • Boolean的拆箱方法:booleanValue();
    • Character的拆箱方法:charValue();

三、介绍Integer类:

3.1.Integer类的属性:

在这里插入图片描述

  • 由API文档,可以看到通过IntegerInteger类中定义的属性,如提供了常量可以获取int的最大值和最小值
    • 最大值:Integer.MAX_VALUE
    • 最小值:Integer.MIN_VALUE
  • 当然,其它5个数字包装类也有对应的常量:
    • byte最大值:Byte.MAX_VALUE
    • byte最小值:Byte.MIN_VALUE
    • short最大值:Short.MAX_VALUE
    • short最小值:Short.MIN_VALUE
  • 代码测试:
    在这里插入图片描述

3.2.Integer的构造方法

在这里插入图片描述

  • Integer(int value):Java9之后标记已过时,不建议使用
    • 该构造方法可以将基本数据类型转换成包装类。这个过程我们称为装箱boxing
  • Integer(String s):Java9之后标记已过时,不建议使用
    • 该构造方法可以将字符串数字转换成包装类
    • 字符串必须是整数数字,如果不是会出现异常:NumberFormatException
  • 其它包装类的构造方法也是如此,例如Boolean的构造方法
    • Boolean(boolean value)
    • Boolean(String s)

3.3.Integer的常用方法

  • static int compare(int x, int y); 比较大小
    在这里插入图片描述
  • static int max(int a, int b); 最大值
  • static int min(int a, int b); 最小值
    在这里插入图片描述
  • static int parseInt(String s); 将字符串数字转换成数字类型。其它包装类也有这个方法:Double.parseDouble(String s)
    在这里插入图片描述
  • static String toBinaryString(int i); 获取数字二进制的字符串表示形式
  • static String toHexString(int i); 获取数字十六进制的字符串表示形式
  • static String toOctalString(int i); 获取数字八进制的字符串表示形式
    在这里插入图片描述
  • int compareTo(Integer anotherInteger); 比较大小,可见实现了Comparable接口
  • boolean equals(Object obj); 包装类已经重写了equals()方法
  • String toString(); 包装类已经重写了toString()方法
  • int intValue(); 将包装类拆箱为基本数据类型
  • static String toString(int i); 将基本数据类型转换成字符串
  • static Integer valueOf(int i); 将基本数据类型转换成Integer
  • static Integer valueOf(String s) 将字符串转换成Integer(这个字符串必须是数字字符串才行,不然出现NumberFormatException)

四、类型转换:

4.1.String、int、Integer三种类型之间的互相转换(String,double,Double转换原理相同)

在这里插入图片描述


4.2.代码测试:

String - > int

在这里插入图片描述

String - > Integer:

在这里插入图片描述

int - > Integer:

在这里插入图片描述


五、Java5新特性:自动装箱和自动拆箱

5.1.概念:

Java5之后为了开发方便,引入了新特性:自动拆箱和自动装箱

  • 自动装箱::Integer a = 10000; //程序在编译的时候,底层实际进行的是Integer a = new Integer(1000)
  • 自动拆箱:int b = a; System.out.println(a + 1); 这里的a也会做自动拆箱

5.2.注意空指针异常:

  • 以下代码出现空指针异常的原因是a在进行自动拆箱时,会调用 a.intValue()方法,因为a是null,访问实例方法会出现空指针异常,因此使用时应注意
Integer a = null;
System.out.println(a + 1);

在这里插入图片描述


5.3.整数型常量池

  • [-128 ~ 127] : Java为这个区间的Integer对象创建了整数型常量池
  • 也就是说如果整数没有超出范围的话,直接从整数型常量池获取Integer对象
  • 以下是一个面试题:请说出它的输出结果:
Integer x = 128;
Integer y = 128;
System.out.println(x == y); // false
Integer a = 127;
Integer b = 127;
System.out.println(a == b); // true

相关文章:

  • 大模型证书
  • 16.2 Docker多阶段构建实战:LanguageMentor镜像瘦身40%,支持500+并发1.2秒响应!
  • LLaMA-Factory 对 omnisql 进行 ppo dpo grpo nl2sql任务 实现难度 时间 全面对比
  • 系统学习 Android 的 进程管理、内存管理、音频管理
  • 虚拟机远程连接编译部署QT程序
  • canvas面试题200道
  • 霸王餐系统
  • 数据源简单配置应用
  • GO 语言学习 之 语句块
  • 第N5周:Pytorch文本分类入门
  • Windows11系统上安装WM虚拟机及Ubuntu 22.04系统
  • 地址簇与数据序列
  • SpringCloud系列(38)--SpringCloud Gateway实现动态路由
  • SYSCFG 时钟在 GD32F4 系列微控制器中的作用
  • 升级 PowerShell 7
  • elastic-ai.creator开源程序是设计、训练和生成专门针对 FPGA 优化的神经网络
  • 基于 Java+MySQL实现TCP聊天工具
  • MySQL 基线核查实录:标准化配置与命令验证全解析
  • (LeetCode 面试经典 150 题 ) 238. 除自身以外数组的乘积 (前缀和)
  • 考取华为HCIE-AI有什么用?