`
lyy3323
  • 浏览: 88098 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

int 和 Integer 这两个概念的区别

阅读更多
、先区分下int 和 Integer 这两个概念的区别,因为这是JAVA面试常问的问题。

      区别:

              int :       基本数据类型,就如:double、char等。

              Integer:是一种预定义JAVA包装类,用来对数字字符串进行处理,就如:String 是一种用来处理

                             字符串的预定义类;Integer可以理解成事int的包装类,它可以实例化对象。

       联系:

              1、 在JDK 1.5Z之后,可以实现自动装箱(下面讲解)及拆箱操作。

              2 、int 和 Integer 都可以表示同一个整数,但是原理不一样,或者说:计算机给它们分配的内存

                    空间不一样。比如:int x = 20; Integer x = new Integer(20) ,它们都是往计算机中存储了一个

                     值20,但 是第二个的原理更复杂。接下来就看看下面的例子吧……

2、两行代码:

      Integer num;                          // Line1

       num = new Integer(78);          // Line2

3、现在对以上代码进行分析,得出我们余下的几个概念。

      |- Line1,申明一个整型变量 num ,还没有存到计算机中,因而 num 不是实际数据。

       |- Line2,详细分析:

                     1、使用运算符 new 为变量 num 分配了一个内存空间来存整数。这个内存空间是有地址

                           的,假如,内存地址编号为:2500 ;

                      2、Integer(78) 表示把78这个值存储到这个编号为2500的内存中;

                      3、接下来 new 再返回给 num 的是这个已经存了值的内存空间的地址,即:2500;也就

                          是说,变量 num 存储的是已分配内存空间的地址2500,而 2500处的内存存储的是数

                           字 78;

                     4、用图来说明,如下:

                         

                      5、好了,经过上面的分析,接下来我们就给出几个概念。

                           # 1、任何使用类申明的变量(如:num )称作 “引用变量”。严格的说,引用变量时存储

                                    内存空间地址的变量。

                           # 2、存储数字78的内存空间2500 称作 “Integer 对象”,另外,我们将Integer对象称

                                   作Integer类的 “实例”。

                          # 3、因为 num 是一个 Integer 类型的引用变量,因此, num 可以存储任意 Integer 对

                                  象的地址;换句话说,num 可以指向或者引用任何 Integer 对象。我们将 num 指向

                                  的 Integer 对象称作“num 对象”

                           # 4、“Integer 对象” 也即是 “num 对象”。

4、总结:当使用类时,我们首先声明某种类的引用变量,然后使用运算符 new 创建该类的一个对象实

                例,并将对象的地址存储到引用变量中。

5、JAVA装箱、拆箱:

                 1、Java1.5之后,类型包装器有:Double,Float,Long,Integer,Short,Character和BooleanJ2SE

                     将自动装箱/拆箱引入java中。

                 2、自动装箱的过程:每当需要一种类型的对象时,这种基本类型就自动地封装到与它相同类型

                       的包装中。

                3、自动拆箱的过程:每当需要一个值时,被装箱对象中的值就被自动地提取出来,没必要再去

                      调用intValue()和doubleValue()方法。

               4、自动装箱,只需将该值赋给一个类型包装器引用,java会自动创建一个对象。例如: Integer

                     i=100 ,没有通过使用new来显示建立,java自动完成。自动拆箱,只需将该对象值赋给一个

                    基本类型即可。例如:int j=i 。

0
0
分享到:
评论

相关推荐

    第7讲 int和Integer有什么区别1

    【标题】:“第7讲 int和Integer有什么区别1” 【描述】:“1. 理解自动装箱、拆箱2. 源码分析3. 原始类型线程安全” 【标签】:“java 数学” 【正文】: 在Java编程中,`int`和`Integer`是两种不同的数据类型,...

    Java中int和Integer的区别.doc

    在Java编程语言中,`int`和`Integer`是两种非常常见的数据类型,但它们之间存在着显著的不同。本文将详细介绍这两种数据类型之间的区别,并通过实例来帮助理解这些差异。 #### 二、基本概念 1. **int**: - `int`...

    Integer和int的不同

    在Java编程语言中,`Integer`和`int`是两种不同的数据类型,它们在使用上有一些关键的区别。首先,`int`是Java的八种原始数据类型之一,它用来存储整数值,如-2147483648到2147483647之间的数字。`int`变量的默认值...

    int与Integer的区别(Java各种数据类型详细介绍及其区别).doc

    - 布尔值:`boolean`,占用1位,只有`true`和`false`两个值。 2. 基本类型与引用类型的内存模型: - 基本类型直接存储在栈(Stack)中,没有引用的概念,它们的值直接存储在栈内存中。 - 引用类型存储在堆(Heap...

    简单了解java中int和Integer的区别

    Java 中的 int 和 Integer 是两个不同的概念,都是表示整数类型,但是它们有着不同的特性和用途。本文将详细介绍 Java 中 int 和 Integer 的区别。 1. 数据类型 int 是 Java 中的一种基本数据类型,表示一个 32 位...

    Java基本数据类型与封装类型详解(int和Integer区别)

    Java编程语言中有两种类型的变量:基本数据类型和封装类型。基本数据类型是Java语言预定义的,它们直接存储值,而封装类型则是这些基本类型的对象形式。本文将深入探讨Java中的int基本数据类型和Integer封装类型之间...

    通过实例了解Java Integer类和int的区别

    Java Integer类和int是Java中两个相关却又不同的概念,很多开发者容易混淆它们之间的区别本文将通过实例来了解Java Integer类和int的区别。 知识点1:自动装箱和拆箱 在Java中,我们可以直接声明Integer i = 10,...

    Java中int与integer的区别(基本数据类型与引用数据类型)

    在比较两个`Integer`对象时,不能直接使用"==",因为这会比较两个对象的引用(即内存地址),而非它们的值。通常,我们会使用`equals()`方法来比较`Integer`对象的值是否相等。 基本数据类型和引用数据类型之间存在...

    Java中关于int和Integer的区别详解

    下面是这两个概念的详细解析: 1. **基本数据类型与封装类的区别** - `int`是Java的八种基本数据类型之一,用于存储整型数值。它占用32位,能够表示-2^31到2^31-1之间的整数。基本数据类型直接存储值,无需实例化...

    java中String类型和int类型比较及相互转换

    对于两个String类型的比较,可以使用`compareTo()`方法。该方法返回一个整数值,表示第一个字符串相对于第二个字符串的排序位置。如果第一个字符串小于、等于或大于第二个字符串,则分别返回负数、零或正数。 ```...

    两个字节合成一个字(V1.0)

    在Structured Text中,可以使用“AND”、"OR"、"SHL"(左移位)和"SHR"(右移位)等操作来组合这两个字节。 在描述中提到的"西门子1200的库",是指西门子为1200系列PLC提供的预定义函数库,这些库包含了一系列的块...

    输入两个数.docx

    1. 输入两个数,按由大到小顺序输出的基本概念 在 C 语言中,我们可以使用多种方法来实现输入两个数,按由大到小顺序输出的功能。下面我们将介绍三种不同的方法:不使用函数和指针、使用函数,但不使用指针、使用...

    java 入门程序两个数求和

    在Java编程语言的世界里,"java 入门程序两个数求和"是一个经典的起点,它涵盖了编程基础、界面设计和函数应用等核心概念。对于初学者来说,理解这些知识点是至关重要的,因为它们构成了所有复杂程序的基础。在这个...

    java 求两个数组中重复元素源代码

    - 定义两个整型数组`int[] array1`和`int[] array2`,分别存储两个数组的数据。 - 使用HashSet或者其他数据结构来存储元素。 - 遍历数组,将元素添加到数据结构中。 - 检查数据结构中元素的数量,判断是否为重复...

    Large-integer.rar_ large integer_integer加减乘除_visual c

    在实现中,这通常涉及到循环遍历两个大整数的每一位,并处理进位或借位的情况。 乘法则更为复杂,经典的算法包括Karatsuba乘法和Toom-Cook乘法,它们通过分解大整数为较小的部分来减少计算量。更高级的算法,如FFT...

    java面试题-leetcode题解之第4题寻找两个正序数组的中位数.zip

    这个算法的时间复杂度是O(log(min(m, n))),其中m和n分别是两个数组的长度。这是因为我们在每次迭代中都将问题规模减半,类似于二分查找。 通过解决这道LeetCode题目,面试者可以展示他们的逻辑思维能力、对排序...

    Integer缓存池案例1

    这是因为Java的自动装箱拆箱机制,使得Integer和int之间的转换更加便捷,但同时也可能导致意外的结果。 例如,面试题中提到的Integer对象交换问题,乍一看似乎无法通过常规方法实现。通常,我们可能会尝试如下代码...

    mysql int(3)与int(11)的区别详解

    默认情况下,这两个类型在数据库内部都占用4个字节的存储空间,可以存储从-2^31(-2,147,483,648)到2^31-1(2,147,483,647)的整数。括号内的数字并不改变这一范围,而是表示在列定义中期望的输出宽度。例如,如果...

    Java 实例 - 计算两个数组交集源代码-详细教程.zip

    通过这个详细教程,你将不仅学会如何在Java中计算两个数组的交集,还能了解HashSet和双层循环的基本用法,以及如何在实践中优化算法性能。此外,你还可以结合提供的源代码进行实践操作,加深理解。记得在学习过程中...

    两个类(JAVA类型转换)

    通过`StorageValidator`和`StorageDataConvertUtil`这两个类的设计,我们可以有效地管理并操作各种类型的数据,确保其正确性和一致性。在实际项目中,这样的工具类是非常实用的,它们能够提高代码的可维护性和可复用...

Global site tag (gtag.js) - Google Analytics