Java基础详解之包装类的装箱拆箱

一、包装类

概念:

Java提供了两个类型系统,基本数据类型和引用数据类型,使用基本数据类型在于效率,然而很多情况下回创建对象使用,因为对象能做更多的功能。

所以可以使用一个类,把基本数据类型包装起来,在类中定义一些方法,这就叫做包装类。我们可以用这种方法来操作这些数据类型

基本类型 对应包装类(位于java.lang中)
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean

二、装箱与拆箱

概念

基本类型与对应的包装类对象之间,来回转换的过程称为“装箱”与“拆箱”。

装箱:

把基本类型的数据,包装到包装类中(基本类型数据->包装类)

语法格式:

1.包装类 别名 = new 包装类(对应值);

Integer(int value) 构造一个新分配的 Integer对象,它表示指定的 int 值

Integer in1 = new Integer(1);
 	System.out.println(in1);

输出结果是

2.包装类 别名 = new 包装类(“对应字符串”);

Integer(String s) 构造一个新分配的 Integer对象,它表示String 参数所指定的 int 值

【传递的字符串,必须是与选择的包装类的值相符合,否则会异常。 比如:在Integer "100"正常 “a” 错误】

Integer in2 = new Integer("2");
		System.out.println(in2);
		Integer in4 = Integer.valueOf("a");
		System.out.println(in4);

输出结果是:

这里输入“a”提示错误,NumberFormatException 数字格式化异常

三、静态方法

包装类 别名 =包装类.valueOf(对应值);

static Integer.valueOf(int i) 返回一个指定的 int 值的 Integer 实例。

Integer in3 =Integer.valueOf(3);
		System.out.println(in3);

输出结果是:

包装类 别名 =包装类.valueOf(“对应字符串”);

static Integer.valueOf(String s) 返回一个指定的 String 值的 Integer 对象。

【传递的字符串,必须是与选择的包装类的值相符合,否则会异常。 比如:在Integer "100"正常 “a” 错误】

Double in4 = Double.valueOf("3.00");
		System.out.println(in4);

输出结果是:

拆箱:

在包装中取出基本类型的数据(包装类->基本类型的数据)

【前提已经装箱过的,再进行拆箱提取出来】

语法格式:

以int的包装类做演示
int i = in1.intValue(); 【什么类型用什么value】
int.intValue() 以 int 类型返回该 Integer 的值。

Integer in1 = new Integer(1);
	System.out.println(in1);
	int i = in1.intValue();
	System.out.println(i);

输出结果是:

四、自动装箱与自动拆箱

自动装箱

直接吧数据类型的数值赋予包装类。

语法格式: 数据类型 别名 = 值;

Double in =1.0;
System.out.println(in);

输出结果是:1.0

  • Double in =1.0; 相当于是 Double in = new Double(1.0);

自动拆箱

包装类无法直接计算,自动转化为数据类型,再进行计算。

in = in +2.4;
System.out.println(in);

输出结果是:3.4

in + 2.4; 相当于是 in.DoubleValue() + 2.4 = 3.4

