Integer包装类

包装类

  • java为八种基本数据类型对应准备了八种包装类型,八种包装类属于引用数据类型,父类是Object

  • 适用场景

    • dosome(Object obj){} dosome方法传入的参数是引用数据类型,但是当有传入基本数据类型的需求时【int a ;dosome(a)】,会报错。因为dosome()无法接收一个基本数据类型的数字,此时可以传一个数字对应的包装类进去。
  • 八种基本数据类型对应的包装类型名
    在这里插入图片描述

  • AtomicInteger, AtomicLong, BigDecimal, BigInteger, Byte, Double, Float, Integer, Long, Short 这些类继承Number父类,Boolean和Charcater的父类是Object。

  • Number具备的方法是六种包装类的公共方法

拆箱 装箱

  • 基本数据——(转换)——>引用数据 装箱
  • 引用数据——(转换)——>基本数据 拆箱

例题一

package Advance.Integer;
/**
 * @author 衣鱼
 *	八种基本数据类型对应的包装类型名
 *
 *	基本数据类型				包装类型
 *—————————————————
 *		byte							java.lang.Byte
 *		short						java.lang.Short
 *		int							java.lang.Integer
 *		long							java.lang.Long
 *		float							java.lang.Float
 *		double						java.lang.Double
 *		boolean					java.lang.Boolean
 *		char							java.lang.Charcater
 *	 
 *Inter的构造方法
 *		Integer(int);
 *		Integer(String);
 *通过访问包装类Integer的常量,来获取最值
 */
public class IntegerTest02 {
	public static void main(String[] args) {
		//123基本数据类型,进行构造方法的包装,达到了基本数据类型向引用数据类型的转换
		//基本数据——(转换)——>引用数据		装箱
		Integer i = new Integer(123);	
		//将引用数据类型转换为基本数据类型!!
		//引用数据——(转换)——>基本数据		拆箱
		float f =i.floatValue();
		System.out.println(f);		//123.0

		//最值
		System.out.println("int最大值"+Integer.MAX_VALUE);
		System.out.println("int最小值"+Integer.MIN_VALUE);
		
		//自动装箱
		Integer x = 100;
		//自动拆箱
		int y = x;
	
		Integer z =1000;		//自动装箱	z存储的是内存地址
		System.out.println(z+1);		//自动拆箱
		
		Integer a1 =1000;			//integer a1 = new  Integer(1000);
		Integer a2 =1000;	
		System.out.println(a1==a2);		//false a1、a2都是引用
		
		//a1、a2指向的值在byte范围内,-128——127之间,内存地址是一样的 ,结果是true
		/**
		 * 面试题:
		 * Java为了提高程序效率,将-128——127之间的包装对象提前创建好,放到一个方法区的“整数型常量池”——缓存
		 * 目的:只要用这个区间的数据不需要再创建,直接从常量池当中取出。
		 * 所以,下面的a3、a4指向的是同一个对象,内存地址一样
		 * */
		Integer a3=127;		
		Integer a4 =127;
		System.out.println(a3==a4);
		
		Integer a5=128;		
		Integer a6 =128;
		System.out.println(a5==a6);
	}
}

在这里插入图片描述

Integer 常用方法

package Advance.Integer;

/**
 * @author 衣鱼
 *	Integer常用方法
 */
public class IntegerTest03 {
	public static void main(String[] args) {
		//手动装箱
		Integer i= new Integer(123);
		//手动拆箱
		int j = i.intValue();
		
		//含参构造方法
		//Integer m1 = new Integer("张掖");		//运行异常 数字格式异常  NumberFormatException
		Integer m2 = new Integer("123");
		
		// static int 	parseInt(String s)   静态方法:传入字符串,返回整数类型
		// 将字符串参数作为有符号的十进制整数进行解析。
		//应用:在终端输入数字,实际上是字符串,但是数据库要求存储数字,此时需要再次转回数字
		Integer x = Integer.parseInt("123");
		System.out.println(x+123);
		
		//*************************************************************************************
		// static String 	toBinaryString(int i)
		//以二进制(基数 2)无符号整数形式返回一个整数参数的字符串表示形式。
		String sb = Integer.toBinaryString(8);
		System.out.println(sb);
		//Object类中的toString()
		//hashCode()是一个Int类型数据, Integer.toHexString(),返回十六进制的数据
		/*
		 public String toString() {
		        return getClass().getName() + "@" + Integer.toHexString(hashCode());
		    }
		*/
		
		// static Integer 	valueOf(int i)
		//返回一个表示指定的 int 值的 Integer 实例。 int ——转换——>Integer
		Integer s = Integer.valueOf(333);
		System.out.println(s);
	}
}

总结

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值