`
ifWhileCaseFor
  • 浏览: 8333 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

基本数据类型拆装箱

 
阅读更多
  • 自动拆箱与装箱

Jdk5以后提供了自动拆箱(unboxing)与装箱(autoboxing),但是对拆装箱的细节进行了部分隐藏,需要注意

  • 基本数据类型对应的包装类

Java是面向对象的语言,而基本数据类型只是字面量,不是对象。为了解决这个问题java引入了基本数据类型的包装类

Integer Double Long Short Character Boolean Float Byte

Integer i = 10; //自动装箱

Double a = i.DoubleValueOf();  //10.0

也可以使用更一般化的java.lang.Number类来自动装箱。例如:

Number a = 3.4f;

  • 自动拆装箱的陷阱

Integer i = null;

Int a = I;  //编译无错误  运行时出空指针异常

     Integer a1 = 127;

     Integer a2 = 127;

     System.out.println(a1 == a2); //true

     Integer b1 = 128;

     Integer b2 = 128;

   System.out.println(b1 == b2);//false

 

==是用来比较两个基本数据类型的值是否相同,同时==也可以判断两个对象的引用是否相同(是否是同一对象)。对于-128~1271个字节)的值会在你自动拆装箱过程中重用,因此这个范围内的Integer类型对象是相同的,而超出这个范围的则不会得到重用,因此对象实不相等的。

 

**
 * 基本数据类型的自动拆装箱
 * @author Pursuit.
 * @version 2013-11-12  下午9:51:24
 */
public class AutoBoxing {
	public static void main(String[] args) {
		Integer i = 10;
		Integer a = new Integer(10);
		Integer b = 10;
		System.out.println(i.doubleValue());
		System.out.println(a == i);
		System.out.println(i.compareTo(b));
//		Number c = 3.14f;
		//先拆箱后运算
		System.out.println(++i);
		
		/**
		 * 自动拆装箱中的陷阱
		 */
//		Integer c1 = null;
//		int c = c1; //无编译错误 运行时空指针异常
		
		Integer a1 = 127;
		Integer a2 = 127;
		System.out.println(a1 == a2); //true
		Integer b1 = 128;
		Integer b2 = 128;
		System.out.println(b1 == b2);//false
		System.out.println(b1.equals(b2));//true
	}
}	

 

分享到:
评论

相关推荐

    Java基础教程之基本类型数据类型、包装类及自动拆装箱

    将包装类转为基本数据类型的过程叫“拆箱”。例如: ```java public static void main(String[] args) { Integer a = 0; for(int i = 0; i ; i++){ a += i; } } ``` 上面的代码将基本类型数据类型int转换为包装...

    台式计算机的拆装教案.pdf

    通过这些步骤,学生不仅可以学习到硬件的基本知识,还能学会如何安全、有效地进行拆装,从而提升对计算机硬件的理解和维护技能。整个教学过程强调了防静电、避免带电操作、轻拿轻放等注意事项,确保操作过程的安全和...

    台式计算机的拆装教案.doc

    通过这个教案,学生不仅可以学习到台式机的基本构造,还能通过实践操作提高解决问题的能力,这对于未来从事IT相关工作或者个人电脑维护都是非常有价值的。同时,理解硬件的工作原理有助于更好地选择和升级电脑配件,...

    [详细完整版]拆装计算机.ppt

    此外,教程还涉及了笔记本计算机的拆装,虽然笔记本的结构更为紧凑,拆装过程更为复杂,但基本步骤和注意事项类似,只是需要更多的谨慎和专用工具。 通过这个教程,学习者能够掌握计算机组装的基本技能,了解硬件...

    计算机拆装实习报告 课程设计

    这项实习旨在让学生深入理解计算机的内部构造,熟练掌握电脑的组装、BIOS设置、系统安装以及故障排除等基本技能。以下是这次实习涉及的主要知识点: 1. 计算机主要部件了解: - **主板**:作为计算机的骨架,主板...

    Java常考面试题合集

    Java还支持自动拆装箱机制,这是Java编译器为程序员自动进行基本数据类型与对应的包装类之间的相互转换的过程。 Java中的方法覆盖和方法重载是面向对象编程中的重要概念。方法覆盖指的是子类对继承自父类的方法提供...

    Java拆装箱深度剖析

    Java中的拆装箱是面向对象编程中的一种特性,主要用于基本数据类型与其对应的包装类之间的转换。在Java中,为了支持基本数据类型在集合、泛型等高级特性中的使用,引入了包装类,如Integer、Double等。这些包装类的...

    综合布线系统认识与标准机柜拆装手册.pptx

    在拆装机柜时,需要注意机柜的设计和安装原则,如保证足够的散热空间、设备间的间距,以及机柜在机房内的合适位置,远离电源分配箱,并留出至少1米的通道和检修空间。 在实训中,学员需要掌握如何正确地安装和配置...

    电子-一种新型数字电子技术与单片机综合实验箱

    在实验箱中,用户可以通过实际操作来学习如何设计和分析这些电路,例如,利用不同类型的逻辑门实现布尔函数,通过触发器和计数器构建简单的时序系统,以及理解数字信号与模拟信号之间的转换过程。 二、单片机原理与...

    java面试常见120题

    - **基本数据类型**:byte、short、int、long、float、double、boolean、char。 - **引用类型**:如String等,代表对象的引用。 - **自动装箱/拆箱**:自动装箱是将基本数据类型自动转换为相应的包装类对象;自动...

    java面试总结文档

    - **自动装箱**:将基本数据类型自动转换为对应的包装类类型,例如`int`到`Integer`。 - **自动拆箱**:将包装类类型自动转换为基本数据类型,例如`Integer`到`int`。 - **目的**:简化编码过程,使基本类型能够...

    Java三目运算中隐藏的自动拆装箱

    Java三目运算中隐藏的自动拆装箱 Java三目运算符是一种常用的编程结构,但是在使用时需要注意一些隐藏的自动拆装箱问题。本文将详细介绍Java三目运算中隐藏的自动拆装箱,并通过实例代码来讲解这个问题。 在Java中...

    Java面试题

    1. **基本数据类型**:Java支持8种基本数据类型,包括: - `byte` - `short` - `int` - `long` - `float` - `double` - `boolean` - `char` 2. **自动装箱与拆箱**:Java允许在基本数据类型和对应的包装类...

Global site tag (gtag.js) - Google Analytics