当前位置: 首页 > 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
http://www.lqws.cn/news/546913.html

相关文章:

  • 26考研|数学分析:隐函数定理及其应用
  • 官方App Store,直链下载macOS ,无需Apple ID,macOS10.10以上.
  • php flush实时输出线上环境好使,本地环境等待一段时间后一次性输出结果的原因
  • 跨芯片 AI 算子库 FlagGems 正式加入PyTorch 基金会生态项目体系
  • MyBatis中的SQL理解
  • uniappx 安卓app项目本地打包运行,腾讯地图报错:‘鉴权失败,请检查你的key‘
  • Unity性能优化-渲染模块(1)-CPU侧(1)-优化方向
  • 基于springboot的火锅店点餐系统
  • 分布式存储架构的优势
  • 河北对口计算机高考C#笔记(2026高考适用)---完结版~~~~
  • GPS不只是导航,实时定位追踪系统如何玩转智能时代?
  • 深度学习框架入门指南:PyTorch 核心实战
  • 第N5周:Pytorch文本分类入门
  • 使用GDAL库统计不同分区内的灾害点分布情况,计算灾害相对密度等统计指标
  • Spring Boot 3.2.11 Swagger版本推荐
  • Python 数据分析与可视化 Day 9 - 缺失值与异常值处理技巧
  • 从0到100:房产中介小程序开发笔记(中)
  • css去掉换行小工具 去掉css换行 style样式去掉换行
  • flink同步kafka到paimon,doris加速查询
  • 大数据赋能智能家居:打造你贴心的“数字管家”
  • 飞往大厂梦之算法提升-day09
  • ssh -T git@github.com失败后解决方案
  • Google机器学习实践指南(逻辑回归损失函数)
  • RabitQ 量化:既省内存又提性能
  • 华为云Flexus+DeepSeek征文 | 基于华为云ModelArts Studio平台搭建AI Markdown编辑器
  • 【iSAQB软件架构】四大架构视图利益相关者
  • 【开源项目】「安卓原生3D开源渲染引擎」:Sceneform‑EQR
  • 机器学习6——线性分类函数
  • PHP「Not enough Memory」实战排错笔记
  • 小程序 API 开发手册:从入门到高级应用一网打尽