包装类

来源:互联网 发布:空间句法软件depthmap 编辑:程序博客网 时间:2024/04/28 23:25

包装类:用于将基本类型参与到面向对象的开发;将一个字符串转换为基本类型

包装类基本类型包装类父类bytejava.lang.Bytejava.lang.Numbershortjava.lang.Short
java.lang.Number
intjava.lang.Interger
java.lang.Number
longjava.lang.Long
java.lang.Number
doublejava.lang.Double
java.lang.Number
floatjava.lang.Float
java.lang.Number
charjava.lang.Character
java.lang.Object
boolean
java.lang.Boolean
java.lang.Object

Number类

存在intValue()、doubleValue()、UTFValue()方法,主要用于实现int和Interger之间的转化,返回一个int、doubleUTF值

同时ParseInt()、ParseDouble()、ParseUTF()方法将以字符串类型描述的int、double值转化为int、double类型、UTF类型的数值,是一个静态方法


包装类的构造方法:

(1)所有的包装类都可以用和它对应的基本类型数据作为参数,来构造它们的实例

(2)除Character类以外,其他包装类都可以用一个字符串座位参数来构造它们的实例,但是这个字符串不能为空,且必须可以解析为相对应的基本数据类型。

(3)Boolean类型用字符串座位参数时,若字符串的内容为true(无论大小写),Boolean表示的对象都为true

 

所有的包装类都是final类型,不可继承,对象不可改变

所有的包装类都覆盖了Object类型的toString(),以字符串的形式返回基本类型。


static void valueOf(String str)用于将字符串类型转换为当前类型,常见于自动拆装箱

在自动拆装箱时,各个包装类中都有一定的缓存,当我们自动拆装箱时,先在缓存中查找是否有这个值,如果有那么,只需创建一个对象,返回同一个对象,如果超出了缓存则需重新创建对象。跟常量池差不多。

各个类在包装类中的缓存int-128-127byte-128-127
short-128-127
long-128-127
char0-127
boolean-128-127
double和float

<span style="font-size:18px;"><span style="font-size:14px;">package com.blogs.yuan;/** * 该类为了演示包装类 * @author a * */public class WrapperDemo {public static void main(String[] args) {int ii = 129;Integer integer = new Integer(ii);//创建Integer对象,赋值为129System.out.println(integer == ii);//trueint j =  integer.intValue();//将Integer类型转换为基本类型System.out.println(j == ii);//trueInteger i = 100;//i装箱,相当于Integer i = Integer.valueOf(100)Integer  m = 100;System.out.println(i == m);//true,i和m自动拆箱比较,i引用和m引用指向同一对象,100在缓存范围中i = 200;m = 200;System.out.println(i == m);//false,200已经超出缓存范围了,故i,m装箱为了两个对象String string = "123";int a = Integer.parseInt(string);<span style="white-space:pre"></span>//将字符串描述的纯数字转换为int类型System.out.println(string instanceof String);//trueSystem.out.println(a);//这里的a为int基本类型,不能用intanceof判断}}</span></span>
0 0
原创粉丝点击