针对8中基本数据类型相应的引用类型——包装类,有了类的特点,就可以调用类中的方法是
| 基本数据类型 | 包装类 |
| boolean | Boolean |
| char | Character |
| byte | Byte |
| short | Short |
| int | Interger |
| long | Long |
| float | Float |
| double | Double |
案例展示
int与Interger之间的转换,jdk5之前采用手动装箱与拆箱,其中装箱:基本数据类型——>包装类型,相反的则为拆箱。而jdk5之后采用自动装箱与拆箱的方法。自动装箱底层掉哦用的valueof()方法,比如Interger.valueOf()。
package Learn;
public class Test{
public static void main(String[] args) {
//手动装箱
int i=1000;
//Integer integer=new Integer(i);
//或者
Integer integer1=Integer.valueOf(i);
//手动拆箱
int g=integer1.intValue();
Integer integer2=i;
//自动拆箱
int n1=integer2;
}
}
练习
结果为1.0,其中三元运算符为一个整体,所以最终要进行类型提升,最终的输出类型为double类型。
package Learn;
public class Test{
public static void main(String[] args) {
Object obj=false;
System.out.println(obj.equals(false)?new Integer(1):new Double(1.2));
}
}
包装类型与String类型的转换
package Learn;
public class Test{
public static void main(String[] args) {
//自动装箱
Integer i=1;
//第一种转换方式
String n1=i+"";
//第二种转换方法
String n2=i.toString();
//第三种方法,使用valueof方法,由于此方法需要传入一个对象,而我们包装之后便是存在一个对象
String n3=String.valueOf(i);
String n4="12345";
//String类型转换成int类型
//第一种public static int parseInt(String s) throws NumberFormatException {
// return parseInt(s,10);
// }
Integer n5=Integer.parseInt(n4);
//第二种,利用Integer自带的构造器
Integer n6=new Integer(n4);
}
}
常用的方法
package Learn;
public class Test{
public static void main(String[] args) {
Integer n1=100;
Integer n2=1000;
System.out.println(Integer.MAX_VALUE);
//输出Integer范围的最大值与最小值
System.out.println(Integer.MIN_VALUE);
//判断是不是字母,数字
System.out.println(Character.isDigit('a'));
System.out.println(Character.isLetter('a'));
System.out.println(Character.isUpperCase('a'));
System.out.println(Character.isLowerCase('a'));
//转换大小写
System.out.println(Character.toUpperCase('a'));
System.out.println(Character.toLowerCase('a'));
}
}
练习
package Learn;
public class Test{
public static void main(String[] args) {
Integer n1=new Integer(100);
Integer n2=new Integer(100);
//在这里将其封装new一个对象,但是n1与n2对象不相等,但是值相等,===比较的是对象,equal比较值
System.out.println(n1==n2);
System.out.println(n1.equals(n2));
Integer integer = 100;
Integer integer1 = 100;
System.out.println(integer==integer1);
System.out.println(integer.equals(integer1));
Integer integer3= 1000;
Integer integer4 = 1000;
System.out.println(integer3==integer4);
System.out.println(integer3.equals(integer4));
}
}
但是注意只要存在基本数据类型,==就是判断的值是否相等,就不要去管对象的事情了。



