Java中数据类型分两大方向: 基本数据类型 和 引用数据类型
基本数据类型的变量 | 引用数据类型的变量 |
只能存放一个数据值 | 指向一个对象,里面可以有很多数据值(对象属性),还有行为(对象的方法) |
把值直接放在变量本身当中 | 本身并没有存放对象,而是存放了一个引用值指向对象; |
这些差异性造成了两者的变量,不能相互转换。Java的多态就受到影响,Object类型变量能指向任意对象,但是没办法放入基本数据的数据。
为了不让Java的丰富度受到影响,Java专门为8种基本数据类型各自设计了一个对应的应用数据,就是包装类。 通过这些包装类的对象,那么里面既可以装封装的基本数据类型数据,还可以提供行为方法对这些数据进行操作。
基本数据类型与包装类的对应:
int | Integer |
char | Character |
byte | Byte |
short | Short |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
包装类主要作用:提供各种方法,完成 基本数据类型与引用数据类型的转换
以int为例,我们看看他们之间的互转:
- 基本数据变量 ---> 包装类对象 (常用)
int num = 100; //int是基本数据类型 没有方法可调用
Integer in = Integer.valueOf(num);
- 包装类对象 ---> 基本数据变量(常用)
Integer in = Integer.valueOf(200);
int num = in.intValue();
- String对象 ---> 基本数据变量 (常用)
String str = "600";
int num = Integer.parseInt(str);
- 包装类对象---> String对象
Integer in = Integer.valueOf(300);
String str = in.toString();
- String对象 ---> 包装类对象
String str = "400";
Integer in = Integer.valueOf(str);
- 基本数据变量 ---> String对象
int num = 500;
String str = Integer.toString(num);
str = String.valueOf(num);
注意:应用中,Java对于 基本数据类型与包装的转换
自动封箱 | 自动拆箱 |
自动在底层把简单的基本数据类型数据封装到一个复杂的包装类对象中 | 自动在底层把一个复杂的包装类对象中的value值取出来放到基本类型中 |
int num = in; | Object obj = 800; |
不是obj装了800这个基本数据类型,而是指向了包装类对象 |
拓展: 查阅API DOC 文档
1、首先清楚API DOC文档的结构; 2、不要去通篇阅读文档,它不是书,是字典; 只查找我们需要的东西; 3、要根据我们的使用场景,用OO语法分析, 我们要找的是属性?构造?行为? 有没有参数?什么参?有没有返回?什么返回类型?有没有static 缩小我们检索的范围 4、然后再配合:文档上的文字描述 以及测试