包装类
包装类分类
- 针对八种基本数据类型相应的引用类型——包装类
- 有了类的特点,就可以调用类中的方法
- 如下表:
基本数据类型 |
包装类 |
blooean |
Blooean |
char |
Character |
byte |
Byte |
short |
Short |
int |
Integer |
long |
Long |
float |
Float |
double |
Double |
Boolean-->父类是Object
Character-->父类也是Object
Byte、Short、Integer、Long、Float、Double-->父类都是Number,Number的父类是Object
包装类和基本数据的转换
演示包装类和基本数据类型的相互转换,这里以int和Integer演示
- jdk5前的手动装箱和拆箱方式,装箱:基本类型—>包装类型,反之拆箱。
- jak5以后(含jdk5)的自动装箱和拆箱方式。
- 自动装箱底层调用的valueOf方法,比如Integer。valueOf()。
- 其他包装类用法类似。
包装类型和String类型的相互转换
以String和Integer为例:
package com.study.srv.demo10;
/**
* @author Wen先森
* @version 1.0
* @date 2022/3/9 14:25
*/
public class Demo03 {
public static void main(String[] args) {
//包装类和String类型相互转换
//Integer-->String
Integer i=100;
//方式一
String str1=i+"";
//方式二
String str2=i.toString();
//方式三
String str3=String.valueOf(i);
//String-->包装类(Integer)
String str4="123";
Integer i1 = Integer.parseInt(str4);//使用装箱
Integer integer = new Integer(str4);//使用构造器
}
}
Integer类和Character类的常用方法
package com.study.srv.demo10;
/**
* @author Wen先森
* @version 1.0
* @date 2022/3/9 14:48
*/
public class Demo04 {
public static void main(String[] args) {
System.out.println(Integer.MAX_VALUE);//返回最大值
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.isWhitespace('a'));//判断是不是空格
System.out.println(Character.toUpperCase('a'));//转成大写
System.out.println(Character.toLowerCase('A'));//转成小写
}
}
Integer创建机制
package com.study.srv.demo10;
/**
* @author Wen先森
* @version 1.0
* @date 2022/3/9 14:58
*/
public class Demo05 {
public static void main(String[] args) {
Integer i=new Integer(1);
Integer j=new Integer(1);
System.out.println(i==j);//此时i和j是对象,==是false 要用equals
Integer m=1;//底层Integer.valueOf(1);
Integer n=1;//底层Integer.valueOf(1);
//这里是看范围的。如果是在-128~127就直接返回。否则就new Integer().
System.out.println(m==n);
Integer x=128;//x>=IntegerCache.low && i<=IntegerCache.high 即-128到127之间
Integer y=128;//在范围外,所以此时会new成一个新对象
System.out.println(x==y);
}
}