基本类型四类八种都会 对应的各自的引用类型
整数类型 | 引用类型(默认值为Null) |
---|---|
byte | Byte |
short | Short |
long | Long |
int | Integer |
浮点类型 | |
float | Float |
double | Double |
字符类型 | |
char | Char |
布尔类型 | |
boolea | Boolean |
需要基本类型和String类型之间转换:需要中间桥梁(基本类型对应的包装类类型)
需求:进制的转换----就可以使用Integer静态功能
//通过Integer得到int类型的取值范围
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的最小值
-
Integer的构造方法:
Integer(int value):可以将int类型保证为Integer类型 Integer(String s) throws NumberForamtException: 抛出一个数字格式化异常 注意事项: 当前字符串如果不是能够解析的整数的,就会出现数字格式化异常,s必须为 数字字符串
class IntegerDemo{
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);
}
}
运行结果:
若当前字符串如果不是能够解析的整数的,就会出现数字格式化异常,s必须为 数字字符串
自动拆装箱:
基本类型---> 对应的包装类类型 (装箱)
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);
}
}
int → String → Integer → String → int
public class IntegerDemo {
public static void main(String[] args) {
//integer----String
//integer类型的静态功能toString
public static string tostring(int i)
// string--->int
//Integer的静态功能
public static int parseInt(string s)
// string ----Integer ----int
string s = "100" ;
Integer i = new Integer(s) ;
int num = i.intValue() ;
}
}
例题:(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);
*/
}
}