文章目录

  • 包装类
    • 概述
    • 装箱与拆箱
      • 装箱
      • 拆箱
    • 自动装箱与自动拆箱
    • 基本类型与字符串类型之间的相互转换

包装类

概述

基本数据类型使用方便,但是没有对应的方法来使用这些数据,因此我们可以使用一个类,把基本数据类型包装起来,这个类就叫做“包装类”。在包装类中可以定义一些基本的方法,来操作基本类型的数据。

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

装箱与拆箱

装箱:从基本类型转换为包装类对象
拆箱:从包装类对象转换为对应的基本类型

以Integer类为例:

装箱

  构造方法:Integer(int value) 构造一个新分配的 Integer 对象,它表示指定的 int 值。Integer(String s) 构造一个新分配的 Integer 对象,它表示 String 参数所指示的 int 值。传递的字符串,必须是基本类型的字符串,否则会抛出异常 "100" 正确  "a" 抛异常静态方法:static Integer valueOf(int i) 返回一个表示指定的 int 值的 Integer 实例。static Integer valueOf(String s) 返回保存指定的 String 的值的 Integer 对象。

拆箱

   成员方法:int intValue() 以 int 类型返回该 Integer 的值。
public class Demo01Integer {public static void main(String[] args) {//装箱:把基本类型的数据,包装到包装类中(基本类型的数据->包装类)//构造方法Integer in1 = new Integer(1);//方法上有横线,说明方法过时了System.out.println(in1);//1 重写了toString方法Integer in2 = new Integer("1");System.out.println(in2);//1//静态方法Integer in3 = Integer.valueOf(1);System.out.println(in3);//Integer in4 = Integer.valueOf("a");//NumberFormatException数字格式化异常Integer in4 = Integer.valueOf("1");System.out.println(in4);//拆箱:在包装类中取出基本类型的数据(包装类->基本类型的数据)int i = in1.intValue();System.out.println(i);}
}

自动装箱与自动拆箱

概念:基本类型的数据和包装类之间可以自动的相互转换
(JDK1.5之后出现的新特性)

  • 自动装箱: 直接把int类型的整数赋值包装类
    Integer in = 1; 就相当于 Integer in = new Integer(1);

  • 自动拆箱:in是包装类,无法直接参与运算,可以自动转换为基本数据类型,在进行计算
    in+2;就相当于 in.intVale() + 2 = 3
    in = in.intVale() + 2 = 3 又是一个自动装箱

  • ArrayList集合无法直接存储整数,可以存储Integer包装类

 ArrayList<Integer> list = new ArrayList<>();list.add(1); //-->自动装箱 list.add(new Integer(1));int a = list.get(0); //-->自动拆箱  list.get(0).intValue();

基本类型与字符串类型之间的相互转换

基本类型->字符串(String)

  • 1.基本类型的值+"" 最简单的方法(工作中常用)

  • 2.包装类的静态方法toString(参数),不是Object类的toString() 重载
    static String toString(int i) 返回一个表示指定整数的 String 对象。

  • 3.String类的静态方法valueOf(参数)
    static String valueOf(int i) 返回 int 参数的字符串表示形式。

        int i1 = 100;String s1 = i1+"";System.out.println(s1+200);//100200String s2 = Integer.toString(100);System.out.println(s2+200);//100200String s3 = String.valueOf(100);System.out.println(s3+200);//100200

字符串(String)->基本类型
使用包装类的静态方法parseXXX(“字符串”);<Character类不能用>
Integer类: static int parseInt(String s)
Double类: static double parseDouble(String s)

 int i = Integer.parseInt(s1);System.out.println(i-10);int a = Integer.parseInt("a");//报错NumberFormatExceptionSystem.out.println(a);

包装类概述、装箱与拆箱相关推荐

  1. 1.1 Java包装类、装箱和拆箱

    在 Java 的设计中提倡一种思想,即一切皆对象.但是从数据类型的划分中,我们知道 Java 中的数据类型分为基本数据类型和引用数据类型,但是基本数据类型怎么能够称为对象呢?于是 Java 为每种基本 ...

  2. java+包装类,装箱和拆箱_Java包装类,装箱和拆箱详解

