包装类简述

一、前言(可忽略)

作者是一位自学JAVA的小白,通过网上视频学习和自己对包装类的理解,现将自己对包装类的认知描述如下:(希望能与各位同行好友共同分享自己所学的java知识,同时,也热切期望各位同行前辈能够帮助作者指出不足,让小白的编程技术能更上一层楼,感谢各位同行大佬。

二、包装类的认知

学过Java的帅锅都知道8种基本数据类型对应8种包装类型(长的也差不多,基本上都是首字母大写,除了int和char,英文有点长),8种包装类也属于引用数据类型,还有String也是(具体可看小白的String简介)。

为什么要提供8种包装类?

简单来说就是因为8种基本类型不够用(小白理解),JAVA是完全面向对象开发,在开发过程中,我们不可避免的使用到对象和多态,面向对象开发,也造成了我们对需要使用对应引用变量的基本数据类型常量的烦恼。

     基本数据类型                     包装类型

     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)

三、包装类的爱与恨

装箱:基本数据类型转换成引用数据类型
    手动装箱:

Integer i=new Integer(100);//照葫芦画瓢,i保存的是在堆内存中的Integer对象的内存地址,Integer对象指向整数常量地址池中的"100",

    自动装箱:

Integer i=100;//照葫芦画瓢

拆箱:引用数据类型转换成基本数据类型

    手动拆箱:

int j=i.intValue();//照葫芦画瓢

    手动拆箱的方法:

* byte byteValue() 以byte形式返回指定的数值       * abstract double doubleValue 以double形式返回指定的数值       * abstract float floatValue()以float形式返回指定的数值       * abstract int  intValue()以int形式返回指定的数值       * abstract long longValue()以long形式返回指定的数值       * short shortValue以short形式返回指定的数值

    自动拆箱:

int j=i;//照葫芦画瓢

重点:

long Y=1000;Long A=1000L;System.out.println(Y==A);//引用数据类型与基本数据类型比较,自动拆箱,结果为true
Integer I=1000;Float F=1000.0;System.out.println(I==F);//提示出错,数值虽相同,但不同包装类型不可直接比较)
Integer X=100;Integer C=100System.out.println(X==C);//true,两对象的内存地址相同```cInteger M=100;System.out.println(M+1);//true,包装类型的变量在进行四则运算时会自动拆箱

注意:为了提高程序的执行效率,Java将所有-128~127之间所有的包装对象都提前创建到了方法区的“整数型常量池中”,所以当使用"=="比较时,由于是使用"="直接赋内存地址(整数型常量池中的),所以两变量内存地址相同,结果为true

Integer H=100; java.lang.Integer D=new java.lang.Integer(100);System.out.println(H==D);//false D和H存放的内存地址不一样
java.lang.Integer x=1000;        java.lang.Integer b=0;        java.lang.Integer c=1000;        java.lang.Long N=1000L;        System.out.println(x.equals(c+b));//true, 先进行b和C的自动拆箱,求出b+c并自动装箱,再调用euqals方法进行对象引用的值比较。        System.out.println(N.equals(c+b));//false
java.lang.Integer K=1000; java.lang.Integer Q=0; java.lang.Long A=1000L; System.out.println(A==(K+Q));首先A进行自动拆箱,K+Q由于进行四则运算自动拆箱,比较对象的值,由于JAVA在对类型转换时会自动向上转,int->long

注意:equals在比较不同包装类型时,由于类型不同会返回false

通过访问包装类的常量,来获取最大值和最小值(获取类型取值范围)

//比如int的取值范围 java.lang.Integer x=1000; System.out.println(x.MIN_VALUE);//-2147483648 System.out.println(x.MAX_VALUE);//2147483647

四、包装类的异常

Long l=new Long("Chinese");        long I=l;        System.out.println(I);//异常报错:NumberFarmatException        //编译没错,但运行的时候会出现异常,只能是数字包装。        Long X=new Long("123");        long Y=X;        System.out.println(Y);//123

五、包装类的方法

static int parseInt(String s)

