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 都是直接创建新的对象,因此不等
相关文章
|
6月前
|
存储 程序员 C++
4数据类型
4数据类型
30 1
|
6月前
1-4 数据类型
1-4 数据类型
25 0
|
6月前
|
存储 安全 编译器
C++系列二:数据类型
C++系列二:数据类型
|
6月前
|
存储 C语言
初识数据类型
本文介绍了编程中的几种基本数据类型,包括`char`、`int`、`float`、`double`和`_Bool`。`char`用于存储单个字符,如`'a'`;`int`用于整数,如`10`;`float`和`double`分别代表单精度和双精度浮点数;`_Bool`是布尔类型,表示真假,值为`true`或`false`。在C语言中,0被视为假,非0视为真。示例代码展示了这些数据类型的使用方法。
47 3
|
5月前
|
C++
C++数据类型
C++数据类型
|
6月前
|
存储 C语言
c数据类型
c数据类型
41 0
|
6月前
|
SQL JSON 关系型数据库
12. 数据类型
12. 数据类型
|
6月前
|
存储
C数据类型
C数据类型。
31 1
|
6月前
|
存储 SQL 关系型数据库
十、数据类型
十、数据类型
63 0