包装类

.包装类
1 什么是包装类

package cn.itsource._03IntegerTest;

public class IntegerTest {
	/*
	 * 	包装类的学习:通过Integer 学习,对包装类有足够的认识
	 *  Integer概念:表示了整数类型,为int类型提供的一个类
	 *  
	 *  Integer 构造方法的学习
	 *  
	 *  	Integer(int value) 
			          构造一个新分配的 Integer 对象,它表示指定的 int 值。 
			Integer(String s) 
			          构造一个新分配的 Integer 对象,它表示 String 参数所指示的 int 值。 
	 * 
	 * */

	public static void main(String[] args) {
		Integer integer = new Integer(10);
		System.out.println(integer);
		
		Integer inte = new Integer("10");
		System.out.println(inte);
		
		System.out.println(Integer.MAX_VALUE);
		System.out.println(Integer.MIN_VALUE);
		System.out.println(Integer.SIZE);
		
		
	}

}
  1. 简单理解 :
  1. Java为每种基本数据类型,提供对应的类,来描述对应基本数据类型的这一类事物
  1. 例如 : int Integer 其实都表示一个整数,并且范围是一样的
    (1) int i = 10;
    (2) Integer i1 = new Integer(10);
    (3) Java眼里万事万物皆对象:
    (4) class Integer{
    public static final int max = xxxxx;
    public static final int size = 32;
    int i;
    Integer(int i){
    this.i=i;
    }
    }
  2. 提供包装类有什么好处:
  1. 方法
  2. 继承Object
  3. 提供一些常量字段:查询该类型数据的额一些信息:最大值,最小值,存储的位数
  1. Java中的包装类有哪些
    基本数据类型 其对应的包装类(可以在API文档中查询到)
    byte Byte
    short Short
    int Integer
    long Long
    float Float
    double Double
    char Character
    boolean Boolean
  2. 既然有了int 干嘛还需要一个Integer,感觉差不多
  1. Integer类(字段,方法),在这个类中把int的位数,最大值,最小值写成常量了
  2. Integer类中提供了一些有用的方法:例如int-String之间的转换,和其它的数据类型的转换
  1. 包装类的继承体系
  1. Number 的子类必须提供将表示的数值转换为 byte、double、float、int、long 和 short 的方法。
  2. 也就是说,Number的子类都提供了方法,将子类对象所表示的数据,转换成byte、double、float、int、long 、short等数据类型
  3. 例如:查找Integer类中 :提供了非静态的下列方法,应该用对象调用
    (1) byte byteValue() 以 byte 类型返回该 Integer 的值。
    (2) double doubleValue() 以 double 类型返回该 Integer 的值。
    (3) float floatValue() 以 float 类型返回该 Integer 的值。
    (4) int intValue() 以 int 类型返回该 Integer 的值。
    (5) long longValue() 以 long 类型返回该 Integer 的值。
    (6) short shortValue() 以 short 类型返回该 Integer 的值。

4.2 包装类对象的创建方式(Integer)
1、明确通过Integer一个包装类的学习应该知道其他包装类都是一样的
2、Integer对象创建,调用构造方法

  1. Integer(int value)

  2. Integer(String s)
    3、思考: 如下两个有什么区别

  3. Integer i1 = new Integer(123);

  4. Integer i1 = new Integer(“123”);
    4、简单提示: 在项目很多时候从前台传输数据到后台几乎都是字符串的形式
    5、排错,今日重点中的重点

  5. 方式一:把上面的类拷贝下来,到API文档中查询什么意思 NumberFormatException

  6. 方式二:从上面的错误提示中 at 在,找到我们自己写的代码最后一个 21,然后点一下(自动定位)
    原来是21行报错:分析具体这行代码,哪些地方可能出错
    Integer i3 = new Integer(“A”);
    ① 定义了一个变量 把一个对象赋值给一个变量,看起来没毛病
    ② 调用了Integer的一个构造方法 Integer(String s) 嫌疑最大
    ③ 查看此构造方法中的描述…
    NumberFormatException - 如果 String 不包含可解析的整数。
    分析原因:一般来说我们是把一个值为数字的字符串可以转成数字Integer

  7. 方式三:debug使用Eclipse工具的代码调试功能,具体看课堂演示

  8. 删除法

6、常用的一些方法: 以文档为准
4.3 自动装箱拆箱
package cn.itsource._04Package;

