1.java提供了8种基本类型,但是这8种基本类型不支持面向对象的编程机制,Java分别为这8种基本类型提供了包装类,如下
基本类型 | 包装类型 |
byte | Byte |
short | Short |
int | Integer |
long | Long |
char | Character |
float | Float |
double | Double |
boolean | Boolean |
基本类型,就是一个单纯的数字,没有object的一些特征,看下面,b后面输入点时,没有任何联想匹配
包装类型,是一个对象,具有object的特征,看下面,b后面输入点时,有联想匹配
2.包装类型与基本类型之间的转换
JDK1.5后提供了自动装箱与自动拆箱功能,因此我们不必关心基本类型与包装类型之间的转换了,如下面的例子
public static void main(String[] args) { Integer b = 5; int t= b; System.out.println(t); } |
虽然包装类型的变量是引用数据类型,但包装类的实例可以与数值类型的值进行比较,这种比较是直接取出包装类实例所包装的数值进行比较,但是两个包装类型的比较就变得复杂了,只有两个包装类引用指向同一个对象时才会返回true。如下所示
public static void main(String[] args) { Integer b1 = 150; Integer b2 = 150; int t = 150; System.out.println(b1==t); System.out.println(b2==t); System.out.println(b1==b2); } |
true true false |
(1)“b1==b2”,如果b1与b2是基本数据类型,只要他们俩值相同,就返回true;如果b1与b2是引用类型,必须指向同一个对象,才返回true。
(2)equals方法是值相等的意思
例子:
public static void main(String[] args) { Integer b1 = 150; Integer b2 = 150; int t = 150; System.out.println(b1.equals(t)); System.out.println(b2.equals(t)); System.out.println(b1.equals(b2)); } |
true true true |