public class IntegerTest {
public static void main(String[] args) {
// 调用doSome方法的时候传递一个数字
// 但是数字属于基本数据类型,而doSome方法参数为Object
// 这时候需要将数字包装为一个Object
MyInt i = new MyInt(123);
doSome(i);
}
public static void doSome(Object obj){
System.out.println(obj);
}
}
class MyInt{
int value;
public MyInt(int value) {
this.value = value;
}
public MyInt() {
}
public String toString(){
return String.valueOf(value);
}
}
实际开发中,不需要自己写包装类,SUN已经为我们提供了8种包装类:基本数据类型 | 包装类型 |
---|---|
byte | java.lang.Byte(父类Number) |
short | java.lang.Short(父类Number) |
int | java.lang.Integer(父类Number) |
long | java.lang.Long(父类Number) |
float | java.lang.Float(父类Number) |
double | java.lang.Double(父类Number) |
boolean | java.lang.Boolean(父类Object) |
char | java.lang.Character(父类Object) |
public class IntegerTest {
public static void main(String[] args) {
// 123基本数据类,进行构造方法的包装达到了:基本数据类型想引用数据类型的转换
// 装箱
Integer i = new Integer(123);
// 将引用数据类型转换为基本数据类型--拆箱
float f = i.floatValue();
System.out.println(f);//123.0
}
}
Integer的构造方法:public class IntegerTest {
public static void main(String[] args) {
// Java9之后不建议使用这个构造方法
// 将数字100转换为Integer包装类型
Integer i1 = new Integer(100);
System.out.println(i1);//100
// 将String类型的数字,转换为Integer包装类型
Integer i2 = new Integer("110");
System.out.println(i2);//110
}
}
通过访问包装类的常量,获取最大值和最小值:public class IntegerTest {
public static void main(String[] args) {
// 通过访问包装类的常量,获取最大值和最小值
System.out.println("byte最大值:" + Byte.MAX_VALUE +
",byte最小值:" + Byte.MIN_VALUE);
System.out.println("short最大值:" + Short.MAX_VALUE +
",short最小值:" + Short.MIN_VALUE);
System.out.println("int最大值:" + Integer.MAX_VALUE +
",int最小值:" + Integer.MIN_VALUE);
System.out.println("long最大值:" + Long.MAX_VALUE +
",long最小值:" + Long.MIN_VALUE);
}
}
在JDK1.5之后,支持自动拆箱和自动装箱:- 自动装箱:基本数据类型–》引用数据类型
- 自动拆箱:引用数据类型–》基本数据类型
public class IntegerTest {
public static void main(String[] args) {
// 自动装箱 int类型————自动转换为————》Integer
Integer i = 100;
System.out.println(i);//100
// 自动拆箱 Integer类型————自动转换为————》int
int j = i;
System.out.println(j);//100
Integer k = 100;
// 自动拆箱
System.out.println(k + 1);//101
}
}
java种为了提高程序的执行效率,将-128~127之间所有的包装对象提前创建好, 放到了方法区的”整数型常量池“当中,目的是只要用这个区间的数据不需要再new,直接从整数型常量池当中取就可以:
public class IntegerTest {
public static void main(String[] args) {
Integer a = 128;
Integer b = 128;
System.out.println(a == b);// false
Integer c = 127;
Integer d = 127;
System.out.println(c == d);// true
}
}
声明:1. 本站所有资源来源于用户上传和网络,因此不包含技术服务请大家谅解!如有侵权请邮件联系客服!
2. 本站不保证所提供下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理!
3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
2. 本站不保证所提供下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理!
3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!