java常用类: Ineteger等包装类

java常用类型:
Ineteger等包装类
String类,StringBuffer类和StringBuilder类
Math类及常用方法
System类及常用方法
Arrays类及常用方法
BigInteger类和BigDecimal类及常用方法
日期类Date类,Calender类和LocalDateTime类

引言

1.首先为什么有基本数据类型?
在Java语言中,new一个对象存储在堆里,我们通过中的引用来使用这些对象;但是对于经常用到的一系列类型如int,如果我们用new将其存储在里就不是很有效——特别是简单的小的变量。所以就出现了基本类型,同C++一样,Java采用了相似的做法,对于这些类型不是用new关键字来创建,而是直接将变量的值存储在栈中,因此更加高效

2.又为什么需要Integer等包装类?
基本类型并不具有对象的性质,为了让基本类型也具有对象的特征,就出现了包装类型(如我们在使用集合类型Collection时就一定要使用包装类型而非基本类型),它相当于将基本类型“包装起来”,使得它具有了对象的性质,并且为其添加了属性和方法,丰富了基本类型的操作
当需要往ArrayList,HashMap中放东西时,像int,double这种基本类型是放不进去的,因为容器都是装object对象类型的,这是就需要这些基本类型的包装器类了,因为基本数据类型没有继承Object类(无论是自定义类还是系统类都继承Object类)所有需要一个既能表示数据类型,又能表示对象的东西——>包装类

包装类(Wrapper)

包装类的分类

八种包装类型 (String不是!!!)
在这里插入图片描述
源码的继承结构

  • Serializable接口: 说明可序列化,可序列化就是可以把这些类型的对象变成序列进行网络传输,因为只有变成序列才能网络传输
  • Comparator接口: 可以重写比较方法

在这里插入图片描述
Character包装类: 也是有Serializable接口和Comparator接口, 但是不是从Number父类而来
在这里插入图片描述

包装类和基本数据类型的转换

装箱 :基本数据类型——>包装类
拆箱 :包装类——>基本数据类型
在这里插入图片描述

jdk 5.0前 手动装箱

在这里插入图片描述

在这里插入图片描述

jdk5之后 自动装箱

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

最高精度为1.0,所以打印1.0,三元运算符是整体

包装类Integer——>String

String 没有包装类,是包装类如Integer等类型直接转为String
在这里插入图片描述

string——>包装类

在这里插入图片描述
Integer类型和String的相互转化
在这里插入图片描述

Integer 和 Character的常用方法(阅读源码)

在这里插入图片描述

在这里插入图片描述

经典题目

下面题目

== 比较的三种情况:

  • 对于对象来说比较的是地址: new 说明创建地址不同 所有== 为false
  • 对于直接赋值来说,如果在基本数据类型范围之内(如int -128~127),等号就是比较的数值 ,不是地址
  • 但是超过了包装类对应的基本数据类型能表示的范围(如int -128~127),就会调用new方法创建对象,此时== 又变成了比较对象的地址

在这里插入图片描述

在这里插入图片描述

new一个对象 ==比地址 两个对象地址肯定不同

只有判断基本数据类型 直接看值 在不在-128~127

在范围内直接比值 范围外就底层采用new 方法创建对象

所有Integer就可以表示很大的值,但是需要通过包装类的方法进行运算等操作,主要是集合Collection等一起使用


Byte,Short,Boolean,Long,Double,Float

与上述Integer和Character用法类似

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值