一)  装箱与拆箱

Java中有概念是一切皆对象,因为所有的类都默认继承自Object。但是,对于数据类型是个例外,如short,int,long,float,double, byte,char,boolean。为了同一“一切接对象“这个概念,Java提供了装箱和拆箱功能。

也就是说Java为上面这八种数据类型提供了对应的Java类(包装类)实现。如下:

int

Integer

short

Short

long

Long

float

Float

double

Double

byte

Byte

char

Character

boolean

Boolean

将基本数据类型包装为Java类的过程成为装箱

将Java类转换为基本数据类型的过程成为拆箱

下面以int数据为例,演示装箱和拆箱:

packageorg.lyk.main;import org.lyk.entities.*;public classMain

{public static voidmain(String[] args)

{

Integer num1= new Integer(33);//装箱

int num2 = num1.intValue();//拆箱

System.out.println(num1 * 2);

System.out.println(num2* 2);

}

}

对于float,double等其它数据类型,Java也提供了如floatValue(),doubleValue()等函数用于拆箱操作。

一)  自动装箱与拆箱

上面的代码要我们显示的调用Integer构造函数装箱,然后调用intValue()函数拆箱。这样显得比较臃肿也不利于使用,为此Java提供了自动装箱与拆箱。请看下面的代码演示:

packageorg.lyk.main;import org.lyk.entities.*;public classMain

{public static voidmain(String[] args)

{

Integer num1= 33;int num2 =num1;

System.out.println(num1* 2);

System.out.println(num2* 2);

}

}

自动装箱/拆箱不用我们手动去写构造和调用拆箱函数,一切都自动完成。这样它的使用和普通数据类型没有任何区别了。

一)  数据类型划分

前面提到的八种数据类型,其实可以再分为两大类:

数值型(Number的直接子类):Short,Integer,Long,Double,Float,Double

对象型(Object的直接子类):Character,Boolean

二)  Object接收基本数据类型

有了装箱拆箱,我们可以用Object接收基本数据类型。

packageorg.lyk.main;import org.lyk.entities.*;public classMain

{public static voidmain(String[] args)

{

Object num1= 33;//先将33自动装箱为Integer,在默认向上转型为Object

int num2 = (Integer)num1;//先将Object强制向下转型为Integer,然后再自动拆箱为num2

System.out.println(num1);

System.out.println(num2);

}

}

上面代码中的注释已经解释了Object接收基本数据类型的过程。所以,在Java中,任何对象都可以用Object来接收,可以说“Object一统天下“了!

三) 基本数据类型与String的转换

使用上面提到的包装类,最大的好处是可以和String类型相互转换

基本数据类型转换为String,用包装类的partXXX()方法

String类型转换为基本数据类型,用String.valueOf()方法

以int数据为例:

packageorg.lyk.main;import org.lyk.entities.*;public classMain

{public static voidmain(String[] args)

{

{//基本数据类型转换为String

int num1 = 33;

Integer num2= 44;

System.out.println(String.valueOf(num1));

System.out.println(String.valueOf(num2));

}

{//String转换为基本数据类型

String str = "123";int num1 =Integer.parseInt(str);

Integer num2=Integer.parseInt(str);

System.out.println(String.valueOf(num1));

System.out.println(String.valueOf(num2));

}

}

}

