Wrapper包装类

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

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

1、包装类【掌握】

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

基础数据类型 包装类
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean

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

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

java 复制代码
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的范围,在这个范围内的数据用基础数据类型表示,地址是相同的,超出范围会用封装类创建新的对象,地址就不相同了。

java 复制代码
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、常用方法示例

java 复制代码
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类

java 复制代码
public class Student{
    private String name;
    private Integer age;
    private Double height;
}
相关推荐
好吃的肘子17 分钟前
MongoDB 应用实战
大数据·开发语言·数据库·算法·mongodb·全文检索
ghost14320 分钟前
C#学习第23天:面向对象设计模式
开发语言·学习·设计模式·c#
小白学大数据21 分钟前
Scrapy框架下地图爬虫的进度监控与优化策略
开发语言·爬虫·python·scrapy·数据分析
立秋678927 分钟前
用Python绘制梦幻星空
开发语言·python·pygame
可乐加.糖29 分钟前
项目版本管理和Git分支管理方案
java·git·目标跟踪·gitlab·敏捷流程·源代码管理
明月看潮生1 小时前
青少年编程与数学 02-019 Rust 编程基础 16课题、包、单元包及模块
开发语言·青少年编程·rust·编程与数学
wowocpp1 小时前
spring boot Controller 和 RestController 的区别
java·spring boot·后端
后青春期的诗go1 小时前
基于Rust语言的Rocket框架和Sqlx库开发WebAPI项目记录(二)
开发语言·后端·rust·rocket框架
草莓熊Lotso1 小时前
【C语言字符函数和字符串函数(一)】--字符分类函数,字符转换函数,strlen,strcpy,strcat函数的使用和模拟实现
c语言·开发语言·经验分享·笔记·其他
盛夏绽放1 小时前
Python字符串常用内置函数详解
服务器·开发语言·python