精华内容
下载资源
问答
  • 基本类型的包装类_Java语言程6.3 基本类型的包装类Java中,每一种基本数据类型都有一个相应的包装类,这些类都在java.lang包中。8种基本数据类型所对应的包装类是:byte(Byte)、short(Short)、int(Integer)、...

    基本类型的包装类_Java语言程

    6.3 基本类型的包装类

    在Java中,每一种基本数据类型都有一个相应的包装类,这些类都在java.lang包中。8种基本数据类型所对应的包装类是:byte(Byte)、short(Short)、int(Integer)、long(Long)、char (Character)、float(Float)、double(Double)、boolean(Boolean)。

    Java语言用包装类来把一个基本类型数据转换为对象。或者说,一个包装类的实例总是包装着一个相应的基本类型的值。需要注意的是,包装类的实例一旦生成,其所包装的基本类型值是不能改变的。(www.guayunfan.com)

    包装类的作用:(1)在有些情况下,能够被处理的数据类型只能是引用类型,如Java集合中不能存放基本类型数据,如果要存放数字,应该通过包装类将基本类型数据包装起来,从而间接处理基本类型数据。

    (2)每个包装类都包含一组实用方法,其中很多是静态的。这些方法为处理某种基本类型数据提供了丰富的手段。比如Integer类的静态方法parseInt(String s)能将字符串转换为整数,静态方法toBinaryString(int i)返回包含整数i的二进制形式字符串。

    展开全文
  • java包装类

    2021-03-10 07:39:11
    大纲:包装类简介创建包装类自动装箱、拆箱判断相等默认值其他一、包装类简介Java中共有八种基本类型,byte, short, int, long, float, double, char, boolean。分别对应八种包装类,Byte, Short, Integer...

    大纲:

    包装类简介

    创建包装类

    自动装箱、拆箱

    判断相等

    默认值

    其他

    一、包装类简介

    Java中共有八种基本类型,byte, short, int, long, float, double, char, boolean。

    分别对应八种包装类,Byte, Short, Integer, Long,Float, Double, Character, Boolean。

    相较于基础数据类型,包装类有许多方法和成员变量供我们使用。

    每个包装类型都有一个名为value的成员变量,用来存储它自己基本类型的值。

    Integer a = new Integer(1);//包装类

    int b = 1;//基础类型

    二、创建包装类型

    以Integer为例子,其他包装类类似

    //通过基本类型创建

    new Integer(1);

    Integer.valueOf(1);//通过字符串创建

    new Integer("1"); //调用parseInt

    Integer.valueOf("1"); //调用parseInt

    Integer.parseInt("1");

    几种常见创建方式,其他包装类也有类似的创建方法。

    值得注意的是valueOf方法

    public static Integer valueOf(inti) {if (i >= IntegerCache.low && i <=IntegerCache.high)return IntegerCache.cache[i + (-IntegerCache.low)];return newInteger(i);

    }

    可以发现使用了缓存,看下这个IntegerCache,它是Integer的嵌套类

    private static classIntegerCache {static final int low = -128;static final int high = 127;//默认127,可配置

    static finalInteger cache[];static{//将-128至127的包装类缓存到cache中

    }

    }

    也就是说使用valueOf()来创建值为-128至127的包装类时,会使用已经创建好的缓存。我们创建包装类尽量使用这个方法避免重复创建对象。

    还有一点需要注意的是,有2个包装类(Float, Double)是不使用缓存的

    三、自动装箱、拆箱

    Integer a = 1; //自动装箱,反编译后发现使用Integer.valueOf(1)方法

    int b = a; //自动拆箱,反编译后发现使用a.intValue()方法

    java1.5以后,编译器会帮助我们完成自动装箱拆箱、不需要我们手动转换。

    四、判断相等

    //基础类型判断相等直接用==判断即可//包装类型判断相等用equals,通过源码可知,比较的是两个包装类的基础类型的value值。//基础类型和包装类型比较

    int a = 1;

    Integer b= 1;

    System.out.println(a==b);//true,这里b会被自动拆箱//包装类用==比较

    Integer c = 1;

    Integer d= 1;

    System.out.println(c==d); //true,包装类自动装箱使用的是valueOf()方法,使用的是缓存

    Integer e= 200;

    Integer f= 200;

    System.out.println(c==d); //false,这里由于200>127没有使用缓存,使用的都是new Integer()

    五、默认值

    包装类没有默认值,基础数据类型有初始化默认值。

    private static inta;private staticInteger b;public static voidmain(String[] args) {

    System.out.println(a);//0

    System.out.println(b);//null

    }

    使用的时候需要注意与数据库打交道的po对象尽量使用包装类,因为数据库查询结果为null时,使用基础数据类型会被赋上默认值。

    六、其他

    泛型只能使用包装类。

    计算的时候避免基础类型与包装类直接运算(Long+long 一个包装类与基础类型直接加法运算),会导致自动拆装箱,影响性能。

    展开全文
  • Java包装类的应用场景介绍 ,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。今天讲一下 Java 包装类的的由来,及自动装箱、拆箱的概念和原理。什么是包装类型Java 设计当初就提供了 8 种 基本数据...

    本篇文章给大家带来的内容是关于Java中的包装类是什么?Java包装类的应用场景介绍 ,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

    今天讲一下 Java 包装类的的由来,及自动装箱、拆箱的概念和原理。

    什么是包装类型

    Java 设计当初就提供了 8 种 基本数据类型及对应的 8 种包装数据类型。我们知道 Java 是一种面向对象编程的高级语言,所以包装类型正是为了解决基本数据类型无法面向对象编程所提供的。

    下面是基本数据类型与对应的包装类型。基本数据类型包装类型byteByte

    booleanBoolean

    shortShort

    charCharacter

    intInteger

    longLong

    floatFloat

    doubleDouble

    下面是包装类型的继承结构图。

    ad5d11b54536db0290dd224e4780a44a.png

    从以上图表可以对基本类型和包装类型有一个全面的了解。

    包装类应用场景

    1、集合类泛型只能是包装类;// 编译报错

    List list1 = new ArrayList<>();

    // 正常

    List list2 = new ArrayList<>();

    2、成员变量不能有默认值;private int status;

    基本数据类型的成员变量都有默认值,如以上代码 status 默认值为 0,如果定义中 0 代表失败,那样就会有问题,这样只能使用包装类 Integer,它的默认值为 null,所以就不会有默认值影响。

    3、方法参数允许定义空值;private static void test1(int status){

    System.out.println(status);

    }

    看以上代码,方法参数定义的是基本数据类型 int,所以必须得传一个数字过来,不能传 null,很多场合我们希望是能传递 null 的,所以这种场合用包装类比较合适。

    还有更多应用场景就不一一例举了,欢迎留言共同探讨包装类的更多的应用场景。

    自动装箱、拆箱

    Java 5 增加了自动装箱、拆箱机制,提供基本数据类型和包装类型的相互转换操作。

    自动装箱

    自动装箱即自动将基本数据类型转换成包装类型,在 Java 5 之前,要将基本数据类型转换成包装类型只能这样做,看下面的代码。Integer i1 = new Integer(8);

    Integer i2 = Integer.valueOf(8);

    // 自动装箱

    Integer i3 = 8;

    以上 3 种都可以进行转换,但在 Java 5 之前第 3 种方法是编译失败的,第 3 种方法也正是现在的自动装箱功能。另外,第一种构造器方法也不推荐使用了,已经标为废弃了。

    其实自动装箱的原理就是调用包装类的 valueOf 方法,如第 2 个方法中的 Integer.valueOf 方法。

    自动拆箱

    自动拆箱即自动将包装类型转换成基本数据类型,与自动装箱相反,有装就有拆,很好理解。// 自动拆箱

    int i4 = i3;

    int i5 = i3.intValue();

    继续上面的例子,把 i3 赋值给 i4 就是实现的自动拆箱功能,自动装箱的原理就是调用包装类的 xxValue 方法,如 i5 中的 Integer 的 intValue 方法。

    自动装箱、拆箱不只是体现在以上的例子,在方法接收参数、对象设置参数时都能自动装箱拆箱。

    展开全文
  • Java 包装类

    千次阅读 2021-03-08 05:57:02
    1、Java 包装类Java有8种基本数据类型:整型(byte、short、int、long)、浮点型(float、double)、布尔型boolean、字符型char,相对应地,Java提供了8种包装类Byte、Short、Integer、Long、Float、Double、Boolean、...

    1、Java 包装类

    Java有8种基本数据类型:整型(byte、short、int、long)、浮点型(float、double)、布尔型boolean、字符型char,相对应地,Java提供了8种包装类Byte、Short、Integer、Long、Float、Double、Boolean、Character。包装类创建对象的方式就跟其他类一样。包装类提供了一种使用原始数据类型作为对象的方法。

    下表是原始类型和对应的包装类:原始数据类型包装类

    byteByte

    shortShort

    intInteger

    longLong

    floatFloat

    doubleDouble

    booleanBoolean

    charCharacter

    有时必须使用包装类,例如,在使用Collection对象时,例如,作为ArrayList,其中不能使用基本类型(列表只能存储对象):

    例如:ArrayList myNumbers = new ArrayList(); // 报错ArrayList myNumbers = new ArrayList(); // 正常创建方法

    2、创建包装类对象

    要创建包装类对象,需要使用包装类而不是原始类型。要获取值,可以只打印输出对象:

    例如:public class Main {

    public static void main(String[] args) {

    Integer myInt = 8;

    Double myDouble = 8.99;

    Character myChar = 'A';

    System.out.println(myInt);

    System.out.println(myDouble);

    System.out.println(myChar);

    }

    }

    由于使用的是包装类对象,因此可以使用某些方法来获取有关特定对象的信息。

    例如,以下方法用于获取与

    相应的包装对象:intValue(),byteValue(),shortValue(),longValue(),floatValue(),doubleValue(),charValue(),booleanValue()。

    下面示例将输出与以上示例相同的结果:

    例如:public class Main {

    public static void main(String[] args) {

    Integer myInt = 2;

    Double myDouble = 9.99;

    Character myChar = 'A';

    System.out.println(myInt.intValue());

    System.out.println(myDouble.doubleValue());

    System.out.println(myChar.charValue());

    }

    }

    另一个有用的方法是toString()方法,该方法用于将包装器对象转换为字符串。

    在下面的示例中,我们将Integer转换为String,并使用String对象的length()方法输出字符串的长度:

    例如:public class Main {

    public static void main(String[] args) {

    Integer myInt = 100;

    String myString = myInt.toString();

    System.out.println(myString.length());

    }

    }

    3、装箱和拆箱

    基本数据类型转换为包装类的过程称为装箱,例如把 int 包装成 Integer 类的对象;包装类变为基本数据类型的过程称为拆箱,例如把 Integer 类的对象重新简化为 int。

    例如,public class Main {

    public static void main(String[] args) {

    int m = 100;

    Integer obj = m; // 自动装箱

    int n = obj; // 自动拆箱

    System.out.println("n = " + n);

    Integer obj1 = 100;

    System.out.println("obj等价于obj1返回结果为" + obj.equals(obj1));

    }

    }

    展开全文
  • Double包装类 Double是double的包装类 Double继承了Number类,实现了Comparable接口。 Double的方法 byteValue() 实例方法 将Double转换为byte类型返回 compare(double a, double b) 静态方法public static void ...
  • 今天就为大家介绍一下java包装类是什么意思,以及它包括哪些内容。首先,由于java中的数据类型int,double等不是对象,所以无法通过向上转型得到Object提供的方法,而像String却可以,原因是String是一个对象而...
  • 本文实例讲述了Java包装类原理与用法。分享给大家供大家参考,具体如下:产生:为了提高数据类型的的面向对象性,所以产生了包装类,包装类中有各种便利的方法数据类型对应的包装类使用:包装类可以实现将基本类型...
  • java包装类总是让人疑惑 它与值类型到底是怎么样一种关系? 本文将以int和Integer为例来探讨它们的关系java值类型有int short char boolean byte long float double除此之外的类型皆为引用类型 引用类型和值类型的...
  • 小白学Java包装类

    2021-03-09 07:30:32
    小白学Java包装类学习了许久的Java,我们知道Java是一种面向对象的语言,万物皆对象。但是我们之前在说到Java基本数据类型的时候,由于处理对象需要额外的系统开销,于是出于对性能的考虑,基本数据类型并不做为...
  • 包装类包装类是对基础类型数据的包装,让基础数据类型“伪装”成类,具有类的特性,可以进行类的方法操作。一、为什么有包装类Java 是个面向对象语言,所有的操作都是基于对象。Object 类是 Java 中的对象基础,...
  • Java包装类-Float包装类

    2021-09-03 14:57:53
    Float包装类 Float 是 float的包装类 Float继承了 Number类 实现了 Comparable接口 Float方法 byteValue() 示例方法public static void main(String[] args) { Float f = 10f; // 将 Float类型转换为 byte类型 ...
  • Java包装类作为参数传递 今天在回顾Java基础的时候发现了这么几行代码: public static void passReferenceValue(Boolean flg, Integer num) { flg = true; num = 10; } public static void main(String[] ...
  • Java入门之包装类

    2021-03-14 03:21:22
    包装类用途Java中有些异类(8种基本数据类型)它们不能像对象一样进行属性和方法的调用以及进行相互之间的对象化处理,包装类的存在就是为了解决这些异类产生的问题,让它们能像对象一样进行交互。包装类与基本数据...
  • 今天使用Java包装类和基本类型做比较的时候发现了包装本身存在的坑,参考的JDK版本是1.8.0_121,下面是例子代码:Short packShort=1;short baseShort=1;Integer packInt=1;int baseInt=1;//用Short的equals()方法...
  • java中的包装类

    2021-02-28 19:11:51
    java中有8种基本的数据类型,其中每一种数据类型都对应了一种包装类java是纯面向对象的语言,在java中的一切东西都可以用对象的形式表示,包括java中的基本数据类型。包装类中除了Integer和Character外,其他的...
  • java中八种包装类

    2021-02-12 09:21:21
    1、为什么要引入包装类public void dosome(Object obj){System.out.println(obj);是不被允许的,因为这里面只能传入一个对象,而不是一个数字,或者是变量。}2、 例如当方法要求输入一个对象,但是我们手里只有基本...
  • JAVA 包装类

    2021-03-07 01:26:04
    Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面向对象的,这在实际使用时存在很多的不便...包装类均位于java.lang包,包装类和基本数据类型的对应关系如下表所示:包装类对应表基本数据类型包装类...
  • Java8增强的包装类

    2021-03-09 23:48:58
    为了解决8中基本数据类型的变量不能当成Object类型变量使用的问题,Java提供了包装类的概念,为8种基本数据类型分别定义了相应的引用类型,并称为基本数据类型的包装类。JDK 1.5提供了自动装箱和自动拆箱功能。自动...
  • java八种包装类

    2021-03-09 15:36:43
    概述java中有八种基本类型分别对应八种包装类型,但是包装类里实际存储的值还是使用的基本类型。例如Interge使用成员变量value记录值 private final int value;特点包装类统一继承抽象类Number,并且实现了...
  • Java包装类

    2021-02-25 19:39:46
    Java 的 Java包装类java中的包装类提供了将原始数据类型转换为对象,以及将对象转换为原始数据类型的机制。自J2SE 5.0以来,自动装箱和取消装箱功能将原始对象和对象自动转换为原始数据类型。将原始数据类型自动转换...
  • Java 八种基本类型包装类

    千次阅读 2021-03-09 15:37:10
    基本数据类型 包装类型----------------------------------------------byte java.lang.Byte(父类Number)short java.lang.Short(父类Number)int java.lang.Integer(父类Number)long java.lang.Long(父类Number)...
  • 楼上的老哥都说得挺详细了想补充一个从面向对象和引用联系这个角度的解释,从而回答楼主的问题今日发现:使用强制转换object对象到int对象时,要用integer,而不是int那么为什么呢?一般人们会直接说,这是规则,...
  • 前言本文主要给大家介绍了关于Java包装类在比较时遇到的一些问题的解决方法,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。例1:输出结果1.包装类比较,不会自动拆包,但是Integer中会有一个...
  • java包装类详解

    2021-03-09 07:30:35
    为了使用方便和解决这个不足,在设计类时为每个基本数据类型设计了一个对应的类进行代表,这样八种基本数据类型对应的类统称为包装类(Wrapper Class),包装类均位于java.lang包中。二、包装类的用途为了使用方便,...
  • java包装类的概念

    2021-03-05 12:03:01
    但是如果没有对应的方法来操作这些数据,所以我们可以用一个类把基本数据类型的数据包装起来,这个类叫做包装类,在包装类中可以定义一些放啊,来操作基本类型数据基本数据类型对应包装类(位于java.long)...
  • I know the usual reasons that apply to general immutable classes, vizcan not change as a side effecteasy to reason about their stateinherently thread safeno need to provide clone/copy constructor/fact...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 327,994
精华内容 131,197
关键字:

java包装类的作用

java 订阅