、先区分下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 。
分享到:
相关推荐
【标题】:“第7讲 int和Integer有什么区别1” 【描述】:“1. 理解自动装箱、拆箱2. 源码分析3. 原始类型线程安全” 【标签】:“java 数学” 【正文】: 在Java编程中,`int`和`Integer`是两种不同的数据类型,...
在Java编程语言中,`int`和`Integer`是两种非常常见的数据类型,但它们之间存在着显著的不同。本文将详细介绍这两种数据类型之间的区别,并通过实例来帮助理解这些差异。 #### 二、基本概念 1. **int**: - `int`...
在Java编程语言中,`Integer`和`int`是两种不同的数据类型,它们在使用上有一些关键的区别。首先,`int`是Java的八种原始数据类型之一,它用来存储整数值,如-2147483648到2147483647之间的数字。`int`变量的默认值...
- 布尔值:`boolean`,占用1位,只有`true`和`false`两个值。 2. 基本类型与引用类型的内存模型: - 基本类型直接存储在栈(Stack)中,没有引用的概念,它们的值直接存储在栈内存中。 - 引用类型存储在堆(Heap...
Java 中的 int 和 Integer 是两个不同的概念,都是表示整数类型,但是它们有着不同的特性和用途。本文将详细介绍 Java 中 int 和 Integer 的区别。 1. 数据类型 int 是 Java 中的一种基本数据类型,表示一个 32 位...
Java编程语言中有两种类型的变量:基本数据类型和封装类型。基本数据类型是Java语言预定义的,它们直接存储值,而封装类型则是这些基本类型的对象形式。本文将深入探讨Java中的int基本数据类型和Integer封装类型之间...
Java Integer类和int是Java中两个相关却又不同的概念,很多开发者容易混淆它们之间的区别本文将通过实例来了解Java Integer类和int的区别。 知识点1:自动装箱和拆箱 在Java中,我们可以直接声明Integer i = 10,...
在比较两个`Integer`对象时,不能直接使用"==",因为这会比较两个对象的引用(即内存地址),而非它们的值。通常,我们会使用`equals()`方法来比较`Integer`对象的值是否相等。 基本数据类型和引用数据类型之间存在...
下面是这两个概念的详细解析: 1. **基本数据类型与封装类的区别** - `int`是Java的八种基本数据类型之一,用于存储整型数值。它占用32位,能够表示-2^31到2^31-1之间的整数。基本数据类型直接存储值,无需实例化...
对于两个String类型的比较,可以使用`compareTo()`方法。该方法返回一个整数值,表示第一个字符串相对于第二个字符串的排序位置。如果第一个字符串小于、等于或大于第二个字符串,则分别返回负数、零或正数。 ```...
在Structured Text中,可以使用“AND”、"OR"、"SHL"(左移位)和"SHR"(右移位)等操作来组合这两个字节。 在描述中提到的"西门子1200的库",是指西门子为1200系列PLC提供的预定义函数库,这些库包含了一系列的块...
1. 输入两个数,按由大到小顺序输出的基本概念 在 C 语言中,我们可以使用多种方法来实现输入两个数,按由大到小顺序输出的功能。下面我们将介绍三种不同的方法:不使用函数和指针、使用函数,但不使用指针、使用...
在Java编程语言的世界里,"java 入门程序两个数求和"是一个经典的起点,它涵盖了编程基础、界面设计和函数应用等核心概念。对于初学者来说,理解这些知识点是至关重要的,因为它们构成了所有复杂程序的基础。在这个...
- 定义两个整型数组`int[] array1`和`int[] array2`,分别存储两个数组的数据。 - 使用HashSet或者其他数据结构来存储元素。 - 遍历数组,将元素添加到数据结构中。 - 检查数据结构中元素的数量,判断是否为重复...
在实现中,这通常涉及到循环遍历两个大整数的每一位,并处理进位或借位的情况。 乘法则更为复杂,经典的算法包括Karatsuba乘法和Toom-Cook乘法,它们通过分解大整数为较小的部分来减少计算量。更高级的算法,如FFT...
这个算法的时间复杂度是O(log(min(m, n))),其中m和n分别是两个数组的长度。这是因为我们在每次迭代中都将问题规模减半,类似于二分查找。 通过解决这道LeetCode题目,面试者可以展示他们的逻辑思维能力、对排序...
这是因为Java的自动装箱拆箱机制,使得Integer和int之间的转换更加便捷,但同时也可能导致意外的结果。 例如,面试题中提到的Integer对象交换问题,乍一看似乎无法通过常规方法实现。通常,我们可能会尝试如下代码...
默认情况下,这两个类型在数据库内部都占用4个字节的存储空间,可以存储从-2^31(-2,147,483,648)到2^31-1(2,147,483,647)的整数。括号内的数字并不改变这一范围,而是表示在列定义中期望的输出宽度。例如,如果...
通过这个详细教程,你将不仅学会如何在Java中计算两个数组的交集,还能了解HashSet和双层循环的基本用法,以及如何在实践中优化算法性能。此外,你还可以结合提供的源代码进行实践操作,加深理解。记得在学习过程中...
通过`StorageValidator`和`StorageDataConvertUtil`这两个类的设计,我们可以有效地管理并操作各种类型的数据,确保其正确性和一致性。在实际项目中,这样的工具类是非常实用的,它们能够提高代码的可维护性和可复用...