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

Java——包装类

目录

3.5 包装类


3.5 包装类

有时需要把基本类型转换为对象。所有基本类型都有一个与之对应的类。这些类称为包装器/类。这些类是不可变类,即一旦构造了包装器/类,就不允许改变包装在其中的值。其次包装类还是final,不用可以被继承。
为什么要有包装类:类当中可以定义方法,用于操作数据。基本数据类型没有操作数据的能力。所以这时候需要包装类。包装类是对基本数据类型的一个补充。

1、基本数据类型和包装类的对应关系:

2、int Integer String 之间的装换

  • int -> Integer:new Integer(int value) ; Integer.valueOf(int i)返回一个Integer型的对象。
  • Integer -> int:intValue() 返回 Integer 对象所包装的 int 值。
  • Integer ->String:toString() 返回表示该 Integer 对象数值的字符串。
  • String -> Integer:new Integer(String s)返回一个 Integer 对象,此对象包装了由字符串解析得到的 int 值。
  • int -> String:String.valueOf(int i) 返回表示该 int 值的字符串。
  • String -> int:Integer.parseInt(String s)返回表示该 int 值的字符串。
public class ConversionExample {public static void main(String[] args) {// int -> Integerint num = 10;Integer integerObj1 = new Integer(num);Integer integerObj2 = Integer.valueOf(num);// Integer -> intint numFromInteger = integerObj1.intValue();// Integer -> StringString strFromInteger = integerObj1.toString();// String -> IntegerString str = "20";Integer integerObj3 = new Integer(str);// int -> StringString strFromInt = String.valueOf(num);// String -> intint numFromString = Integer.parseInt(str);}
}

3、装箱:基本类型 -> 包装

int a = 10;
Integer i = Integer.valueOf(a);
Integer j = new Integer(a);

4、拆箱:包装类 -> 基本类型

Integer k = new Integer(10);
int b = k.intValue();

5、自动装箱:

int c = 20;
Integer p_auto = c;
Integer m = 100;

6、自动拆箱:

Integer l = new Integer(10);
int d_auto = l;
  1. 7、128陷阱
  2. 例子:

    num1取值在 [-128 , 127] 是true,否则false。因为Integer设置了缓存数组(缓存 [-128 , 127] 之间的所有整数,Integer型的数组)。如果自动装箱的数在 [-128 , 127] 之间,就直接返回缓存中的对象。否则,就会new一个对象。

  3. Integer num1 = 120;
    Integer num2 = 120;
    System.out.println(num1==num2);//true,指向同一个内存空间
    Integer num3 = new Integer(100);
    Integer num4 = new Integer(100);
    System.out.println(num3==num4);//false
    Integer num1 = 150;
    Integer num2 = 150;
    System.out.println(num1==num2);//flase
    Integer num3 = new Integer(100);
    Integer num4 = new Integer(100);
    System.out.println(num3==num4);//false

    8.使用==判断包转类和基本数据类型是否相等时,包装类会自动拆箱,变成基本数据类型。此时,比较值是否相等。
    9.包装类的 equals() 方法会比较对象的实际值(通过显式方法调用),而非引用。
    例子:

http://www.xdnf.cn/news/4874.html

相关文章:

  • (三)毛子整洁架构(Infrastructure层/DapperHelper/乐观锁)
  • vue内写websocket实时订阅
  • 【分享】KK/BD/XL等六大不限速下载
  • Spring Boot中的拦截器!
  • [计算机科学#12]:高级编程语言基本元素,迅速上手编程
  • 制造单元智能化改造与集成技术平台成套实训设备
  • 数据分析怎么做?高效的数据分析方法有哪些?
  • VB.NET Line Input有办法让输入的字符不显示在控制台上吗
  • Flutter 3.29.3 花屏问题记录
  • IBM BAW(原BPM升级版)使用教程第六讲
  • 一、每日Github软件分享----QuickGo外链直达工具​
  • 力扣刷题(第二十一天)
  • 涨薪技术|0到1学会性能测试第56课- 堆与栈、GC回收机制
  • 如何使用测试软件 Jmeter
  • 检查当前 Docker 使用的 默认运行时(default runtime)方法
  • mysql主从同步
  • Docker组件详解:核心技术与架构分析
  • 三维底座+智能应用,重构城市治理未来
  • WorkManager与Kotlin后台任务调度指南
  • 牛客练习赛138-题解
  • leetcode 383. Ransom Note
  • 开源AI对比--dify、n8n
  • 记录一下学习kafka的使用以及思路
  • Windows远程访问Ubuntu的方法
  • zst-2001 历年真题 设计模式
  • 多视图密集对应学习:细粒度3D分割的自监督革命
  • 使用PyTorch训练马里奥强化学习代理的完整指南
  • 系统思考:短期困境与长期收益
  • Webpack基本用法学习总结
  • Vue3 + Typescript 基础进阶与实战完全指南