Java 包装类

1. 8大基本类型

java是面向对象的语言,基本类型不是new出来的不能使用像object提供的方法,所以有了包装类

package com.qf.demo02;

import javax.swing.text.InternationalFormatter;

public class Test6Integer {

	public static void main(String[] args) {
		//静态的属性:
		System.out.println("获取最大值:"+Integer.MAX_VALUE);
		System.out.println("获取最小值:"+Integer.MIN_VALUE);
		//byte的最大值和最小值
		System.out.println(Byte.MAX_VALUE);
		System.out.println(Byte.MIN_VALUE);
		
		//1.创建包装类的对象:
		int i = 100;//基本类型
//		创建一个包装类的对象,包装的是int类型的i
		Integer i2obj = new Integer(i);//将基本类型int,构建一个Integer对象
		Integer i3obj = new Integer("200");//基于String类型,构建一个Integer对象
		
		//2.类的对象有方法
		//A:Integer类,重写了Object中的toString()方法。不显示地址,显示数值本身。String类型
		System.out.println(i2obj.toString());//"100"
		System.out.println(i3obj.toString());//"200"
		
		//B:将对象,转为基本类型:6种类型 Number父类中提供的
		byte b1 = i2obj.byteValue();//将i2obj这个对象,转为byte类型的数据
		short s1 = i2obj.shortValue();
		int i2 =i2obj.intValue();
		long l1 = i2obj.longValue();
		float f1 = i2obj.floatValue();
		double d1 = i2obj.doubleValue();
		
		//C:通过静态的方法parseXXX(),将一个String类型,解析为基本类型的数据
		int i3 = Integer.parseInt("123");//猜:长的像数值才可以。"兼容类型"
		byte b3 = Byte.parseByte("99");
		float f3 = Float.parseFloat("1.23");
		System.out.println(i3);
		System.out.println(b3);
		System.out.println(f3);
		//不是每个String都能转成数值,不兼容的不行
//		int i4 = Integer.parseInt("memeda");//java.lang.NumberFormatException: For input string: "memeda"
		
		
		//D:通过valueOf(基本类型/String)-->获取一个包装类的对象类型
		Integer i4obj = Integer.valueOf(100);
		Integer i5obj = Integer.valueOf("105");//猜:长的像数值才可以。"兼容类型"
		System.out.println(i5obj);//?
	
	}
}

 

package com.qf.demo02;

public class Test7Character {

	public static void main(String[] args) {
		System.out.println("最大值:"+(int)Character.MAX_VALUE);//65535
		System.out.println("最小值:"+(int)Character.MIN_VALUE);//0
		
		//构建一个包装类的对象
		Character c1 = new Character('a');//对象
		char c2 = '*';//基本类型
		
		//判断给定的字符,是否是数字:0-9
		System.out.println(Character.isDigit(c2));//boolean
		//判断给定的字符,是否是字母[a-zA-Z]
		System.out.println(Character.isLetter(c2));//boolean
		
		//判断是否是小写字母
		System.out.println(Character.isLowerCase('A'));//false
		//判断是否是大写字母
		System.out.println(Character.isUpperCase('A'));//true
		
		
		//将大写字母,转为小写字母
		System.out.println(Character.toLowerCase('A'));
		//将小写字母,转为大写字母
		System.out.println(Character.toUpperCase('*'));
	}

}

2. 装箱和拆箱

package com.qf.demo02;

import java.util.Arrays;

public class Test8Auto {

	public static void main(String[] args) {
		int i = 10;
		
		
		Integer i2obj = new Integer(i);
		Integer i3obj = Integer.valueOf(i);
		
		//jdk1.5之后,自动装箱和拆箱
		
		Integer i4obj = 10;//自动装箱,将基本类型,直接赋值给包装类的对象。

		int j = i4obj;//自动拆箱,将包装类的对象的值,直接赋值给一个基本数据类型。
		
		//数组,存储8个基本类型的数据。?
		//数据类型统一:
		byte b1 = 10;
		short s1 = 20;
		int i1 = 30;
		long l1 = 40L;
		float f1 = 1.23f;
		double d1 = 2.34;
		char c1 = 'a';
		boolean bb1 = true;
		
		
		Object[] arr = new Object[8];//?存储神马的数据
		System.out.println(Arrays.toString(arr));
		arr[0] = b1;//byte-->Byte(自动装箱)-->Object类(向上转型)
		arr[1] = s1;//short-->Short(自动装箱)-->Object类(向上转型)
		arr[2] = i1;//int --> Integer --> Object
		arr[3] = f1;
		arr[4] = d1;
		arr[5] = c1;
		arr[6] = bb1;
		arr[7] = l1;
		
		for(Object obj:arr){
			System.out.println(obj.toString());
		}
		
		System.out.println("-----------");
		int i2 = (int)arr[2];//Object-->Integer -->int
		System.out.println(i2);
		int i3 = (Integer) arr[2];//Object -->Integer
		System.out.println(i3);
		
		
		
	}

}
package com.qf.demo02;

public class Test9 {

	public static void main(String[] args) {
		//Number:Byte,Short,Integer,Long,Float,Double
		//缓存数据:256个对象,来包装对应的数值
		/*
		 * [-128,127]
		 * 包装类的对象:-128,127,包装类中已经创建好了现成的,用就完了
		 */
		
		Integer i1 = 100;
		Integer i2 = 100;
		System.out.println(i1 == i2);//地址,true
		
		Integer i3 = 200;
		Integer i4 = 200;
		System.out.println(i3 == i4);//false
	}

}

 

posted @ 2020-07-25 18:29  1769987233  阅读(166)  评论(0编辑  收藏  举报