目录

  • 1 为什么提供包装类?
  • 2 装箱和拆箱
  • 3 包装类的4个特点
  • 4 包装类类型

正文

1 为什么提供包装类?
  1) 由于Java的基本数据类型功能简单,不具备面向对象的特性,实际使用时存在很多的不便,所以为所有的基本类型都提供了对应的包装类。
  2) 包装类为基本数据类型提供一些操作方法和属性(最大值、最小值等),比如包装类提供了将字符串转为基本类型的静态方法以及最小值属性。 

Float f1 = Float.valueOf("1.01");
Float f2 = Float.MIN_VALUE;

  3) 在涉及对象的操作时,可以使用包装类对象替换基本数据类型,比如HashMap只能储存Object对象的引用,不能存储基本类型。

Map map = new HashMap();
map.put("key1",new Integer(100));
map.put("key2",100);//由于Java5.0以上支持自动装箱拆箱,所以此行代码编译也能通过,编译器默认将100转为了它的包装类。

  

2 装箱和拆箱:

  1) 装箱:把基本数据类型转为包装类。
  2) 拆箱:把包装类转为基本数据类型。
  3) Java5.0以上支持自动装箱拆箱。

Integer i1= 100;// 自动装箱,编译器自动调用Integer.valueOf(100);
int i2 = i1;// 自动拆箱,编译器自动调用i1.intValue(100);
int i3 = new Integer(100);// 自动拆箱

  

3 包装类的4个特点:
  1) 包装类都是final类,不能被继承。
  2) 值不变:包装类第一次创建后,它表示的值就不会再改变,也没有提供任何方法改变它。
  3) 提供两种构造函数:
    ① 第一种构造函数:以基本类型值作为参数。       
    ② 第二种构造函数:以String作为参数,且String表示的值是十进制的。   

//第一种构造函数
Integer i1 = new Integer(010); //表示八进制,值为8
//第二种构造函数
Integer i2 = new Integer("010"); // 表示十进制的10

  4) 都有静态域TYPE,表示Class对象。Integer.TYPE和int.class等价。

4 包装类类型:


  1) Void(比较特殊,和一般包装类不一样,可忽略):
    ① 没有要包装的值,不提供方法,不能被实例化。
    ② Void只有一个静态TYPE域,等价于void.class。
  2) Boolean
  3) Character
  4) Number:Number是一个抽象类,所有基本数值类型的包装类都继承该类,且都要覆盖Number的以下方法,以便数值之间进行转换。基本数字类型包装类(Byte、Short、Integer、Long、Float、Double)

byteValue(); shortValue();  intValue();    longValue();    floatValue(); doubleValue(); 

  5) 整数包装类:Byte、Short、Integer、Long,针对-128到127之间的数据,做了一个数据 缓冲池,所以在进行==比较时,要特别注意。如果直接用基本类型和包装类型比较,则包装类型会退化为基本类型。

Integer i1 = 127; // 自动装箱,使用Integer.valueOf(127),取的缓冲区中的对象。
Integer i2 = 127;
System.out.println(i1 == i2);// true
Integer i3 = new Integer(127); // 不去取缓冲区的对象,所以不相等
Integer i4 = new Integer(127);
System.out.println(i3 == i4);// false Integer i5 = 128;// 自动装箱,使用Integer.valueOf(128),但超过了127,所以也不会取缓冲区中的对象。
Integer i6 = 128;
System.out.println(i5 == i6);// false int i7 = 128;
System.out.println(i6 == i7);// true 和基本类型比较时,包装类型会自动转为基础类型,所以相等

  6) 浮点数包装类:Float、Double    

