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

Wrapper包装类

包装类又叫封装类,Java的数据类型有两种,基础数据类型是基础的,从狭义的角度看它们不是面向对象的,在引用数据类型中,有八个引用数据类型对应了八个基础数据类型,这个八个引用数据类型就叫做基础数据类型的封装类。

封装类是final修饰的类,不能被继承。

1、包装类【掌握】

六个基础数据类型的封装类都是它们的首字母大写,只有int的封装类是Integer,char的封装类是Character。

基础数据类型包装类
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
charCharacter
booleanBoolean

2、自动装箱和自动拆箱【掌握】

基础数据类型和它的封装类是不同的数据类型,而且是两种体现,基础数据类型的封装类是不可以直接赋值的,但是从JDK5开始,优化了这部分开发的简便性,基础数据类型和它的封装类可以相互赋值。这个语法被称为自动装箱和拆箱。

public class testInteger {public static void main(String[] args) {/*基础数据类型赋值*/int i1 = 1;/*封装类赋值,用的是自动装箱*//*在JDK5之前版本,应用写成:*//*Integer i2 = new Integer(2);*//*否则报错*/Integer i2 = 2;/*封装类赋值,用的是自动装箱*/Integer i3 = i1;/*自动拆箱,将封装类赋值给基础数据类型*/i1 = i2;}
}

3、包装类的缓存分析【记忆】

Integer有缓存机制,这个缓存区的范围是byte的范围,在这个范围内的数据用基础数据类型表示,地址是相同的,超出范围会用封装类创建新的对象,地址就不相同了。

public static void testInt(){Integer i1 = 1;Integer i2 = 1;System.out.println("i1 == i2 --> " + (i1 == i2));System.out.println("i1.equals(i2) --> " + i1.equals(i2));Integer i3 = 1;Integer i4 = new Integer(1);System.out.println("i3 == i4 --> " + (i3 == i4));System.out.println("i3.equals(i4) --> " + i3.equals(i4));Integer i5 = 128;Integer i6 = 128;System.out.println("i5 == i6 --> " + (i5 == i6));System.out.println("i5.equals(i6) --> " + i5.equals(i6));
}
i1 == i2 --> true
i1.equals(i2) --> true
i3 == i4 --> false
i3.equals(i4) --> true
i5 == i6 --> false
i5.equals(i6) --> true

4、常用方法【记忆】

包装类的常用方法不多,实际工作中还是基础数据类型用的多,而包装类多应用在VO类中。

1、常用方法示例

public static void main(String[] args) {/*compareTo:只返回三个值:要么是0,-1,1*/Integer i1 = new Integer(6);Integer i2 = new Integer(12);System.out.println(i1.compareTo(i2));/*intValue() :作用将Integer--->int*/Integer i3 = 130;int i = i3.intValue();System.out.println(i);/*parseInt(String s) :String--->int:*/int i4 = Integer.parseInt("12");System.out.println(i4);/*toString:Integer--->String*/Integer i5 = 130;System.out.println(i5.toString());}

2、VO类

VO类有称为实体类,用于定义一个程序中管理的实体,例如学生成绩管理系统,可以定义一个Student类

public class Student{private String name;private Integer age;private Double height;
}
http://www.lryc.cn/news/493291.html

相关文章:

  • MySQL高级(六):全局锁、表锁和行锁
  • 【CLIP】3: semantic-text2image-search允许局域网访问
  • FPGA实现GTP光口视频转USB3.0传输,基于FT601+Aurora 8b/10b编解码架构,提供3套工程源码和技术支持
  • docker搭建nginx
  • Java 17的新特性及其对现代Java开发的影响
  • 【Flink】快速理解 FlinkCDC 2.0 原理
  • 使用R的数据包快速获取、调用各种地理数据
  • scrapy豆瓣爬虫增强-批量随机请求头
  • 基于华为昇腾910B,实战InternLM个人小助手认知微调
  • Electron文件写入、读取(作用:公共全局变量,本地存储)
  • 水体分割检测 包含YOLOV,COCO,VOC三种标记的数据集包含 857张图片
  • Harbor安装、HTTPS配置、修改端口后不可访问?
  • 正定矩阵(Positive Definite Matrix)的定义与性质
  • React与Ant Design入门指南
  • MAC卸载Vmware Fusion后无法再安装解决方案
  • 单点登录深入详解之技术方案总结
  • 数据库(MySQL黑马)
  • HTML5+JavaScript实现消消乐游戏
  • sin函数拟合
  • 设置Mysql5.6允许外网访问
  • 【随笔】一次JS和python中的MD5加密的记录
  • 力扣 二叉树的中序遍历
  • uniapp学习(010-3 实现H5和安卓打包上线)
  • 基于DHCP,ACL的通信
  • 金融租赁系统助力企业升级与风险管理的新篇章
  • linux安装部署mysql资料
  • 深入理解 MongoDB:一款灵活高效的 NoSQL 数据库
  • 爆改老旧笔记本---将笔记本改造为家用linux服务器
  • RocketMQ MQTT Windows10 环境启动
  • sd webui整合包怎么安装comfyui