1.包装类
包装类的分类
- 针对八种基本数据类型相应的引用类型——包装类
- 有了类的特点,就可以调用类的方法




包装类和基本数据类型转换
- jdk5 前的手动装箱和拆箱方式,装箱:基本类型 -> 包装类型,反之,拆箱
- jdk5 以后(含jdk5)的自动装箱和拆箱方式
- 自动装箱底层调用的是valueOf方法,比如Integer.valueOf()
- 其他包装类的用法类似
package com.logic.wrapper;
/**
* @author logic
* @version 1.0
*/
public class Integer01 {
public static void main(String[] args) {
int n1 = 10;
Integer i = new Integer(n1);//手动装箱
int n2 = i.intValue();//手动拆箱
System.out.println(n2);
Integer integer = n2;//自动装箱
int n3 = integer;//自动拆箱
}
}
经典面试题
Object obj1 = true? new Integer(1) : new Double(2.0);//三元运算符【是一个整体】 一真
大师
System.out.print¡n(obj1);// 什么?1.0
Object obj2;
if(true)
{ obj2 = new Integer(1);
}
else {
obj2 = new Double(2.0);
}
System.out.printIn(obj2)://输出什么? 1 分别计算
包装类型和String类型的相互转换
package com.logic.wrapper;
/**
* @author logic
* @version 1.0
*/
public class WrapperVsString {
public static void main(String[] args) {
Integer n1 = 10;
//Integer -> String
//1
String str1 = n1 + "";
//2
String str2 = n1.toString();
//3
String str3 = String.valueOf(n1);
String str4 = "123";
//String -> Integer
//1
Integer i1 = Integer.parseInt(str4);
//2
Integer i2 = new Integer(str4);
}
}
Integer类和Character类的常用方法
System.out.printIn(Integer.MIN VALUE); //返回最小值System.out.printIn(Integer.MAX 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.isWhitespace('a'));//判断是不是空格
System.out.println(Character.toUpperCase('a'));//转成大写
System.out.println(Character.toLowerCase('A'));//转成小写
Integer类面试题
package com.logic.wrapper;
/**
* @author logic
* @version 1.0
*/
public class WrapperExercise02 {
public static void main(String[] args) {
Integer i = new Integer(1);
Integer j = new Integer(1);
System.out.println(i == j); //False
//所以,这里主要是看范围 -128 ~ 127 就是直接返回
/*
//1. 如果i 在 IntegerCache.low(-128)~IntegerCache.high(127),就直接从数组返回
//2. 如果不在 -128~127,就直接 new Integer(i)
public static Integer valueOf(int i) {
if (i >= IntegerCache.low && i <= IntegerCache.high)
return IntegerCache.cache[i + (-IntegerCache.low)];
return new Integer(i);
}
*/
Integer m = 1; //底层 Integer.valueOf(1); -> 阅读源码
Integer n = 1;//底层 Integer.valueOf(1);
System.out.println(m == n); //T
//所以,这里主要是看范围 -128 ~ 127 就是直接返回
//,否则,就new Integer(xx);
Integer x = 128;//底层Integer.valueOf(1);
Integer y = 128;//底层Integer.valueOf(1);
System.out.println(x == y);//False
}
}
//示例六
Integer i11 = 127;
int i12 = 127://只有有基本数据类型,判断的是/值是否相同
System.out.printIn(i11 == i12);//T
//示例七
Integer i13 = 128;
int i14=128;
System.out.printIn(i13 == i14);//T