J2SE-包装类的更多相关文章

  1. J2SE核心开发实战(二)——字符串与包装类

    字符串与包装类 一.实验简单介绍 在本章.我们将学习一些用于处理字符串的API以及包装类的相关知识. 本章知识点 字符串API 包装类及其应用 二.认识字符串类 1. 什么是字符串类 Java字符串类 ...

  2. Integer与int的区别(包装类和基本数据类型的区别)

    1. 默认值 int默认值为0,Integer的默认值为null.推论:Integer既可以表示null又可以表示0 2. 包装类中提供了该类型相关的很多算法操作方法 如把十进制装换为2进制(toBi ...

  3. final和包装类

    ==================================================================================================== ...

  4. java之数据结构之链表及包装类、包

    链表是java中的一种常见的基础数据结构,是一种线性表,但是不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的指针.与线性对应的一种算法是递归算法:递归算法是一种直接或间接的调用自身算法的过 ...

  5. 0024 Java学习笔记-面向对象-包装类、对象的比较、String常量池问题

    包装类 基本类型-->包装类 byte-->Byte short-->Short int-->Integer long-->Long char-->Characte ...

  6. J2EE,J2SE,J2ME,JDK,SDK,JRE,JVM区别

    转自:http://www.metsky.com/archives/547.html 一.J2EE.J2SE.J2ME区别 J2EE——全称Java 2 Enterprise Edition,是Jav ...

  7. Java基础知识点1:基本类型包装类

    基本类型的包装类 简介 通常来说我们在程序中经常会使用元类型,比如 int data = 1; float data = 2.1F; 但是在有些场景中不能直接使用元类型,比如如果我们想要建立一个int ...

  8. Java学习_int和Integer的区别+包装类

    1.Java 中的数据类型分为基本数据类型和引用数据类型 int是基本数据类型,Integer是引用数据类型: Ingeter是int的包装类,int的初值为0,Ingeter的初值为null. 2. ...

  9. Java基础——基本类型和包装类、基本类型和字符串之间的转换

    基本类型和包装类之间的转换 基本类型和包装类之间经常需要互相转换,以 Integer 为例(其他几个包装类的操作雷同哦): 在 JDK1.5 引入自动装箱和拆箱的机制后,包装类和基本类型之间的转换就更 ...

  10. J2EE、J2SE、J2ME是什么意思?

    本文介绍Java的三大块:J2EE.J2SE和J2ME.J2SE就是Java2的标准版,主要用于桌面应用软件的编程:J2ME主要应用于嵌入是系统开发,如手机和PDA的编程:J2EE是Java2的企业版 ...

随机推荐

  1. JS难点--面向对象(封装)

    我觉得js的难点之一就是面向对象编程. 面向对象 它是一种编程思想,它在写法上比面向过程相对来说复杂一些: 以下是我学习中关于面向对象的知识点总结:   1.什么是对象 从广义上说,"一切皆 ...

  2. Java基础总结--泛型总结

    -----泛型------JDK1.5出现的机制1.泛型出现的原因--简化书写,提高安全性技术的由来是为了解决问题,现在存在该问题,所有的容器定义类型为Object,所以任何对 象均可以放入容器--进 ...

  3. SQL&SQLite

    注册博客园有一年多了,每次都是来找点资料,从来没有写过点什么,促使我开始写博客的原因主要有两点 一是在查找资料的过程中,经常需要重复的查找某个知识点,一个知识点时间长了之后总是忘记,这样重复的过程却是 ...

  4. 磨刀不误砍柴工!vs2010快捷键大全

    最常用的快捷键: VS2012变化的快捷键: 注释::VS2010是(Ctrl+E,C),VS2012是(Ctrl+K, Ctrl+C),实际操作,按住Ctrl键不放,先按K键,再按C键.相当于Ctr ...

  5. 异常详细信息: Abp.AbpException: No language defined!

    程序运行后,出现错误:No language defined! 解决方法: 1.检查是否已创建数据库,若未创建则在程序包管理控制台执行命令:Update-Database 2.检查表AbpLangua ...

  6. JavaScript 中的对象引用

    ECMAScirpt 变量有两种不同的数据类型:基本类型,引用类型.也有其他的叫法,比如原始类型和对象类型,拥有方法的类型和不能拥有方法的类型,还可以分为可变类型和不可变类型,其实这些叫法都是依据这两 ...

  7. Best MVC Practices(最优的MVC布局)

    Best MVC Practices 最优的MVC布局策略 Model View Controller 1.数据层 2.视图层 3.控制器层 Although Model-View-Controlle ...

  8. JavaUtil_04_验证码生成器

    一.原理 验证码其实就是随机串.原理上可分为两种: 1.简单的验证码 直接通过字母和数字的ASCII码生成.本文采用的验证码就是这种. 2.复杂的验证码 通过一个随机串,一个指定串(如accesske ...

  9. 【IDEA】向IntelliJ IDEA创建的项目导入Jar包的两种方式

    转载请注明出处:http://blog.csdn.net/qq_26525215 本文源自[大学之旅_谙忆的博客] 今天用IDEA,需要导入一个Jar包,因为以前都是用eclipse的,所以对这个id ...

  10. 自定义Base16加密

                                                                                              自定义Base16加 ...