Java中除了基本数据类型以外,有时候也需要把这些基本数据类型当做对象来操作。
java中提供了包装类,可以将对应的基本数据类型转换为类(对象)
比如初学时一直感到很疑惑的int转String和String转int问题,直接强制类型转化为什么不行?
首先int是基本数据类型,而String是引用数据类型,两者从本质上来说,一个是类(对象),一个是数据,自然不能强转。
1:先看int转String。
int是一个基本数据类型,假设int a=3;String s=null;以a代表int数据,s代表字符串
第一种思路,我们先把a也变成一个对象,两者在同一个level上,就可以进行转换了吧。
Integer aa=a;或者Integer.valueof()
相当于创建了一个Interger类对象,使用该对象的ToString,就可以获得对应的字符串
第二种,String类有直接的valueof,可以直接将int转为String。
s=String.valueof(a);
2:String转int也是相同的
(1)Integer.parseInt(str)(new integer=Integer()这种构造方法在高版本的java中已经被@Deprecated,并不推荐使用)
(2)Integer.valueOf(str).intValue()
简单来说基本数据类型和String之间需要一个包装类来进行过渡使用,不能直接进行转换。
注意点:
①获得Integer对象,这个可以直接复制给int,这是jdk1.5以上的自动装箱和拆箱
②-127~128的数字使用Valueof方法时,会自动缓存Integer对象(怪不得打比赛的时候总说java慢,原来这么多骚操作……)