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

Java中的包装类

基本数据类型的豪华版---包装类

  • 基本数据类型
  • 包装类

基本数据类型

在我们刚开始学习Java的时候,我们学习的应该就是Java中的八种基本数据类型:
byte short int long float double char boolean
当时我们还说过Java是面向对象编程的语言,一切皆对象,但是受到当时知识的限制,我们还是没有办法把一个数据当成一个对象来操作,当时我就跟兄弟们说了,不要着急,Java中八种基本数据类型都会有其对应的包装类,今天我就来给兄弟们盘一盘包装类!

包装类

首先我们要知道,包装类是八种基本数据类型的升级版,也只有这八种数据类型才有其对应的包装类,我们只要记住int的包装类是Integer以及char的包装类是Character就行,其他的直接是首字母大写!

        int a=10;
        Integer A=a;(自动装箱/)隐式的
        int b=A;

这里编译器是可以运行的,因为Integerint的包装类,所以这两者之间才可以相互转化的,在底层我们可以看到的是Java会自动给你调用一个valueOf( )方法,也就是说自动装箱的原理实际上就是调用了这个方法:

        Integer A=Integer.valueOf(a);
        int b=A.intValue()

看到此情此景,兄弟们心中是否有一点感受?
为什么我们要这个包装类呢?
是不是当我们把基本数据类型给包装成一个类之后,我们势必可以在这个类中写一些成员变量,更可以写一些成员方法,就比如这个Integer.valueOf 我们可以明显感觉到,这一定是一个静态方法,不然不可能可以直接通过类名进行调用:
在这里插入图片描述
果不其然!
而且通过一些猜想加实践,我们可以知道的是每一个包装类都有类似的性质,里面都会有valueOf方法,而且用哪个包装类.出来的valueOf最终就会变成哪个类型的.
小题目:

Integer a = 1;
Integer b = 1;
Integer c = 555;
Integer d = 555;
System.out.println(a == b);
System.out.println(c == d);

请问a和b c和d相等吗?
在这里插入图片描述
为什么这里一个相等一个不等呢?
知其然,知其所以然!我们在这个程序中,只执行了一个操作:装箱,那我们就去看看装箱的过程中发生了什么呗!
在这里插入图片描述
看到这个源码我们就不难理解为什么会有刚才的现象了,如果我们要装箱的这个数字在一个范围之内,那我们里外里返回的都将是数组里面的,也就是现成的东西,但是如果,如果超过了这个限制,那不好意思,我们就要重新new一个对象了,而我们知道,引用类型比较比较的向来都是地址,两个不同的对象地址当然不同啦!!

这就是关于包装类我目前能够分享给大家的知识,希望能够帮助到大家.
百年大道,你我共勉!

相关文章:

  • ITIL 问题管理综合指南
  • 广告业务系统 之 业务串联 —— “ PDB - 广告投放【保量保价】”
  • 【初阶数据结构】——写了将近 5 万字,终于把 二叉树 初阶的内容讲清楚了
  • centos8 Ambari-2.7.6.3+HDP-3.3.1离线安装详细教程(附安装包)
  • 如何进行apk反编译?
  • 基于keras构建lstm模型自动生成音乐(完整项目代码+数据)
  • 搞技术的要不要学习财务知识
  • Allegro如何灌铜操作指导
  • C语言电话号码查询系统[2023-01-16]
  • Go语言条件语句
  • 【C++】类和对象【下篇】--初始化列表,static成员,友元,内部类,匿名对象
  • vue3中常用的指令之v-bind和v-on
  • 通达信交易接口怎么实现策略选股?
  • 基于机器学习算法svm、xgb、lgb的购房贷款违约预测实战
  • Oracle中的双引号与单引号
  • 【Redis】使用阻塞队列+Redis优化秒杀业务
  • Android 深入系统完全讲解(20)
  • 装修--避坑--换窗户
  • TryHackMe-Minotaur‘s_Labyrinth
  • 【RabbitMQ】高级篇,学习纪录+笔记