    下面要给大家讲到的就是Java内置包装类方面的知识,这章主要会讲到Java包装类装箱和拆箱方面的知识,一起来了解一下. Java为每种基本数据类型分别设计了对应的类,这就被叫做是包装类(Wrapper ...

  3. 包装类-自动装箱、拆箱

    文章目录 包装类 自动装箱 自动拆箱 包装类 8 种基本数据类型: byte short int long float double char boolean 在 java 中,专门为这 8 种基本数 ...

  4. 包装类说明以及包装类的装箱和拆箱

    一.包概念理解 在java程序中,包是用于存放类的容器,包名要全部小写(规范),在磁盘上显示为层层深入的文件夹.包的存在是为了更容易识别类资源,一个类名资源非常宝贵,为了能够识别不同的人所编写的相同类 ...

  5. 包装类(装箱与拆箱)

    包装类(装箱与拆箱) 包装类有八种,分别对应基本数据类型(Byte,Short,Boolean,Integer,Long,Float,Double,Character),这八种都继承了Number,下 ...

  6. Java包装类、装箱和拆箱

    Java 的设计中提倡一种思想,即一切皆对象.但是从数据类型的划分中,我们知道 Java 中的数据类型分为基本数据类型和引用数据类型,但是基本数据类型怎么能够称为对象呢?于是 Java 为每种基本数据 ...

  7. 一、基础篇--1.1Java基础-包装类的装箱和拆箱

    包装类:java是典型的面向对象编程,但是八种基本数据类型并不支持面向对象编程.基本类型的数据不具备对象的特性,没有属性和方法.沿用它们只是为了迎合人类根深蒂固的习惯,并的确能简单.有效地进行常规数据 ...

  8. 30、Java高级特性——Java API、枚举、包装类、装箱和拆箱

    目录 课前先导: 一.Java API 1.API 2.Java API 3.Java API常用包 二.枚举类型 1.枚举 2.枚举类 3.代码演示 3.1  创建枚举类 3.2  创建测试类 4. ...

  9. Java 包装类 自动装箱和拆箱

    包装类(Wrapper Class) 包装类是针对于原生数据类型的包装. 因为有8个原生数据类型,所以对应有8个包装类. 所有的包装类(8个)都位于java.lang下. Java中的8个包装类分别是 ...

  10. [JavaSE](BigDecimal,包装类、装箱、拆箱、二分查找、冒泡排序、递归)

    ✨✨个人主页:沫洺的主页

最新文章

  1. 那些年,面试被虐过的红黑树
  2. QT的QPen类的使用
  3. Chess Queen【数学】
  4. 我的世界基岩版种子和java版种子_我的世界:对萌新最友好的种子,基岩版通用,对老玩家也很适合!...
  5. 数据科学家应该掌握的12种机器学习算法(附信息图)
  6. 理解HTTP 代理,负载均衡,缓冲(Buffering)和缓存(Caching)
  7. 修改文件 火车票买下铺_12306修改代码买下铺?12306码农太弱了吧 (转载)
  8. Halcon 3D 1 读取3d数据
  9. vs2010学习版安装与激活
  10. [渝粤教育] 长安大学 液压传动 参考 资料
  11. 03-平方矩阵的快速解法
  12. 推特狗狗档案数据集清洗分析及可视化
  13. 一句话木马、中国菜刀、图片一句话制作、过狗一句话
  14. 漂亮的表格样式(使用CSS样式表控制表格样式)
  15. Java日志框架——Logback
  16. ERP 基础数据 概念
  17. Speech recognition模型:MoChA(Monotonic Chunkwise Attention)
  18. python安装详细步骤windows10_【python安装配置教程win10】win10 怎么安装python
  19. php语言精髓,PHP语言精粹
  20. 五大主流浏览器的内核

热门文章

  1. transformer xl 用于文本生成
  2. 技术人如何职场晋升?这些步骤你都了解吗?
  3. SPI总线之“ 一主多从 “注意事项
  4. python中用matplotlib画多幅图时出现图形部分重叠的解决方案
  5. xshell关闭后 数据库进程_关闭命令行或者xshell窗口后后台依旧执行命令
  6. C# WinForm 如何实现窗体的关闭时温馨提示
  7. 视频绿幕抠像应用:用FastDeploy部署RVM拯救视频剪辑师的发量
  8. dedecms织梦搜索页有缩略图就调用无缩图就不显示
  9. 数据库专题——SQL语句统计每天、每月、每年的数据
  10. 【Django】Django中cookies、session和token实现demo