1.Integer:int类型的包装类类型(引用类型),包含了int类型的原始数据值
整数类型 | 引用类型(默认值都是Null) |
byte | Byte |
short | Short |
int | Integer |
long | Long |
浮点类型 | |
float | Float |
double | Double |
字符类型 | |
char | Character |
布尔类型 | |
boolean | Boolean |
需要基本类型和String类型之间转换:需要中间桥梁(基本类型对应的包装类类型)
需求:进制的转换----就可以使用Integer静态功能
(1)public static String toBinaryString(int i):将整数---->二进制 的字符串
(2) public static String toOctalString(int i):将整数---->八进制的字符串
(3) public static String toHexString(int i):将整数---->十六进制数据
(4) public static final int MAX_VALUE:int的最大值
(5)public static final int MIN_VALUE:int的最小值
public class IntegerDemo {
public static void main(String[] args) {
System.out.println(Integer.toBinaryString(100));
System.out.println(Integer.toOctalString(100));
System.out.println(Integer.toHexString(100));
System.out.println("----------------------");
System.out.println(Integer.MIN_VALUE);//-2的31次方
System.out.println(Integer.MAX_VALUE);//2的31次方-1
}
}
2.Integer的构造方法:
Integer(int value):可以将int类型保证为Integer类型
Integer(String s) throws NumberForamtException: 抛出一个数字格式化异常
注意事项: 当前字符串如果不是能够解析的整数的,就会出现数字格式化异常,s必须为 数字字符串
public class IntegerDemo2 {
public static void main(String[] args) {
//创建Integer类对象
int i = 100 ;
Integer integer = new Integer(i) ;
System.out.println(integer);
System.out.println("---------------------");
//创建一个字符串
String s = "hello" ;
Integer integer2 = new Integer(s) ;
System.out.println(integer2);
}
}
3.自动拆装箱:
基本类型---> 对应的包装类类型 (装箱)
int---->Integer
对应的包装类型---->基本类型 (拆箱)
Integer--->int
public class IntegerDemo3 {
public static void main(String[] args) {
//创建Integer类对象
int i = 100 ;
Integer ii = new Integer(i) ;
ii += 200 ;
System.out.println("ii:"+ii);
}
}
4.将int---->String -------- Integer作为桥梁 --------String---->int
public class IntegerDemo4 {
public static void main(String[] args) {
int i = 50 ;
String str = Integer.toString(i);
System.out.println(str);
System.out.println("------------------------");
//方式2:int---->Integer---->public String toString()
Integer ii = new Integer(i) ;
String str2 = ii.toString(); //底层使用的方法public static String toString(int i)
System.out.println(str2);
System.out.println("----------------------------------");
String s = "100" ;
int result = Integer.parseInt(s);
System.out.println(result);
System.out.println("------------------------------------------");
Integer integer = new Integer(s) ;
int result2 = integer.intValue();
System.out.println(result2);
}
}
关于Integer范围的题(-128-127)
public class IntegerTest {
public static void main(String[] args) {
Integer i1 = new Integer(127) ;
Integer i2 = new Integer(127) ;
System.out.println(i1==i2);//false
System.out.println(i1.equals(i2));//true
System.out.println("----------------------------");
Integer i3 = 127 ;//valueOf(127) 127 (-128~127) //直接从内部缓存区中取出数据并么有重新创建对象
Integer i4 = new Integer(127) ;
System.out.println(i3== i4);//false
System.out.println(i3.equals(i4));//true
System.out.println("-----------------------------");
Integer i5 = 128 ; //128已经超出了范围 :new Integer(128)
Integer i6 = new Integer(128) ;
System.out.println(i5==i6);
System.out.println(i5.equals(i6));
System.out.println("-------------------------------");
Integer i7 = 127 ;
Integer i8 = 127 ;
System.out.println(i7==i8);//true IntegerCache:缓存区取出数据
System.out.println(i7.equals(i8));//true
System.out.println("-------------------------------");
Integer i9 = 128 ;// 缓存区中范围:-128~127 return new Integer(128)
Integer i10 = 128 ;
System.out.println(i9==i10);//false
System.out.println(i9.equals(i10));//true
/* Integer i = 127 ;
System.out.println(i);*/
/**
* 反编译工具查看:执行底层的valuOf()
* Integer i = Integer.valueOf(127);
* System.out.println(i);
*/
}
}
5.int和String类型之间如何转换