public class IntegerPackage {

public static void main(String[] args) {
	//Integer i1 = new Integer(10);//手动装箱
	//自动装箱:包装类的特点
	Integer i1 = 10;
	double d = 10;//跟装箱没关系:自动类型转换
	Object obj = new IntegerPackage();
	//2.自动拆箱
	Integer i2 = 11;
	int i = i2;
	System.out.println(i1+i2);
	
	//Double b = 1;不支持自动装箱
	Double c = 1.0;

}

}

1、装箱 : 把一个基本数据类型的数据赋值给一个其对应的包装类的过程
2、拆箱 : 把一个包装类对象赋值给一个其对应的基本数据类型的变量的过程
3、以int – Integer为例
装箱 Integer i1 = new Integer(123);
拆箱 int i2 = i1.intValue();
4、从jdk5开始支持自动装箱 拆箱的
① 原来接数据类型限定了变量可以存值的类型int i = 10;可以 int k = 3.0;不可以
② 多态:父类类型兼容子类类型类型:Animal aml = new Person();
手动装箱:int i2 = new Integer(123);//通过方法装箱
自动装箱: Integer i1 = 123;//包装类Java提供特性,基本数据类型装入到包装类对象
` 5、自动装箱拆箱只支持 基本数据类型和其对应的包装类
double d = 123;
Integer i = 123;
Double dd = 123.0;
Double ddd = 123; // 不行
4.4 享元模式
package cn.itsource._05XY;

public class IntegerXY {
/*
* 1.享元模式:常用的包装类值,缓存起来了:在用的时候直接引用
*
* 2.Integer享元模式:把常用的值-128 +127:Integer对象全部缓存起来
* 该范围需要用,就直接引用
* Integer有一个内部类:并且内部类中,有一个静态代码块,优先于主方法执行
* 3.超过范围会创建新的对象
* 4.强化:对象应该用equals 基本数据类型用==
* 5.Double会不会有享元模式?
* 1~2 没法缓存:不存在享元模式
* */
public static void main(String[] args) {
Integer i1 = 10;
Integer i2 = 10;
System.out.println(i1==i2);//true
System.out.println(i1.equals(i2));//true

	Integer i3 = new Integer(10);//new 一定会复制一份
	System.out.println(i1==i3);//false
	System.out.println(i1.equals(i3));//true
	
	Integer i4 = 500;
	Integer i5 = 500;
	System.out.println(i4==i5);
	
	

}

}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园的建设目标是通过数据整合、全面共享,实现校园内教学、科研、管理、服务流程的数字化、信息化、智能化和多媒体化,以提高资源利用率和管理效率,确保校园安全。 智慧校园的建设思路包括构建统一支撑平台、建立完善管理体系、大数据辅助决策和建设校园智慧环境。通过云架构的数据中心与智慧的学习、办公环境,实现日常教学活动、资源建设情况、学业水平情况的全面统计和分析,为决策提供辅助。此外,智慧校园还涵盖了多媒体教学、智慧录播、电子图书馆、VR教室等多种教学模式,以及校园网络、智慧班牌、校园广播等教务管理功能,旨在提升教学品质和管理水平。 智慧校园的详细方案设计进一步细化了教学、教务、安防和运维等多个方面的应用。例如,在智慧教学领域,通过多媒体教学、智慧录播、电子图书馆等技术,实现教学资源的共享和教学模式的创新。在智慧教务方面,校园网络、考场监控、智慧班牌等系统为校园管理提供了便捷和高效。智慧安防系统包括视频监控、一键报警、阳光厨房等,确保校园安全。智慧运维则通过综合管理平台、设备管理、能效管理和资产管理,实现校园设施的智能化管理。 智慧校园的优势和价值体现在个性化互动的智慧教学、协同高效的校园管理、无处不在的校园学习、全面感知的校园环境和轻松便捷的校园生活等方面。通过智慧校园的建设,可以促进教育资源的均衡化,提高教育质量和管理效率,同时保障校园安全和提升师生的学习体验。 总之,智慧校园解决方案通过整合现代信息技术,如云计算、大数据、物联网和人工智能,为教育行业带来了革命性的变革。它不仅提高了教育的质量和效率,还为师生创造了一个更加安全、便捷和富有智慧的学习与生活环境。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值