JAVA进阶版:包装类

1. 以java.lang.Integer类型为例,讲解8种类型

package javase.jingjie.BaoZhuangLei;
/**
 * 以java.lang.Integer类型为例,讲解8种类型
 * */
public class Integer01 {

	public static void main(String[] args) {
		//获取int类型的最大值和最小值
		System.out.println("int最小值:"+Integer.MIN_VALUE);//-2147483648
		System.out.println("int最大值:"+Integer.MAX_VALUE);//2147483647
		
		//byte类型的
		System.out.println("byte最小值:"+Byte.MIN_VALUE);//-128
		System.out.println("byte最小值:"+Byte.MAX_VALUE);//127
	
		//创建Integer类型的对象,访问lang包中Integer的构造方法
		Integer i1=new Integer(10);
		Integer i2=new Integer("123");
		System.out.println(i1+","+i2);//10,123
		//实际调用i1.toString()和i2.toString()方法,这个方法子类进行重写,直接输出值,不再输出地址
		System.out.println(i1.toString()+","+i2.toString());//10,123
	}

}

2. 关于Integer中常用的方法,返回数据类型值

package javase.jingjie.BaoZhuangLei;
/**
 * 关于Integer中常用的方法,返回数据类型值
 * */
public class Integer02 {
	public static void main(String [] args) {
		//int-->Integer,  基本数据类型-->(整型)引用数据类型
		//Integer i1=new Integer(10);或者使用下面的语句
		Integer i1=Integer.valueOf(10);
		
		//Integer-->int,   引用类型-->基本类型
		int i2=i1.intValue();
		System.out.println(i2+1);//11
		
		//Integer-->double 
		double i0=i1.doubleValue();
		System.out.println(i0+1);//11.0
		
		//double-->Double(浮点型引用类型)
		Double i00=Double.valueOf(20.9);
		//Double-->double
		double i01=i00.doubleValue();
		System.out.println(i00+" "+i01);//20.9 20.9
		
		//重要:static int parseInt(String s); String-->int
		int age=Integer.parseInt("25");
		System.out.println(age+1);//26
		
		//"abc"这个字符串必须是“数字字符串”才行,虽然编译正确,但是运行报错
		//int price =Integer.parseInt("abc");
		
		//重要:static double parseDouble(String s);
		double price =Double.parseDouble("3.0");
		System.out.println(price+1.0);//4.0
		
		//将int类型的十进制转换成二进制
		String s1=Integer.toBinaryString(10);
		System.out.println(s1);//1010
		
		//将int类型的十进制转换成16进制
		String s2=Integer.toHexString(10);
		System.out.println(s2);//a
	}
}

3. 三种类型相互转换:Integer(引用类型) ,int,String

package javase.jingjie.BaoZhuangLei;
/**
 * Integer(引用类型) ,int,String
 * 三种类型相互转换
 * */
public class Integer03 {

	public static void main(String[] args) {
		//1.int-->Integer
		Integer i1=Integer.valueOf(10);
		
		//2.Integer-->int
		int i2=i1.intValue();
		
		//3.String-->Integer
		Integer i3=Integer.valueOf("10");
		
		//4.Integer-->String
		String s1=i3.toString();
		
		//5.String-->int
		int i4=Integer.parseInt("123");
		
		//6.int-->String
		String s2=10+"";
		
		//JDK5.0之后,包括5.0,    引用类型和基本数据类型自动转换
		Integer i30=10;//自动装箱
		int i31=i30;//自动拆箱
		System.out.println(i30+","+(i31+1));//10,11
		
		m1(12);//自动装箱
		System.out.println(m2(12,6)+1);//7,  自动装箱 
	}
	
	public static void m1(Object o) {
		System.out.println(o);//12
	}
	public static int m2(Integer i1,Integer i2) {
		return i1-i2;//自动拆箱
	}
}

4. 自动拆箱和自动装箱

package javase.jingjie.BaoZhuangLei;
/**
 * 自动拆箱和自动装箱
 * */
public class Integer04 {

	public static void main(String[] args) {
		Integer i1=new Integer(10);
		Integer i2=new Integer(10);
		
		//这里不会有自动拆箱,new了两个新地址,地址不相等
		System.out.println(i1==i2);//false。
		
		//比较两个Integer类型的数据是否相等,不能用“==”,Integer已经重写了Object中的equals方法
		System.out.println(i1.equals(i2));//true
		
		//重点:
		Integer i3=128; 
		Integer i4=128;
		//上面的等同于
		//Integer i3=new Integer(128); Integer i4=new Integer(128);
		System.out.println(i3==i4);// false 内存地址不相等
		
		//注意以下程序.若数据是在(-128~127)之间,java中引入一个“整型常量池”,在这里面的内存地址一样,所以是true
		Integer i5=127;
		Integer i6=127;
		System.out.println(i5==i6);//true
		
		Integer i7=-128;
		Integer i8=-128;
		System.out.println(i7==i8);//true
		
		Integer i9=-128;
		Integer i10=-128;
		System.out.println(i9==i10);//true
		
		Integer i11=-129;
		Integer i12=-129;
		System.out.println(i11==i12);//false
		
	}

}
发布了71 篇原创文章 · 获赞 10 · 访问量 3420

猜你喜欢

转载自blog.csdn.net/JH39456194/article/details/104072657