【Java基础】基本类型包装类

基本类型包装类

在这里插入图片描述

Integer的构造方法

// public Integer(int value)
Integer i = new Integer(100);

// public Integer(String s)
Integer ii = new Integer("100");

//报错 NumberFormatException
Integer iii = new Integer("abc");
//注意:这里的字符串必须是由数字字符组成;

String 和 int 的相互转换

String 转换为 int :

//String -- int
String str = "100";

//方式1:String -- Integer -- int
Integer i = new Integer(str);
int n1 = i.intValue();
System.out.println("n1:" + n1);

//方式2:public static int parseInt(String s)
int n2 = Integer.parseInt(str);
System.out.println("n2:" + n2);

int 转换为 String :

//int -- String
int num = 100;

//方式1:"" +
String s1 = "" + num;
System.out.println("s1:" + s1);

//方式2:public static String valueOf()
String s2 = String.valueOf(num);
System.out.println("s2:" + s2);

//方式3:int -- Integer -- String
Integer i = new Integer(num);
String s3 = i.toString();
System.out.println("s3:" + s3);

// 方式4:public static String toString(int i)
String s4 = Integer.toString(num);
System.out.println("s4:" + s4);

JDK5新特性:自动装箱与自动拆箱

  • 自动装箱 基本类型–引用类型
  • 自动拆箱 引用类型–基本类型
Integer i = 100; //自动装箱
// Integer i = Integer.valueOf(100)
i += 200; //自动拆箱,再自动装箱
// i = Integer.valueOf(i.intValue() + 200);
System.out.println("i:" + i);
// System.out.println((new StringBuilder("i:")).append(i).toString());

若Integer i = null,会报错 NullPointerException;
建议先判断是否为null,然后再使用;

if (i != null) {
    i += 1000;
    System.out.println(i);
}

常用的进制转换

//十进制到其他进制:
public static String toString(int i,int radix)

//其他进制到十进制:
public static int parseInt(String s,int radix)
面试题:-128到127之间的数据缓冲池问题

Integer的数据直接赋值,如果数据是-128到127之间的,每次并不创建新的空间,会直接从缓冲池里获取数据;

Integer i1 = new Integer(127);
Integer i2 = new Integer(127);
System.out.println(i1 == i2);
System.out.println(i1.equals(i2));

Integer i3 = new Integer(128);
Integer i4 = new Integer(128);
System.out.println(i3 == i4);
System.out.println(i3.equals(i4));

Integer i5 = 128;
Integer i6 = 128;
System.out.println(i5 == i6);
System.out.println(i5.equals(i6));

Integer i7 = 127;
Integer i8 = 127;
System.out.println(i7 == i8);
System.out.println(i7.equals(i8));
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值