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

步骤 1 : 封装类

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

比如int对应的类是Integer

这种类就叫做封装类

package digit;

public class TestNumber {

    public static void main(String[] args) {
int i = 5; //把一个基本类型的变量,转换为Integer对象
Integer it = new Integer(i);
//把一个Integer对象,转换为一个基本类型的int
int i2 = it.intValue(); }
}

步骤 2 : Number类

数字封装类有

Byte,Short,Integer,Long,Float,Double

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

package digit;

public class TestNumber {

    public static void main(String[] args) {
int i = 5; Integer it = new Integer(i);
//Integer是Number的子类,所以打印true
System.out.println(it instanceof Number);
}
}

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

package digit;

public class TestNumber {

    public static void main(String[] args) {
int i = 5; //基本类型转换成封装类型
Integer it = new Integer(i); }
}

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

package digit;

public class TestNumber {

    public static void main(String[] args) {
int i = 5; //基本类型转换成封装类型
Integer it = new Integer(i); //封装类型转换成基本类型
int i2 = it.intValue(); }
}

步骤 5 : 自动装箱

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

package digit;

public class TestNumber {

    public static void main(String[] args) {
int i = 5; //基本类型转换成封装类型
Integer it = new Integer(i); //自动转换就叫装箱
Integer it2 = i; }
}

步骤 6 : 自动拆箱

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

package digit;

public class TestNumber {

    public static void main(String[] args) {
int i = 5; Integer it = new Integer(i); //封装类型转换成基本类型
int i2 = it.intValue(); //自动转换就叫拆箱
int i3 = it; }
}

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

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

package digit;

public class TestNumber {

    public static void main(String[] args) {

        //int的最大值
System.out.println(Integer.MAX_VALUE);
//int的最小值
System.out.println(Integer.MIN_VALUE); }
}

练习装箱拆箱

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

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

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

答案

package digit;

public class TestNumber {

    public static void main(String[] args) {
// 1. 对byte,short,float,double进行自动拆箱和自动装箱
byte b = 1;
short s = 2;
float f = 3.14f;
double d = 6.18; // 自动装箱
Byte b1 = b;
Short s1 = s;
Float f1 = f;
Double d1 = d;
// 自动拆箱
b = b1;
s = s1;
f = f1;
d = d1; // 2. byte和Integer之间能否进行自动拆箱和自动装箱
Integer i1 = b; //不能把byte直接自动装箱成Integer
b = new Integer(1); //也不能把Integer自动拆箱成 byte // 3. 通过Byte获取byte的最大值
System.out.println(Byte.MAX_VALUE); }
}

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. SpringBoot全局Jackson配置未生效

    在做一个小项目,后台服务第一次用SpringBoot构建.接口使用Json格式,在application.properties中配置如下: spring.jackson.default-propert ...

  2. Windows使用CMD命令查看进程和终止进程

    TaskList:        列出当前所有运行进程.        使用方法:在命令提示符中输入tasklist 然后回车,会看到类似下面的列表: 映像名称 PID 会话名 会话# 内存使用 == ...

  3. 13-C#笔记-数组

    # 1 初始化 double[] balance = new double[10]; // 隐式初始化为0 double[] balance = { 2340.0, 4523.69, 3421.0}; ...

  4. Spring Boot 各版本的Java版本要求

    Spring Boot 各版本的Java版本要求 Spring Boot 与 Java 对应版本,以下表格由官方网站总结. 官网:https://spring.io/projects/spring-b ...

  5. node开发遇到类似:Error: ENOENT: no such file or directory, scandir 'D:\work\taro-components- ....... _node-sass@4.12.0@node-sass\vendor

    唯一的有参考价值的文章,https://www.cnblogs.com/milo-wjh/p/9175138.html 我可以负责任的说,以下的方法, npm rebuild node-sass 80 ...

  6. [PHP] Laravel 5.5 图片上传功能

    以Laravel 5.5 框架为主,进行文件上传功能的实现如下: 一.配置文件修改 打开 config/filesystems.php 文件在 ‘disks’ 数组中添加如下代码 //自定义 'upl ...

  7. 【JZOJ6236】【20190628】启程的日子

    题目 给你一个\(n \times m\)的01矩阵 你需要用一些矩阵加减出这个矩阵 求最少的步数,并输出方案 需要满足构造出的01矩阵是一个四联通块 $ n ,  m \le 500 $ 题解 答案 ...

  8. Docker入门笔记(Centos7)

    centos7 wget https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo vim docker-c ...

  9. sparksql基础知识二

    目标 掌握sparksql操作jdbc数据源 掌握sparksql保存数据操作 掌握sparksql整合hive 要点 1. jdbc数据源 spark sql可以通过 JDBC 从关系型数据库中读取 ...

  10. word2vec学习总结

    目录 1.简介 2.从统计语言模型开始 2.1序列概率模型 2.2 N元统计模型 3.深度序列模型 3.1神经概率模型 3.2 one-hot向量表示法 3.3 word2vec 3.4word2ve ...