到此这篇关于Java基础详解之包装类的装箱拆箱的文章就介绍到这了,更多相关java包装类的装箱拆箱内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • java——Byte类/包装类的使用说明

    Byte类/包装类 包装类是一个常量类,可实例化 (意义:帮助对应的数据类型进行数据类型) java数据类型包括内置数据类型和引用数据类型 内置数据类型 :含6中数字类型(四个整数型,两个浮点型),一种字符类型,还有布尔类型 byte byte:数据类型占用1个字节=8bit,以二进制补码表示的整数 取值范围:默认值为0,最小值为-128(-2^7);最大值是127(2^7-1) 数据类型 关键字 内存中占用字节数 取值范围 默认值 布尔型 boolean 1 true/false FALSE

  • Java基本数据类型与对应的包装类(动力节点java学院整理)

    Java是面向对象的编程语言,包装类的出现更好的体现这一思想. 其次,包装类作为类是有属性有方法的,功能比基本数据类型要强大. Java语言提供了八种基本类型.六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型. 1.整数:包括int,short,byte,long ,初始值为0 2.浮点型:float,double ,初始值为0.0 3.字符:char ,初始值为空格,即'' ",如果输出,在Console上是看不到效果的. 4.布尔:boolean ,初始值为false 注

  • Java基本类型包装类概述与Integer类、Character类用法分析

    本文实例讲述了Java基本类型包装类概述与Integer类.Character类用法.分享给大家供大家参考,具体如下: 基本类型包装类概述 将基本数据类型封装成对象的好处在于可以在对象中定义更多的功能方法操作该数据. 常用的操作之一:用于基本数据类型与字符串之间的转换. 基本类型和包装类的对应 Byte,Short,Integer,Long,Float,Double,Character,Boolean Integer类 为了让基本类型的数据进行更多的操作,Java就为每种基本类型提供了对应的包装

  • Java包装类的缓存机制原理实例详解

    这篇文章主要介绍了Java包装类的缓存机制原理实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 java 包装类的缓存机制,是在Java 5中引入的一个有助于节省内存.提高性能的功能,只有在自动装箱时有效 Integer包装类 举个栗子: Integer a = 127; Integer b = 127; System.out.println(a == b); 这段代码输出的结果为true 使用自动装箱将基本类型转为封装类对象这个过程其实

  • 详解Java包装类及自动装箱拆箱

    Java包装类 基本类型 大小 包装器类型 boolean / Boolean char 16bit Boolean byte 8bit Byte short /16bit Short int 32bit Integer long 64bit Long float 32bit Float double 64bit Double void / Void Java 的包装类有两个主要的目的: Java包装类将基本数据类型的值"包装"到对象中,对基本数据类型的操作变为了对对象进行操作,从而使

  • Java基本类型和包装类型的区别

    包装类型可以为 null,而基本类型不可以 别小看这一点区别,它使得包装类型可以应用于 POJO 中,而基本类型则不行. POJO 是什么呢?这里稍微说明一下. POJO 的英文全称是 Plain Ordinary Java Object,翻译一下就是,简单无规则的 Java 对象,只有属性字段以及 setter 和 getter 方法,示例如下. class Writer { private Integer age; private String name; public Integer ge

  • java中Integer包装类装箱的一个细节详解

    前言 java有八个基本数据类型,每个都有对应的一个包装类,比如int对应的Integer. Integer 是int的包装类型,数据类型是类,初值为null,从jdk1.5开始,java引入了自动拆装箱,可以直接进行形如Integer i = 20形式的赋值,编译器会自动将其转换为Integer i = Integer.valueOf(20)进行装箱,拆箱则是将int j = i的形式转换成了int j = i.intValue() . 装箱有个细节,如果不注意很容易出错,来看一下: Inte

  • Java包装类原理与用法实例分析

    本文实例讲述了Java包装类原理与用法.分享给大家供大家参考,具体如下: 产生: 为了提高数据类型的的面向对象性,所以产生了包装类,包装类中有各种便利的方法 数据类型对应的包装类 使用: 包装类可以实现将基本类型转换成字符串(或者字符串转换成基本类型): 1.包装类中方法parseXXX 2.构造器 3.对于String,使用String中的valueof能将基本数据类型转换成字符串 包装类的实例可以与基本数据类型比较: 直接把实例中包装的数值拿出来比较 当如果是包装类实例的比较的话,比较的是所

  • Java基础教程之基本类型数据类型、包装类及自动拆装箱

    前言 我们知道基本数据类型包括byte, short, int, long, float, double, char, boolean,对应的包装类分别是Byte, Short, Integer, Long, Float, Double, Character, Boolean.关于基本数据类型的介绍可参考Java基础(一) 八大基本数据类型 那么为什么需要包装类? JAVA是面向对象的语言,很多类和方法中的参数都需使用对象,但基本数据类型却不是面向对象的,这就造成了很多不便. 如:List<in

  • Java基础详解之包装类的装箱拆箱

    一.包装类 概念: Java提供了两个类型系统,基本数据类型和引用数据类型,使用基本数据类型在于效率,然而很多情况下回创建对象使用,因为对象能做更多的功能. 所以可以使用一个类,把基本数据类型包装起来,在类中定义一些方法,这就叫做包装类.我们可以用这种方法来操作这些数据类型 基本类型 对应包装类(位于java.lang中) byte Byte short Short int Integer long Long float Float double Double char Character bo

  • java基础详解之数据类型知识点总结

    一.基本数据类型 1.1 整形 1.1.1 int int a = Integer.MAX_VALUE;//int最大值 int b = Integer.MIN_VALUE;//int最小值 在java中int占4个字节,和操作系统每任何关系.这也是java的可移植性. int 能表示的范围为-231~231-1,如果超出最大值或者小于最小值则会发生溢出. public static void main(String[] args) { int a = Integer.MAX_VALUE;//i

  • Java 基础详解(泛型、集合、IO、反射)

    计划把 Java 基础的有些部分再次看一遍,巩固一下,下面以及以后就会分享自己再次学习的一点笔记!不是有关标题的所有知识点,只是自己觉得模糊的一些知识点. 1.对于泛型类而言,你若没有指明其类型,默认为Object: 2.在继承泛型类以及接口的时候可以指明泛型的类型,也可以不指明: 3.泛型也数据库中的应用: 写一个 DAO 类对数据库中的数据进行增删改查其类型声明为 <T> .每张表对应一个类,对应每一张表实现一个类继承该 DAO 类并指明 DAO 泛型为该数据表对应的类,再实现一个与该表匹

  • Java基础详解之集合框架工具Collections

    一.Collections 说明:Collcetions是集合框架中的工具,特点是方法都是静态的. 二.Collections中的常见方法 1,对list进行二分查找:前提该集合一定要有序. int binarySearch(list,key);//要求list集合中的元素都是Comparable的子类. int binarySearch(list,key,Comparator); 2,对list集合进行排序. sort(list); sort(list,comaprator); 3,对集合取最

  • Java基础详解之内存泄漏

    一.什么是内存泄漏 内存泄漏是指你向系统申请分配内存进行使用(new/malloc),然后系统在堆内存中给这个对象申请一块内存空间,但当我们使用完了却没有归系统(delete),导致这个不使用的对象一直占据内存单元,造成系统将不能再把它分配给需要的程序. 一次内存泄漏的危害可以忽略不计,但是内存泄漏堆积则后果很严重,无论多少内存,迟早会被占完,造成内存泄漏. 二.Java内存泄漏引起的原因 1.静态集合类引起内存泄漏: 像HashMap.Vector等的使用最容易出现内存泄露,这些静态变量的生命

  • Java基础详解之面向对象的那些事儿

    一.面向对象的理解 首先,要清楚一点,与面向过程不同,面向对象有着自己独特的优势.举个通俗的例子,设想我们要得到一把椅子,面向过程的话我们可能需要通过买木材,设计图纸,最后切割而成.但对于面向对象来说,我们只需找到一个家具店,买一把椅子即可. 面向对象也是Java语言的特点之一,其实从idea中不难看出,这种面向对象的语言所具有: 1.易维护 2.易复用 3.易扩展 二.三大特性 2.1 继承(extends): 顾名思义,是获取原有的基础,在此基础上进行操作的一个过程.使用已存在的类的定义作为

  • java开发RocketMQ消息中间件原理基础详解

    RocketMQ 是什么 Github 上关于 RocketMQ 的介绍: RcoketMQ 是一款低延迟.高可靠.可伸缩.易于使用的消息中间件.具有以下特性: 支持发布/订阅(Pub/Sub)和点对点(P2P)消息模型 在一个队列中可靠的先进先出(FIFO)和严格的顺序传递 支持拉(pull)和推(push)两种消息模式 单一队列百万消息的堆积能力 支持多种消息协议,如 JMS.MQTT 等 分布式高可用的部署架构,满足至少一次消息传递语义 提供 docker 镜像用于隔离测试和云集群部署 提

  • 如何通过源码了解Java的自动装箱拆箱详解

    目录 什么叫装箱 & 拆箱? 首先看一段代码 装箱(valueOf()) 为什么要有[-128,127]的缓存? 为什么是[-128,127]? 自动装箱带来的性能问题 小总结 拆箱(intValue) 补充:自动装箱.拆箱总是会发生吗? 总结 什么叫装箱 & 拆箱? 将int基本类型转换为Integer包装类型的过程叫做装箱,反之叫拆箱. 首先看一段代码 public static void main(String[] args) { Integer a = 127, b = 127;

  • Java 泛型详解与范例

    目录 一.泛型的使用 二.泛型类的定义-类型边界 三.类型擦除 四.泛型类的使用-通配符 五.泛型方法 六.泛型的限制 一.泛型的使用 前面我们学集合的时候,简单的说过泛型的使用.如下: ArrayList<Integer> list = new ArrayList<>(); Queue<Integer> queue = new LinkedList<>(); 那么使用是这样的简单,该注意什么? 尖括号里的类型,只能写引用类型 基础数据类型的话,就需要写相应

随机推荐