`

装箱与拆箱

阅读更多
public class IntegerTest {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Integer a = 100 ;
		Integer b = 100 ;
		Integer c = 200 ;
		Integer d = 200 ;
		System.out.println(a==b);
		System.out.println(a==100);
		System.out.println(c==d);
		System.out.println(c==200);

	}
}


运行结果:

false
true

解释:
Integer.class

    // 建立缓存数组
    private static class IntegerCache {
	private IntegerCache(){}

	static final Integer cache[] = new Integer[-(-128) + 127 + 1];

	static {
	    for(int i = 0; i < cache.length; i++)
		cache[i] = new Integer(i - 128);
	}
    }

    // 取值
    public static Integer valueOf(int i) {
	final int offset = 128;
	if (i >= -128 && i <= 127) { // must cache 
	    return IntegerCache.cache[i + offset];
	}
        return new Integer(i);
    }


从源码中看:
-127至128之间的数值在缓存中存放,每次取值时都是从缓存中取得,故每次都是同样的值;
否则,则会新建立对象,故通过 == 比较时返回false

分享到:
评论

相关推荐

    装箱与拆箱(二)

    在C#编程语言中,装箱与拆箱是两种重要的操作,主要涉及到值类型与引用类型之间的转换。本文将深入探讨这两个概念,并结合实例来帮助理解。 首先,我们需要明确值类型(如int、bool、char、结构体等)和引用类型...

    装箱与拆箱(一)

    在C#编程语言中,装箱与拆箱是两种关键的操作,它们涉及到值类型与引用类型之间的转换。本文将深入探讨这两个概念,以及它们在实际编程中的应用。 首先,我们来理解什么是装箱。装箱(Boxing)是指将值类型(如int...

    Java自动装箱与拆箱深度解析:原理、应用与性能考量

    本文将深入探讨自动装箱与拆箱的原理、应用场景以及性能影响,并提供实用的编程技巧。 自动装箱和拆箱是Java语言中的重要特性,它们简化了基本数据类型与包装类之间的转换过程。然而,这两个机制也带来了一定的性能...

    C#装箱与拆箱1

    C#装箱与拆箱第一部分。是一个很好的视频,帮助大家学习C#装箱和拆箱的知识

    Java中的自动装箱与拆箱:深入理解基本数据类型与对象的转换

    ### Java中的自动装箱与拆箱详解 #### 引言 在Java开发过程中,开发者经常需要处理各种数据类型之间的转换。对于基本数据类型与包装类之间的转换,Java提供了一个非常便利的功能——自动装箱和自动拆箱。这些功能...

    Tedu正则表达式与Object与自动装箱与拆箱

    ### Tedu正则表达式与Object与自动装箱与拆箱 #### 正则表达式 正则表达式是一种强大的文本处理工具,可以用来检查一个序列(如字符串)是否符合特定的模式。在编程中,它被广泛应用于数据验证、搜索和替换等方面...

    Java中的自动装箱与拆箱Java开发Java经验技巧共6

    在Java编程语言中,自动装箱(Autoboxing)和自动拆箱(Unboxing)是两个重要的特性,它们简化了基本类型(如int、double等)与对应的包装类(如Integer、Double等)之间的转换过程。这些特性是在Java 5引入的,极大...

    Java 装箱与拆箱详解及实例代码

    Java中的装箱与拆箱是面向对象编程中一个重要的概念,尤其在处理基本类型与对象类型之间的转换时显得尤为重要。本文将深入讲解Java装箱与拆箱的基本概念,并通过实例代码进行演示。 装箱(Boxing)是Java自动将基本...

    Java中的自动装箱与拆箱_.docx

    在Java编程语言中,自动装箱(Autoboxing)和自动拆箱(Unboxing)是从Java 1.5版本开始引入的一项特性,其目的是简化原始类型(Primitive Types)与它们对应的包装类(Wrapper Classes)之间的转换过程。...

    Java语言 包装类讲解案例代码 ( 设计目的(作用)和用途、自动装箱与拆箱、常用方法、 null和默认值)

    自动装箱与拆箱:自动装箱(Autoboxing)指的是自动地将基本数据类型转换为对应的包装类对象;自动拆箱(Unboxing)则是将包装类对象自动转换为基本数据类型。 常用方法:演示如何使用包装类中的这些常见方法。 null...

    Java中的自动装箱与拆箱

    自动装箱与拆箱的机制可以让我们在Java的变量赋值或者是方法调用等情况下使用原始类型或者对象类型更加简单直接。  如果你在Java1.5下进行过编程的话,你一定不会陌生这一点,你不能直接地向集合(Collections)中放...

    C#语言中的装箱和拆箱操作

    C#语言中的装箱和拆箱操作 C#语言中的装箱和拆箱操作是类型系统中的核心概念,它们使得在C#类型系统中任何值类型、引用类型和object对象类型之间进行转换。装箱和拆箱机制可以将任何类型的值看作是object类型。 ...

    Java中的自动装箱和拆箱是什么?它们有什么作用?(java面试题附答案).txt

    ### Java中的自动装箱与拆箱 #### 一、概念介绍 在Java中,自动装箱(Autoboxing)和拆箱(Unboxing)是Java编译器提供的一种特性,用于在基本数据类型和对应的包装类之间进行自动转换。这种特性简化了编程过程中...

    C#示例:装箱、拆箱、自定义数据类型转换、ToString方法重载、类方法扩展

    1. 装箱与拆箱 装箱是将值类型(如int、bool等)转换为引用类型(如object)的过程。在C#中,每当一个值类型变量赋值给object类型的变量时,就会发生装箱。例如: ```csharp int num = 10; object obj = num; // ...

    详解Java 自动装箱与拆箱的实现原理

    自动装箱与拆箱的实现原理 自动装箱是指Java将原始类型值转换成对应的对象的过程,如将int类型的变量转换成Integer对象。反之,将对象转换成原始类型值的过程称为拆箱。因为这里的装箱和拆箱是自动进行的非人为转换...

    再议C#中的装箱与拆箱的问题详解

    在C#编程语言中,装箱和拆箱是两种重要的操作,它们涉及到值类型(如int、bool等)与引用类型(如object)之间的转换。装箱是将值类型转换为object类型,而拆箱则是从object类型恢复为原来的值类型。这两种操作在...

    C#实现装箱与拆箱操作简单实例

    在C#编程语言中,装箱(Boxing)和拆箱(Unboxing)是两种特殊类型转换的过程,它们主要用于处理值类型(如int、bool、char等)与引用类型(如object、接口等)之间的转换。值类型通常存储在栈上,而引用类型则存储...

    C#源代码-装箱和拆箱.zip

    在.NET框架中,C#是一种面向对象的编程语言,它提供了装箱和拆箱的概念来处理值类型与引用类型之间的转换。本压缩包文件“C#源代码-装箱和拆箱.zip”显然包含了关于这一主题的源代码示例,这对于我们深入理解这两种...

    JAVA装箱拆箱(很详细、易于理解)

    Java中的装箱和拆箱是面向对象编程中的一个重要概念,主要涉及到Java的自动类型转换机制。装箱是指将基本数据类型(如int、char、boolean等)转换为对应的包装器类对象,而拆箱则是相反的过程,即把包装器类的对象...

Global site tag (gtag.js) - Google Analytics