【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));
发布了75 篇原创文章 · 获赞 49 · 访问量 3524
App 阅读领勋章
微信扫码 下载APP
阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 技术工厂 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览