LearnJava(一) 数据类型

简介: 8个基本数据类型boolean(1)byte(8)char(16)short(16)int (32)long(64)float(32)double(64)每种基本数据类型都有对应的包装器类型,基本数据类型与其对应的包装类型之间的赋值使用自动装箱与拆箱完成。

8个基本数据类型

  • boolean(1)
  • byte(8)
  • char(16)
  • short(16)
  • int (32)
  • long(64)
  • float(32)
  • double(64)

每种基本数据类型都有对应的包装器类型,基本数据类型与其对应的包装类型之间的赋值使用自动装箱与拆箱完成。

简单来说 装箱就是自动将基本数据类型转换为包装器类型;拆箱就是自动将包装器类型转换为基本数据类型。

Integer i = 10;      //装箱
int n = i;           //拆箱

关于装箱与拆箱相关概念可参考博客 深入剖析Java中的装箱与拆箱

装箱过程是通过调用包装器的 valueOf 方法实现的,拆箱过程是通过调用包装器的
×××value(×××表示对应的基本数据类型)方法实现的。

// 自动装箱,与下方调用 valueOf方法等同
Integer i1 = 200;
Integer i2 = 200;
System.out.println(i1 == i2);         // false

Integer i3 = Integer.valueOf(123);
Integer i4 = Integer.valueOf(123);
System.out.println(i3 == i4);        // true

Integer i5 = new Integer(200);
Integer i6 = new Integer(200);
System.out.println(i6 == i5);        // false

new Integer() 与 Integer.valueOf() 的区别在于,new Intege() 每次都会创建一个新的对象,而 Integer.valueOf() 可能会使用缓存对象,这涉及到缓存池,Integer的缓存池大小默认为-128~127,当数值在 [-128,127] 时,便返回指向Integer缓存池 (IntegerCache.cache )中已经存在的对象的引用;否则,创建一个新的Integer对象。

  • i1 和 i2 数值为200,会创建新的对象,因此不等
  • i3 和 i4 数值为123 ,指向同一个对象,因此相等
  • i5 和 i6 都是直接创建新的对象,因此不等
相关文章
|
数据可视化 数据挖掘
跟着 Cancer Discovery 学作图 | 复杂小提琴图
跟着 Cancer Discovery 学作图 | 复杂小提琴图
205 0
|
6月前
|
机器学习/深度学习 存储 设计模式
Python 高级编程与实战:深入理解性能优化与调试技巧
本文深入探讨了Python的性能优化与调试技巧,涵盖profiling、caching、Cython等优化工具,以及pdb、logging、assert等调试方法。通过实战项目,如优化斐波那契数列计算和调试Web应用,帮助读者掌握这些技术,提升编程效率。附有进一步学习资源,助力读者深入学习。
|
11月前
|
算法 安全 Linux
【C++STL简介】——我与C++的不解之缘(八)
【C++STL简介】——我与C++的不解之缘(八)
|
人工智能 IDE 测试技术
人工智能 | 结对编程助手GithubCopilot
GitHub Copilot 是一款人工智能编码助手,能够加速您的编程流程。它根据上下文即时提供建议,无论是单行代码还是完整函数。Copilot 由 GitHub、OpenAI 和 Microsoft 联合开发,可在多种 IDE(如 Visual Studio Code、JetBrains IDEs)中使用。只需在 IDE 中安装扩展并激活服务,即可享受智能代码补全功能。虽然 Copilot 有助于提升开发效率,但也需用户审慎检查其提供的建议以确保准确性。试用结束后,记得管理订阅以免产生不必要的费用。
人工智能 | 结对编程助手GithubCopilot
|
数据挖掘 OLAP OLTP
OLAP与OLTP相比,各自的特点是什么?
【5月更文挑战第14天】OLAP与OLTP相比,各自的特点是什么?
293 0
|
SQL 消息中间件 算法
Flink CDC 如何简化实时数据入湖入仓
本文整理自云邪、雪尽在 Flink Forward Asia 2021 的分享,该分享以 5 个章节详细介绍如何使用 Flink CDC 来简化实时数据的入湖入仓, 文章的主要内容如下: 1. Flink CDC 介绍 2. Flink CDC 的核心特性 3. Flink CDC 的开源生态 4. Flink CDC 在阿里巴巴的实践与改进 5. Flink CDC 的未来规划
10521 2
Flink CDC 如何简化实时数据入湖入仓
|
应用服务中间件 网络安全 nginx
|
编译器 Linux API
QT应用编程: 基于mdk-sdk开发视频播放器
QT应用编程: 基于mdk-sdk开发视频播放器
763 0
QT应用编程: 基于mdk-sdk开发视频播放器
|
计算机视觉 异构计算