java 装箱 拆箱的作用_Java中的装箱拆箱相关推荐

  1. java 静态代码块的作用_Java中什么是静态代码块,有什么作用?

    在java中使用static关键字声明的代码块.静态块用于初始化类,为类的属性初始化.每个静态代码块只会执行一次.静态代码块随着类加载而加载,有多个静态代码块的,按代码块前后顺序加载. 由于JVM在加 ...

  2. java静态初始化块的作用_Java 中的 static 使用之静态初始化块

    方法不在main函数里面不会被执行吗? public class HelloWorld { String name; // 声明变量name String sex; // 声明变量sex static ...

  3. java 装箱与拆箱_java中的装箱与拆箱

    什么是自动装箱拆箱 基本数据类型的自动装箱(autoboxing).拆箱(unboxing)是自J2SE 5.0开始提供的功能. 一般我们要创建一个类的对象实例的时候,我们会这样: Class a = ...

  4. java什么是栈和堆_JAVA中的栈和堆

    JAVA在程序运行时,在内存中划分5片空间进行数据的存储.分别是:1:寄存器.2:本地方法区.3:方法区.4:栈.5:堆. 基本,栈stack和堆heap这两个概念很重要,不了解清楚,后面就不用学了. ...

  5. java comparable接口作用_Java 中 Comparable 接口的意义和用法

    一, 为何需要实现Comparable接口 我们知道Collections类中包含很多对实现Collection接口的容器各种操作的静态方法. 当然, 其中最长用的莫过于排序了(Collections ...

  6. java中输出时 什么作用_JAVA中输入和输出处理(Java I/O)重点总结

    文件-使用File类操作文件: 什么是文件?  文件可认为是相关记录或放在一起的数据的集合. 文件一般存储在哪里?  储存在存储设备里. Java程序如何访问文件?  Java API:java.io ...

  7. java finally的作用_java中finally关键字的特点和作用是什么

    java中finally关键字的特点和作用是什么 发布时间:2020-09-08 11:12:01 来源:亿速云 阅读:114 作者:小新 小编给大家分享一下java中finally关键字的特点和作用 ...

  8. java中的class 类的作用_Java中Class和单例类的作用与类成员的理解

    Java中Class类的作用与深入理解 在程序运行期间,Java运行时系统始终为所有的对象维护一个被称为运行时的类型标识.这个信息跟踪着每个对象所属的类.JVM利用运行时信息选择相应的方法执行.而保存 ...

  9. java中exception作用_java中的异常Exception的划分,以及他们的特性。

    1.异常分为编译时异常(ExceptionSubclass)和运行时异常(RuntimeException): 2.编译时异常的发生概率高,而运行时异常的发生概率比较低,因此编译时在编写代码时应该处理 ...

最新文章

  1. 上帝视角任意切换:三维重建和图像渲染是怎么结合的?
  2. iOS解决两个静态库的冲突 duplicate symbol
  3. iOS crash 崩溃问题的追踪方法
  4. 详解BAT盘根错节的O2O矩阵格局
  5. .net 下语音合成
  6. Eigen(4)矩阵基本运算
  7. node进阶| 解决表单enctype=multipart/form-data 时获取不到Input值的问题
  8. 公认音质好的耳机品牌_什么品牌蓝牙耳机音质比较好?2020五款HIFI音质蓝牙耳机推荐...
  9. CentOS7 安装Redis Cluster集群
  10. 【codevs3324】新斯洛克
  11. 源码安装Tomcat及配置
  12. 多商户商城系统源码 B2B2C商城020社区团购 单多商户入驻商城H5系统源码
  13. ICGC:国际肿瘤基因组协会简介
  14. 获取窗口 history数量_带你走进JavaScript世界系列——history 对象
  15. Spring AOP编程官方文档解读之操作Advised对象
  16. 最小包围球(附完整代码)
  17. 辰星人才 | 旷视实习生鲁盼:UCLA朱松纯准博士,两年七篇顶会论文
  18. 浅谈group by和order by的用法和区别
  19. 云主机概念的简单介绍
  20. 关于使用网页做托福TPO在chrome上没有声音,找不到autoplay-policy

热门文章

  1. android 百度地图 黑屏,百度地图 Fragment之间切换黑屏现象解决方案
  2. matlab 对mnist手写数字数据集进行判决分析_Python神经网络编程:手写数字的数据集MNIST...
  3. Word海报随意排版、链接文本框有妙招
  4. C语言异或加密(XOR encryption)
  5. uniapp之苹果手机运行检测不出(亲测)
  6. photoshop打开文件提示 无法完成请求,因为文件格式模块不能解析该文件
  7. 程序员:我的if else代码一个字也不能简化!网友好评如潮
  8. mysql整段注释_数据库单行注释 MySQL可以在SQL代
  9. wps的开发工具中的按钮显示为灰色
  10. 打印机出现另存为xps_win7系统打印机打印文件弹出另存为xps/pdf的解决方法