基本数据类型不能创建对象并调用方法,如果有包装类就可以封装方法提供给我们使用
Byte,Short,Integer,Long,Float,Double,Character
//int转换为字符串
int num = 100;
String x = num + ""; //任何数据与字符串用+相连都会产生新的字符串
String y = String.valueOf(num); //valueOf可以将任何数据转换为字符串
//字符串转换为其他类型
Integer.parseInt(String s)
Byte.parseByte(String s)
Short.parseShort(String s)
parseLong(String s)
parseFloat(String s)
parseDouble(String s)
parseBoolean(String s)
//没有parseChar,只有Character中没有parseXxx()方法,因为字符串是有多个字符组成,转换的时候char只能接收一个字符,字符串转成字符有toCharArray()方法
//jdk新特性
int x = 5;
Integer i = new Integer(x); //jdk1.5版本之前将x变成对象
Integer i2 = x; //自动装箱,把基本数据类型变成对象
int y = i2 + 10; //自动拆箱,将Integer对象变成基本数据类型
x = i2.intValue(); //jdk1.5版本之前将对象变成基本数据类型
//面试题
Integer i1 = new Integer(97);
Integer i2 = new Integer(97);
System.out.println(i1 == i2); //false
System.out.println(i1.equals(i2)); //true
Integer i3 = new Integer(197);
Integer i4 = new Integer(197);
System.out.println(i3 == i4); //false
System.out.println(i3.equals(i4)); //true
Integer i5 = 127;
Integer i6 = 127;
System.out.println(i5 == i6); //true
System.out.println(i5.equals(i6)); //true
//当Integer直接赋值的范围是在-128~127之间,也就是一个byte的取值范围,不会创建多个对象
//第一次Integer = 127,会在底层有一个数组存储-128~127之间的Integer对象值,直接从数组获取Integer对象,第二次Integer = 127,不会重新创建对象,继续从数组中获取
Integer i7 = 128;
Integer i8 = 128;
System.out.println(i7 == i8); //false
System.out.println(i7.equals(i8)); //true