目录
1. 基本数据类型对应的8个包装类
因为8种基本数据类型不够用,所以SUN提供了对应的8种包装类型,都属于用用数据类型
基本数据类型 | 包装类型 | 父类 |
---|---|---|
byte | Byte | Number |
short | Short | Number |
int | Integer | Number |
long | Long | Number |
float | Float | Number |
double | Double | Number |
boolean | Boolean | Object |
char | Character | Object |
2.Number类
Number是一个抽象类,无法实例化对象
负责拆箱的方法(数字包装类的子类都有):以…形式返回指定的数值
byte byteValue()
abstract double doubleValue()
abstract float floatValue()
abstract int intValue()
abstract long longValue()
short shortValue()
示例
// int -->Integer
Integer i = new Integer(1213);
// Integer -->int
int x = i.intValue();// x = 123
float y = i.floatValue();// y = 1213.0
3.Integer类
3.1Integer类的构造方法
//Integer(int);
//Integer(String);
//int -->Integer
Integer x = new Integer(100);
//String -->Integer
Integer y = new Integer("123");
//类似的
// double -->Double
Double d = new Double(1.23);
// String -->Double
Double e = new Double("3.14");
3.2Integer类的自动装箱与自动拆箱
在JDK5之后,引入新特性,自动装箱与自动拆箱
- 自动装箱:基本数据类型自动转换成包装类
- 自动拆箱:包装类自动装换成基本数据类型
这意味着Number类中的拆箱方法可以不使用
示例:
// 自动装箱: 基本数据类型-->包装类
Integer x = 900;
// 自动拆箱:包装类-->基本数据类型
int y = x;
3.3Integer类最值常量
Integer.MAX_VALUE;
Integer.MIN_VALUE;
Byte.MAX_VALUE;
Byte.MIN_VALUE;
3.4JVM内存图
Integer z = 1000;//z是一个引用、变量,表村了一个Integer对象的内存地址
System.out.println(z + 1);//+两边是基本数据类型的数值,z是包装类会自动拆箱,装换为基本数据类型
Integer a = 1000;
Integer b = 1000;
//a == b false a、b引用保存不同的内存地址,指向不同的对象
Integer x = 127;
Integer y = 127;
// x == y true
/*
java中未来提高程序的执行效率,将[-128,127]之间的所有的包装类对象提前创建好,
放到方法区的“整数型常量池”中,目的是只要用这个区间的数据就不需要new了,直接从整数型常量池中取出
*/
3.5Integer类中常用方法
(1)手动拆装箱
Integer x = new Integer(123);//不是一个数字包装成Integer是,编译没问题,运行是出现异常
int y = x.intValue();
(2) static int paseInt(String s)
// String --> int
int retValue = Integer.paseInt("123");
// int retValue = Inter.paseInt("中国"); NumberFormatException
//类似的
double retValue2 = Double.paseDouble("3.14");
float retValue3 = Double.paseFloat("1.0");
(3)进制转换
//static String toBinaryString(int i) 十进制装换为二进制
Sting binaryString = Integer.toBInaryString(3);
//static String toHexString(int i) 十进制装换为十六进制
Sting hexString = Integer.toHexString(16);
//static String toOctalString(int i) 十进制装换为八进制
Sting octalString = Integer.toOctalString(8);
(4)static Integer valueOf()
Integer i1 = Integer.valueOf(100);
Integer i2 = Integer.Valueof("100");
4.String、int、Integer之间相互转换
//String -->int
int i1 = Integer.paseInt("100");
//int -->Sting
String s1 = i1 +"";
//int -->Integer
Integer x = 1000;
//Integer -->int
int y =x;
//String -->Integer
Integer k = Integer.valueOf("123");
//Integer -->String
String e = String.valueOf(k);
传送门
上一章:JavaSE进阶 第七章 常用类 (二) StringBuffer与StringBuilder
下一章:JavaSE进阶 第七章 常用类 (四) 时间类