java——基本数据类型包装类

落日映苍穹つ 2024-01-20 07:36 135阅读 0赞

八种基本数据类型的包装类,分为两大类型:
Number:Integer、Short、Long、Double、Float、Byte都是Number的子类,表示一个数字。
Object:Character、Boolean都是Object的直接子类。

  1. 基本数据类型 包装类
  2. int Integer
  3. char Character
  4. float Float
  5. double Double
  6. boolean Boolean
  7. byte Byte
  8. short Short
  9. long Long

装箱及拆箱操作:
将一个基本数据类型转换为包装类,那么这样的操作称为装箱操作。将一个包装类转换为一个基本数据类型,这样的操作称为拆箱操作。

  1. 方法 描述
  2. byteValue() Byte->byte
  3. doubleValue() Double->double
  4. floatValue() Float->float
  5. intValue() Integer->int
  6. longValue() Long->long
  7. shortValue() Short->short

示例:

  1. class Demo1 {
  2. public static void main(String[] args) {
  3. //把基本数据类型转换为包装类,称为自动装箱
  4. Integer i1 = new Integer(10);
  5. //把包装类转换为基本数据类型,称为自动拆箱
  6. int i2 = i1.intValue();
  7. }
  8. }

转型操作:
在包装类中,可以将一个字符串变为指定的基本数据类型,一般在输入数据时会使用较多。
在Integer类中将String变为int型数据:public static int parseInt(String s)
在Float类中将String变为float型数据:public static float parseFloat(String s)

注意:转型操作时,字符串必须由数字组成,否则会出现错误。

示例:

  1. class Demo2{
  2. public static void main(String[] args) {
  3. //把数值字符串转换为int类型
  4. String num1 = "12";
  5. int i1 = Integer.parseInt(num1);//1 建议用parseInt转换,因为2比1多做了一步(拆箱)
  6. int i2 = Integer.valueOf(num1);//2 valueOf方法返回的是Integer类型,再转换成int,要多做一步,效率相对低
  7. }
  8. }

享元模式(Flyweight Pattern):
它使用共享对象,用来尽可能减少内存使用量以及分享资讯给尽可能多的相似对象;它适用于当大量对象重复因而导致使用大量内存的时候,通常对象中的部分状态是可以分享的。常见做法是把它们放在外部数据结构,当需要使用时再将它们传递给享元。运用共享技术能有效的支持大量细粒度的对象。

示例:

  1. class Demo3 {
  2. public static void main(String[] args) {
  3. Integer x1 = new Integer(10);
  4. Integer x2 = new Integer(10);
  5. System.out.println(x1==x2);
  6. System.out.println(x1.equals(x2));
  7. Integer x3 = new Integer(128);
  8. Integer x4 = new Integer(128);
  9. System.out.println(x3==x4);
  10. System.out.println(x3.equals(x4));
  11. Integer x5 = 10;
  12. Integer x6 = 10;
  13. System.out.println(x5==x6);
  14. System.out.println(x5.equals(x6));
  15. Integer x7 = 128;
  16. Integer x8 = 128;
  17. System.out.println(x7==x8);
  18. System.out.println(x7.equals(x8));
  19. Integer x9 = 127;
  20. Integer x10 = 127;
  21. System.out.println(x9==x10);
  22. System.out.println(x9.equals(x10));
  23. }
  24. }

输出结果:

  1. false
  2. true
  3. false
  4. true
  5. true
  6. true
  7. false
  8. true
  9. true
  10. true

解释:
一个字节以内的数,java认为是你经常使用的数,用享元模式把这些数做了缓存。例如,把10赋给x5之后,10会被放在常量池里。当x6要用到10时,先从常量池的共享对象里找有没有10,如果有10,x6直接指向10,所以(x5==x6)的结果是true。超过一个字节的数,例如:x7 = 128,就不在享元范围内,相当于new了一个数。

发表评论

表情:
评论列表 (有 0 条评论,135人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Java--基本类型包装

    一、基本类型包装类 将基本数据类型封装成对象的好处在于可以在对象中定义更多的功能方法操作该数据。 1、常用操作:用于基本数据类型与字符串之间的转换。 2、基本类型和

    相关 Java基础:基本数据类型包装

    1. 基本类型包装类概述 为了方便操作基本数据类型值,将其封装成了对象,在对象中定义了属性和行为丰富了该数据的操作。用于描述该对象的类就称为基本数据类型对象包装类。

    相关 基本数据类型包装

    基本数据类型,Java中提供了8中基本的数据类型如int float boolean等 包装类型 每一个数据类型都会一一对应一个包装类型。如 boolean对应的包装类

    相关 Java 基本数据类型包装

    【基本数据类型对象包装类】 想要对基本类型数据进行更多的操作,最方便的方式就是将其封装成对象。 为啥呢?因为在对象描述中就可以定义更多的属性和行为对该基本数据类型进行操作...