/**
*
* <p>
* 描述该类情况 {@link 代表跟谁有关系}
* </p>
*
* @author 王超
* @since 1.0
* @date 2016年10月21日 上午10:09:29
* @see 新建|修改|放弃
* @see com.shushine.framework.第七章Java标准类库.基本类型的封装类
* 封装的目的和意义是:基本数据类型不是对象层次的结构的组成部分,它们通过值传递而不是通过引用传递。
* 有时我们需要用这些简单类型建立对象表达式,例如当把对象放在集合中时,需要包装成对象。为了能够用对象的形式代表简单的数据类型,
* java提供了相对应的封装类
*/
public class 基本类型的封装类 {
public static void main(String[] args) {
/**
* 双精度Double和浮点Float分别对应的是double和float的包装类
*/
// 举例说明Double和Float中的常量
System.out.println("Float中的常量:最大值:" + Float.MAX_VALUE + " 最小值:" + Float.MIN_VALUE + " 非数字:" + Float.NaN
+ " 正无穷:" + Float.POSITIVE_INFINITY + " 负无穷:" + Float.NEGATIVE_INFINITY);
System.out.println("Double中的常量:最大值:" + Double.MAX_VALUE + " 最小值:" + Double.MIN_VALUE + " 非数字:" + Double.NaN
+ " 正无穷:" + Double.POSITIVE_INFINITY + " 负无穷:" + Double.NEGATIVE_INFINITY);
// Double和Float的使用举例
float f = 3.1415f;
double d = 3.14159267;
Float F = new Float(f);
Double D = new Double(d);
// 转成字符串
System.out.println("F的字符串:" + F.toString() + " D的字符串:" + D.toString());
// 提取简单类型值
System.out.println("F的简单类型值:" + F.floatValue() + " D的简单类型值:" + D.doubleValue());
/**
* Byte Short Integer Long 类分别是byte,short,int,long 类型的分装类
*/
// 数字和字符串之间的转换
String s1 = "12", s2 = "34", s = null;
int i1 = 0, i2 = 0, sum = 0;
// 字符转转成整数
i1 = Integer.parseInt(s1);
i2 = new Integer(s2).intValue();
sum = i1 + i2;
// 数字转成字符串
s = Integer.toString(sum);
System.out.println(s);
/**
* Character 是char类型的封装类
*/
char a[] = { 'a', '5', 'A', ' ', '$', '中' };
for (int i = 0; i < a.length; i++) {
if (Character.isDigit(a[i])) {
System.out.println(a[i] + " is a digit");
}
if (Character.isLetter(a[i])) {
System.out.println(a[i] + " is a lettter");
}
if (Character.isWhitespace(a[i])) {
System.out.println(a[i] + " is whitespace");
}
if (Character.isUpperCase(a[i])) {
System.out.println(a[i] + " is uppercase");
}
if (Character.isLowerCase(a[i])) {
System.out.println(a[i] + " is lowercase");
}
}
/**
* Boolean类是boolean 类的封装类
*/
String s3 = "true";
boolean bool = true;
if (bool == new Boolean(s3).booleanValue()) {
System.out.println("两个布尔类型变量相同");
} else {
// hashCode的用法:hash
// code是一种编码方式,在Java中,每个对象都会有一个hashcode,Java可以通过这个hashcode来识别一个对象。
System.out.println(Boolean.valueOf(s3).hashCode());
}
/**
* 自动装箱和拆箱? JDk 5.0开始,基本类型的变量能够自动转换为它的包装类类型的对象,这种自动转换被称为自动装箱。
* 包装器对象就像是“箱子”一样,其中存放着相应的基本类型的值。其反向转换,即自动把包装器对象转换为基本类型的值,被称为自动拆箱
*/
// 自动装箱
Integer Ig = 10;
// 自动拆箱
int i = Ig;
}
}