Java中基本类型的装箱和拆箱

步骤 1 : 封装类

所有的基本类型,都有对应的类类型

比如int对应的类是Integer

这种类就叫做封装类

  1. package digit;
  2. public class TestNumber {
  3. public static void main(String[] args) {
  4. int i = 5;
  5. //把一个基本类型的变量,转换为Integer对象
  6. Integer it = new Integer(i);
  7. //把一个Integer对象,转换为一个基本类型的int
  8. int i2 = it.intValue();
  9. }
  10. }

步骤 2 : Number类

数字封装类有

Byte,Short,Integer,Long,Float,Double

这些类都是抽象类Number的子类

  1. package digit;
  2. public class TestNumber {
  3. public static void main(String[] args) {
  4. int i = 5;
  5. Integer it = new Integer(i);
  6. //Integer是Number的子类,所以打印true
  7. System.out.println(it instanceof Number);
  8. }
  9. }

步骤 3 : 基本类型转封装类

  1. package digit;
  2. public class TestNumber {
  3. public static void main(String[] args) {
  4. int i = 5;
  5. //基本类型转换成封装类型
  6. Integer it = new Integer(i);
  7. }
  8. }

步骤 4 : 封装类转基本类型

  1. package digit;
  2. public class TestNumber {
  3. public static void main(String[] args) {
  4. int i = 5;
  5. //基本类型转换成封装类型
  6. Integer it = new Integer(i);
  7. //封装类型转换成基本类型
  8. int i2 = it.intValue();
  9. }
  10. }

步骤 5 : 自动装箱

不需要调用构造方法,通过=符号自动把 基本类型 转换为 类类型 就叫装箱

  1. package digit;
  2. public class TestNumber {
  3. public static void main(String[] args) {
  4. int i = 5;
  5. //基本类型转换成封装类型
  6. Integer it = new Integer(i);
  7. //自动转换就叫装箱
  8. Integer it2 = i;
  9. }
  10. }

步骤 6 : 自动拆箱

不需要调用Integer的intValue方法,通过=就自动转换成int类型,就叫拆箱

  1. package digit;
  2. public class TestNumber {
  3. public static void main(String[] args) {
  4. int i = 5;
  5. Integer it = new Integer(i);
  6. //封装类型转换成基本类型
  7. int i2 = it.intValue();
  8. //自动转换就叫拆箱
  9. int i3 = it;
  10. }
  11. }

步骤 7 : int的最大值,最小值

int的最大值可以通过其对应的封装类Integer.MAX_VALUE获取

  1. package digit;
  2. public class TestNumber {
  3. public static void main(String[] args) {
  4. //int的最大值
  5. System.out.println(Integer.MAX_VALUE);
  6. //int的最小值
  7. System.out.println(Integer.MIN_VALUE);
  8. }
  9. }

练习装箱拆箱

  1. 对byte,short,float,double进行自动拆箱和自动装箱

  2. byte和Integer之间能否进行自动拆箱和自动装箱

  3. 通过Byte获取byte的最大值

答案

  1. package digit;
  2. public class TestNumber {
  3. public static void main(String[] args) {
  4. // 1. 对byte,short,float,double进行自动拆箱和自动装箱
  5. byte b = 1;
  6. short s = 2;
  7. float f = 3.14f;
  8. double d = 6.18;
  9. // 自动装箱
  10. Byte b1 = b;
  11. Short s1 = s;
  12. Float f1 = f;
  13. Double d1 = d;
  14. // 自动拆箱
  15. b = b1;
  16. s = s1;
  17. f = f1;
  18. d = d1;
  19. // 2. byte和Integer之间能否进行自动拆箱和自动装箱
  20. Integer i1 = b; //不能把byte直接自动装箱成Integer
  21. b = new Integer(1); //也不能把Integer自动拆箱成 byte
  22. // 3. 通过Byte获取byte的最大值
  23. System.out.println(Byte.MAX_VALUE);
  24. }
  25. }

