java 基本类型和包装类型

发布时间:2023-04-27 09:08:32

基本类型:byte,int,short,long,boolean,char,float,double等。

包装类型:Byte,Integer,Short,Long,Boolean,Character,Float,Double等。

JDK1.5新特点:自动包装/拆包(Autoboxing/unboxing)

基本类型数据及其包装类地的使用极大地方便了自动包装/拆包。 自动包装:基本类型自动转为包装类型.(int >> Integer) 自动拆包:包装类自动转化为基本类型.(Integer >> int)

另外,他们也有区别:

public class Primitivetype2WrapperType {/** * @param args */public static void main(String[] args) {int n = 1;byte b = 1;System.out.println(n == b);System.out.println(new Integer(n).equals(new Byte(b)));}}

输出:

truefalse

为什么第一个是true,第二个是false?看代码。

Integer

public boolean equals(Object obj) {if (obj instanceof Integer) {    return value == ((Integer)obj).intValue();}return false;}

Byte

public boolean equals(Object obj) {if (obj instanceof Byte) {    return value == ((Byte)obj).byteValue();}return false;}

因此,只要不是同一类型,就返回false。

 

其它包装类型也是如此:

public boolean equals(Object obj) {if (obj instanceof Boolean) {    return value == ((Boolean)obj).booleanValue();} return false;}
public boolean equals(Object obj) {        if (obj instanceof Character) {            return value == ((Character)obj).charValue();        }        return false;}
public boolean equals(Object obj) {return (obj instanceof Double)       && (doubleToLongBits(((Double)obj).value) ==      doubleToLongBits(value));}
public boolean equals(Object obj) {return (obj instanceof Float)       && (floatToIntBits(((Float)obj).value) == floatToIntBits(value));}
public boolean equals(Object obj) {if (obj instanceof Integer) {    return value == ((Integer)obj).intValue();}return false;}
public boolean equals(Object obj) {if (obj instanceof Long) {    return value == ((Long)obj).longValue();}return false;}
public boolean equals(Object obj) {if (obj instanceof Short) {    return value == ((Short)obj).shortValue();}return false;}

上一篇 oracle 多个with as
下一篇 oracle 压缩索引

文章素材均来源于网络,如有侵权,请联系管理员删除。

标签: Java教程Java基础Java编程技巧面试题Java面试题