针对8种基本数据类型相应的引用类型。——包装类。
Boolean、Character、Byte、Short、Integer、Long、Float、Double。
具有类的特点,可以调用类中的方法。他们都是Number的子类。
包装类和基本数据类型的转换。
装箱:基本类型——>包装类型。反过来为拆箱。
jdk5之后,就可以实现自动装箱和拆箱了。自动装箱底层调用的是valueOf()方法。
public class Wrapper01 { public static void main(String[] args) { int n1 = 100; Integer integer = n1;//自动装箱,底层使用的仍然是Integer.valueOf()方法 int n3 = integer;//自动拆箱 //手动装箱 两种写法 int n2 = 200; Integer integer1 = new Integer(n2); Integer integer2 = Integer.valueOf(n2); //手动拆箱 int i = integer1.intValue(); } }
public class Wrapper02 { public static void main(String[] args) { Object obj = true?new Integer(1):new Double(2.0); System.out.println(obj); //上面是一个三元运算符,如果第一个为真,则返回第二个值,反之,返回第三个值。 //但注意不是1,而是1.0.因为含有有double,会自动类型转换。三元运算符是一个整体 } }
1.0 Process finished with exit code 0包装类与String类的相互转换
public class Wrapper03 { public static void main(String[] args) { //包装类——>String类 Integer i = 100;//自动装箱 String str = i + "";//方式1 String str2 = i.toString();//方式2 String str3 = String.valueOf(i);//方式3 //String类——>包装类 String str4 = "123"; Integer i1 = Integer.parseInt(str4);//方式1 Integer integer = new Integer(str4);//方式2 } }
public class Wrapper04 { public static void main(String[] args) { Integer integer = new Integer(1); Integer integer2 = new Integer(1); System.out.println(integer == integer2);//是两个新的对象 //查看底层valueOf的源码,如果在-128~127,直接从数组中取,不会new一个Integer。 Integer m = 1; Integer n = 1; System.out.println(m == n); Integer x = 128; Integer y = 128; System.out.println(x == y); } }
false true false Process finished with exit code 0
只要有基本数据类型,==判断的就是值是否相等。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)