Java自学-数字与字符串 装箱和拆箱的更多相关文章

  1. Java学习笔记之——自动装箱与拆箱

    自动装箱与拆箱 基本类型与引用类型的互相转换 1. 基本类型对应的包装类 byte    short       char      int       long    flaot    double ...

  2. java和c#中的装箱和拆箱操作

    c#装箱和拆箱 装箱:整体上来说,装箱是将值类型转换成引用类型,比如将Vector3转换成Object类型. 具体而言: 1)在托管堆中为值类型分配内存.除了原始的数值以外还应该有指向该数值的引用. ...

  3. Java包装类,基本的装箱与拆箱

    我的博客 何为包装类 将原始类型和包装类分开以保持简单.当需要一个适合像面向对象编程的类型时就需要包装类.当希望数据类型变得简单时就使用原始类型. 原始类型不能为null,但包装类可以为null.包装 ...

  4. Java自学-数字与字符串 字符

    Java中的字符 示例 1 : 保存一个字符的时候使用char package character; public class TestChar { public static void main(S ...

  5. Java自学-数字与字符串 字符串转换

    Java中把数字转换为字符串,字符串转换为数字 步骤 1 : 数字转字符串 方法1: 使用String类的静态方法valueOf 方法2: 先把基本类型装箱为对象,然后调用对象的toString pa ...

  6. Java自学-数字与字符串 字符串

    Java中的字符串String 示例 1 : 创建字符串 字符串即字符的组合,在Java中,字符串是一个类,所以我们见到的字符串都是对象 常见创建字符串手段: 每当有一个字面值出现的时候,虚拟机就会创 ...

  7. Java自学-数字与字符串 格式化输出

    Java 使用printf或format 进行格式化输出 步骤 1 : 格式化输出 如果不使用格式化输出,就需要进行字符串连接,如果变量比较多,拼接就会显得繁琐 使用格式化输出,就可以简洁明了 %s ...

  8. Java自学-数字与字符串 MyStringBuffer

    自己开发一个Java StringBuffer 根据接口IStringBuffer ,自己做一个MyStringBuffer 步骤 1 : IStringBuffer接口 package charac ...

  9. Java自学-数字与字符串 StringBuffer

    Java StringBuffer常见方法 StringBuffer是可变长的字符串 示例 1 : 追加 删除 插入 反转 append追加 delete 删除 insert 插入 reverse 反 ...

随机推荐

  1. 记录一次群答问:requests获取cookie

    问题: 为了测试,写的sever,下面仅为set cookie的部分代码 response = make_response('{"code":9420, "msg&quo ...

  2. 给某mooc站点准备的FE大纲

    https://segmentfault.com/a/1190000000465431 https://blog.csdn.net/mike_chen2stockings/article/detail ...

  3. 费马平方和定理&&斐波那契恒等式&&欧拉四平方和恒等式&&拉格朗日四平方和定理

    费马平方和定理 费马平方和定理的表述是:奇素数能表示为两个平方数之和的充分必要条件是该素数被4除余1. 1. 如果两个整数都能表示为两个平方数之和的形式,则他们的积也能表示为两个平方数之和的形式. $ ...

  4. html--前端基本标签内容讲解

    body里面分为两类标签:块级标签和内联标签. 1.块级标签:<p><h1><table><ol><ul><form><d ...

  5. mark-向量式编程

    numpy的速度→→→numpy中的向量式编程 from numpy to python https://www.labri.fr/perso/nrougier/from-python-to-nump ...

  6. IIS 登录失败 该登陆名来自不受信任的域,不能与windows身份认证一起使用

    原文:https://blog.csdn.net/hhw199112/article/details/80234462 错误: 登录失败 该登陆名来自不受信任的域,不能与windows身份认证一起使用 ...

  7. 2019年底前的web前端面试题初级-web标准应付HR大多面试问题

    作者 | Jeskson来源 | 达达前端小酒馆 问:你知道在css中,html的标签元素分多少中不同的类型吗? 答:大体可分三种:1,块状元素,2,内联元素,3,内联块状元素 块级元素:就是每个块级 ...

  8. 团队作业第五次—项目冲刺-Day1

    Day1 项目相关 作业相关 具体描述 所属班级 2019秋福大软件工程实践Z班 作业要求 团队作业第五次-项目冲刺 作业正文 hunter--冲刺集合 团队名称 hunter小组 作业目标 最终做出 ...

  9. 【操作系统之十一】任务队列、CPU Load、指令乱序、指令屏障

    一.CPU Loadcpu load是对使用或者等待cpu进程的统计(数量的累加):每一个使用(running)或者等待(runnable)CPU的进程,都会使load值+1;每一个结束的进程,都会使 ...

  10. CentOS安装PinPoint

    1.软件准备 jdk-8u191-linux-x64.tar.gz,下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8 ...