当前位置:首页 > 图灵资讯 > 技术篇> java 基本类型和包装类型
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;}
ps 图灵课堂老师从近一百套最新一线互联网公司面试题中精选而出,涵盖Java架构面试 所有技术栈,包括JVM,Mysql,并发,Spring,Redis,MQ,Zookeeper,Netty, Dubbo,Spring Boot,Spring Cloud,数据结构与算法,设计模式等相关技术领域的大 厂面试题及详解。 详情咨询客服获取全套面经试题。