java是一种面向对象语言,java中的类把方法与数据连接在一起,并构成了自包含式处理单元,但在java中不能确定基本类型,为了能将基本类型视为对象进行处理,并能连接相关的方法,java为每个基本类型都提供了包装类, 这样,便可以把基本类型视为对象来进行处理了。
包装类对应表
java的8中基本类型Integer,Character,String,Double,Float,Short,Long,Boolean,除了Float,Double之外其他六中都使用了常量池,但只在>=128,<127时才使用常量池
基本数据类型 包装类
byte Byte
short Short
int Integer
long Long
char Character
float Float
double Double
boolean Boolean
包装类共有的方法
1. 带有基本值参数并创建包装类对象的构造函数,如利用Integer包装类创建对象Integer i = new Integer(34);
2. 带有字符串参数并创建包装类的构造函数,如 new Integer("-45.6");
3. 可生成基本值的typeValue方法。如obj.intValue();
4. 将字符串转换为基本值的parseType方法。如Integer.parseType(args[0]);
5. 生成哈希表的hashCode方法。如obj.hashCode()
6. 对同一个类的两个对象进行比较的equals方法。如obj1.equals(obj2)
7. 生成字符串的toString()方法。如obj.toString()
基本数据类型和包装类相互转换
基本类型->包装类 通过对应类的构造方法实现,除Character外,其他包装类都可传入一个字符串参数构建包装类对象。
包装类->基本类型 包装类的实例方法xxxValue();//xxx表示包装类对应的基本类型
boolen bool = false;
Boolean b2 = new Boolean(bool);
Boolean b1= new Boolean("true");
boolean b2 = b1.booleanValue();
Float f = new Float("3.14");
Integer i = new Integer("123s");
jdk1.5开始出现的特性
自动装箱 可把一个基本类型变量直接赋给对应的包装类对象或Object对象 Integer i = 123;
自动拆箱 允许把包装类对象直接赋给对应的基本类型 int a = i;
基本类型和String之间的转换
String->基本类型 除Character外所有包装类都提供parseXXX(String )静态方法,用于把字符串变量转换为基本类型变量
基本类型->String String类有静态方发valueOf(),用于将基本类型变量转换为String类型
String str = "17";
int i = Integer.parseInt(str);
String re = String.valueOf(i);
java包装类 常量池
Integer a = 127;
Integer b = 127;
System.out.println("等于127:");
System.out.println("等于127:");
System.out.println(a == b); true
a = 128;
b = 128;
System.out.println("等于128:");
System.out.println(a == b); false
下面的语句不会缓存常量:
Integer integer = new
因为使用了new关键字,一定是创建了一个新的对象,无法进行缓存优化。