文章目录

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

包装类

概述

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

基本数据类型 对应的包装类(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. python数据统计 矢量图_用python中的矢量化解决方案计算max draw down
  2. 强势崛起的Python会在十年内取代Java吗?
  3. sshd_config配置详解
  4. [LinqPad妙用]-在Net MVC中反射调用LinqPad中的Dump函数
  5. 心语收集13:有时候我真想忘了你,只记得这个世界,然而,我常常忘了整个世界,只记得你。...
  6. 北京正研究“车路协同”模式,将打造自动驾驶测试专用道路
  7. scala type关键字用于起别名
  8. Modelsim SE 下载安装、注册详细教程
  9. JTAG Bypass命令案例解析
  10. 简约html5动态个人简历,HTML5 简约风格的程序员简历模板
  11. SAXReader的使用
  12. CF#446 Gluttony(思维题)
  13. 这2个PDF转Word免费不限页数工具很多人没用过
  14. PostgreSQL年龄的处理
  15. 阿里云服务器Windows系统试用和配置
  16. 同步锁 (synchronized)
  17. 用Python玩我的世界(1.环境搭建)
  18. Xamarin是无懈可击还是鸡肋?浅谈对Xamarin的学习
  19. 【沐风老师】3DMAX一键种草插件GrassScatter使用方法详解
  20. 最后一天了,四个关键字回顾程序员小跃的2020

热门文章

  1. linux从网页下载指令
  2. 你真知道sqrt(4)是多少吗
  3. OsgEarth下战术标图
  4. 理解Python中的元类(metaclass)
  5. php 危险函数_一些需要禁用的PHP危险函数(disable_functions)
  6. 把Hyper-V Server 2008R2装进USB存储设备
  7. oracle查看未提交事务
  8. 初用 IRC freenode
  9. protel 输出器件列表清单BOM (bill of material)
  10. 微软的官方升级网站系统--Windows update