java把大数据类型的包装类

1.八种基本类型的包装类

都用final修饰,最终类,不可被继承。


2.引入

在解决实际问题中,由于基本数据类型不是对象,所以处理起来比较困难,所以将其包装起来,包装成对象,先创建一个基本类型的类。


其实在java.lang 包(不需要导入)中存在八中数据类型的包装类。

3.封箱与拆箱

封箱:将一个基本数据类型的值 转换为对应的包装类的对象

方法一:Integer num1=new Integer(17);

方法二:Integer num2=Integer.valueOf(17); //推荐使用,带有缓存,速度快

拆箱:把包装类的对象,转换为对应的基本数据类型的值

int num3=num1.intValue();

在java5后提供了自动装箱和拆箱的操作

eg: Integer num1=17;

int num2=num1;

这是一个语法糖,在底层仍然是手动装箱和拆箱操作(装箱时用的是Integer.valueOf(17);方式)

联想:switch 支持byte,char int short 数据类型,现在也支持这四种对应的包装类

4.包装类的使用

4.1包装类中的常量

MAX_VALUE /MIN_VALUE :该类型的最大值,最小值

SIZE 该数据类型的位数(一个字节8位)

TYPE 该数据类型对应的基本数据类型


4.1包装类的构造器(2种)以Integer为例

作用:创建包装类的对象

Integer(int num){}

Integer( String num) {} //chatacter除外,只能包含一个字符

4.2基本类型和包装类型对象的转换

基本类型->包装类型对象:装箱

Integer num=Integer.valueOf(17).;

包装类型对象->基本类型:拆箱

6个数类型的转换:byte,int,short,long,double,float;

在基本类型中有这6个继承于Number的转换方法:intValue(), byteValue(),

shortValue(), longValue(), doubleValue() ,floatValue().


4.String和基本数据 /包装类型的转换

String->包装类型对象

方式一:Integer num1=Integer.valueOf("12324");

方式二:Integer num1=new Integer("12324");

注意:传递的字符串必须是数字

如果是Boolean类型的,对于传入的字符串,底层只认 “ture” ,"TURE" ,其余传入的任何字符串都为false

包装类型对象->String

String str=任何对象 . toString();

基本类型->String

String str=17+" "; //任何数据与字符串连接都是字符串;

String=String.valueOf(int 17);

String->基本类型

基本类型对应的包装类中的方法parseXxx()

int num=Integer.parseInt(str);

5.包装类中的缓存设计

在底层,如果进行手动装箱


Byte,Short,Long,Integer :-127_128

Charactar: 0_127

所以在缓存区间内的比较才是比较其数值,而不是地址,如果超过范围,则比较地址。

为了保证比较值而不比较地址,所以用Object中的equals()方法(其原始意义也是比较地址),官方建议,子类必须重写equals()方法,比较我们想比较的数值,所以在包装类中的equals()方法,比较的是包装的数据

结论:包装类型的数据通通用equals()方法进行比较。



6.Integer优于int的地方

默认值

.Integer:null ;      int: 0;

集合框架中,只能存在对象类型,不存在基本类型

方法中的基本变量主要存在于栈中,包装类型,存在于堆中。且八大包装类型都是由final修饰

谢谢阅读!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值