Java 基本类型的包装类介绍

基本包装类为什么存在

将基本数据类型封装成对象的好处在于可以在对象中定义更多的功能方法操作该数据
一般操作:(比如:Integer)类提供了多个方法,在int和String之间相互转化

一般字段
static int MAX_VALUE   //它的值为2^31 - 1(int最大值)
static int MIN_VALUE   //它的值为-2^31(int最小值)
static int SIZE    //二进制补码表示int的比特位数
static Class<Integer>  TYPE //表示基本类型int的Class实例
基本类型和包装类一一对应
byte     	Byte
short 		Short
int			Integer
float		Float
double		Double	
char		Character
boolean		Boolean
Integer 转进制
int a = 0;
Integer.toBinargString(a);//转二进制
Integer.toOctalString(a);//转八进制
Integer.toHexString(a);//转十六进制
构造方法
//Integer(int a)
Integer i = new Integer(66);
//Integer(String str)
Integer i = new Integer("66");
Integer i = new Integer("abd");//报错 非法 不能转化
int 和String 的转化
//int 转 String
int i = 100;
//方法一:
String s1 = i+ "";
//方法二:
String s2 = String.valueOf(i);
//方法三:
Integer i3 = new integer(i);//先将int转化为 Integer 在转化为String
String s3 = i2.toString();
//方法四:
String s4 = Integer.toString(i);//使用了Integer的方法来转化为字符串
//String 转 int
String s = "200";
//方法一:
Integer i = new Integer(s);
int _i = i.intValue();
//方法二:
int i = Integer.parseInt(s);
// 基本数据类型有8种,而其中有七种都有parseXxx()方法将字符串转化为基本数据类型  (只有char 的 包装类没有,因为 如果有字符串和char 的转化通过toCharArray()转化成字符数组)
JDK5新特性
	* 自动装箱:把基本数据类型转化为包装类类型
	*  自动拆箱:把包装类类型转化为基本数据类型
//1.5前 没有自动装箱
int x = 100;
Integer i = new Integer(x);	//将基本数据类型包装为对象  装箱
int y = i.intValue();		//将对象转换为基本数据类型  拆箱
//1.5后 有了自动拆箱
 Integer i = 100;			//自动装箱 
 int y = i;					//自动拆箱
 //注意 :当i为null(空指针时) 是不能自动拆箱的。空指针异常
String转换成对应的基本类型

除了Character类之外,其他所有包装类都具有parseXxx静态方法可以将字符串参数转换为对应的基本类型:

  • public static byte parseByte(String s):将字符串参数转换为对应的byte基本类型。
  • public static short parseShort(String s):将字符串参数转换为对应的short基本类型。
  • public static int parseInt(String s):将字符串参数转换为对应的int基本类型。
  • public static long parseLong(String s):将字符串参数转换为对应的long基本类型。
  • public static float parseFloat(String s):将字符串参数转换为对应的float基本类型。
  • public static double parseDouble(String s):将字符串参数转换为对应的double基本类型。
  • public static boolean parseBoolean(String s):将字符串参数转换为对应的boolean基本类型。

代码使用(仅以Integer类的静态方法parseXxx为例)如:

public class Demo18WrapperParse {
    public static void main(String[] args) {
        int num = Integer.parseInt("100");
    }
}

注意:如果字符串参数的内容无法正确转换为对应的基本类型,则会抛出java.lang.NumberFormatException异常。

Integer 重写了equals 方法

***比较的是值 ***
但是 当自动装箱时,如果是在-128到127的byte的取值范围,自动装箱不会创建新数组,而是从常量池(从数组中取)中去取,超过了就要再新创建对象。
byte 0 为 -128 255 为 127

Integer i = new Integer(100);
Integer i2 = new Integer(100);
i == i2;//(false)
i.equals(i2);//(true)

Integer i = 100;
Integer i2 = 100;
i == i2;//(true)
i.equals(i2)//true

Integer i = 128;
Integer i2 =  128;
i == i2 ; //false
i.equals(i2);//true
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值