欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  Java

primitive主数据类型的包装类

程序员文章站 2022-04-01 09:43:29
...
JAVA在5.0版本之后之后给每一个primitive主数据类型(除了char)都准备了一个包装类,
int→Integer;long→Long;byte→Byte;short→Short;float→Float;
double→Double;boolean→Boolean;
包装类有什么作用呢?
包装类的作用就是将一个值传入包装类的构造函数,这样就能创建出一个包装类的对象。而且包装类还具有自动装箱和自动拆包的功能。
以下仅以Integer举例,例如:
Integer d=3;//自动装箱,即可以用int值来构建一个对象并指向引用变量。
int d=new Integer(123);//自动拆包,将对象的实例变量值直接赋给int型变量。
当然不只是这些用处。
还可以向ArrayList<Integer>中添加元素时直接添加int型的变量;
如果某些方法的参数是某种包装类型,则可以直接传入相对应的primitive主数据类型;方法的返回值同样可以;
还有就是条件判断语句,也可以用Boolean的引用来判断。
当然在数值运算的时候也可以:
int a=new Integer(2)+3;//也是可以运行的。

需要特别注意的是Integer的自动装箱的一个小知识,
Integer a=new Integer(127);  
Integer b=(127);  
System.out.println(a==b);  
System.out.println(a.equals(b));

结果为false,true。但是当

Integer c=127;  
Integer d=127;  
System.out.println(a==b);  
System.out.println(a.equals(b));

结果却是true,true。
会出现这种情框是因为,在自动装箱时如果创建一个Integer对象传入的值小于128的话,在创建第二个对象并且与第一个对象传入的值相等,那么第二个对象的应用变量会直接指向创建的第一个对象,而不会再创建一个新的对象。
类中一般都会有方法,java定义的包装类中也有许多方法来运用,
以Integer例列举一些重要的静态方法,也就是可以直接以Integer调用的方法。
将一段字符串解码成为一个Integer内的实例变量值, decode(String st)
讲一段字符串解析为一个int值, Integer.parseInt(String,int );//String为传入的数字型字符串,int为所传入的字符串的进制,该方法返回的是一个十进制的int值,例如:

System.out.println(d.parseInt("4d", 16));

返回的是77.
还可以翻过来讲int或Integer转变为String:
int e=3; 或者 Integer.toString(new Integer(22));
Integer.toString(e);
还有很多方法,具体可以查看API中的java.lang.Integer类。其他几个包装类也大都如此。