作用:静态方法,传参String,返回int,类名调用

int RetValue=java.lang.Integer.parseInt("123");//String->int,照葫芦画瓢           System.out.println(RetValue);//123

static String toBinaryString(int)

作用:静态,将int以十进制转化成二进制

System.out.println(java.lang.Integer.toBinaryString(10));//1010

static String toHexString(int x)

作用:静态,将int以十进制转化成十六进制

System.out.println(java.lang.Integer.toHexString(17));//11

static String toOctalString(int)

作用:静态,将int以十进制转换成八进制

System.out.println(java.lang.Integer.toOctalString(10));//12

static Integer valueOf(int i)

作用:静态,类型互转,将i以int转换成Integer

System.out.println(java.lang.Integer.valueOf(100));//100

static Integer valueOf(String x)

作用:静态,类型互转,将x以String转换成Integer

System.out.println(java.lang.Integer.valueOf("1000"));//1000,String只能以数字形式输入,否则报NumberFormatException错误
(0)

相关推荐

  • 常用类

    常用类 包装类 在类中查看属性方法的快捷键:Ctrl+F12 java.lang包会默认导入每个Java文件,所以我们不需要导入这个包,直接用包中的类就好了 byte Byte short Short ...

  • 各个时期景泰蓝特点及真伪鉴定简述

    珐琅器在传入中国后出现了两种分支,一种是源自波斯的铜胎掐丝珐琅,约在元朝传入中国,并在明代开始大量烧制,景泰年间达到了巅峰,因此后世称之为"景泰蓝",这之后景泰蓝就成了铜胎掐丝珐琅 ...

  • 六爻测病用神怎么断,六爻测病六神代表什么,六爻测病断言断卦方法简述。

    ​青龙--酒色虚弱.朱雀--狂言乱语.勾陈--胸满肿胀.螣蛇--坐卧不安.白虎--跌打损伤.玄武--色欲阴虚. 鬼位三爻旺空,腰疾.动而不空,临日,冲克世爻,闪腰. 鬼居间爻,胸膈肿痛.鬼爻持世,原有 ...

  • IS-2重型坦克简述-1

    对抗"虎"式坦克的产物 战争就是这样,敌方出现了一种新兵器,我方就要研制出更新的兵器来对付你.这一点在第二次世界大战期间,表现得尤为突出. 在二战期间中型和重型坦克的较量中,苏联和 ...

  • 简述九星地理水法(辅星水法)

    简述九星地理水法(辅星水法) 1 九星水法的基础理论 1. 九星即:左辅.右弼.武曲.贪狼.巨门.破军.禄存.廉贞.文曲. 2. 依水而立,不与龙相涉.此乃三者合而为一,深得三合联珠之妙用也. 3. ...

  • 范式文字是科学的文字简述之一

    范式文字是科学的文字简述之一 "仰则观象于天,俯则观法于地,视鸟兽之文与地之宜"是需要范式的根源. "近取诸身远取诸物"是范式的来源. "以垂宪象&q ...

  • 一篇文章简述汉族是怎么形成的

    文|寒山忆雪 汉族是中国的主体民族,华夏是他的别名,在某种程度上,华人也是他的代称.汉民族的体量十分庞大,在中国拥有13亿左右的人口,在海外也超过5000万人口,是当之无愧的世界第一大民族. 那么这个 ...

  • 中文是科学的文字简述之二

    中文是科学的文字简述之二 <周易·系辞下>云:"古者包牺氏之王天下也,仰则观象于天,俯则观法于地:观鸟兽之文与地之宜:近取诸身,远取诸物,于是始作八卦,以通神明之德,以类万物之情 ...

  • 一呆解字——干支简述及其合化理论的天文学依据(5)

    书接上回,我们继续说地支六合. 春分日,太阳位于黄经0度,当日戌时,面向北方,对照盘面,可以看到斗杓所指水平镜像(左右翻转)方位为卯,太阳位于奎娄之间,即是戌宫,故卯与戌合. 谷雨日,太阳位于黄经30 ...