一、基础篇--1.1Java基础-int 和 Integer 有什么区别,Integer的值缓存范围

int 和 Integer 有什么区别?谈谈 Integer 的值缓存范围 面试有时候会问: int 和 Integer 有什么区别?谈谈 Integer 的值缓存范围 1.典型回答 Java 的 8 个原始数据类型如下: boolean byte short int float double char long int 类型也是原始类型之一,虽然Java 语言虽然号称一切都是对象,但原始数据类型是例外。 Integer 是 int 对应的包装类,它有一个 int 类型的字段存储数据,并且提供了基本操作, 比如数学运算、int 和字符串之间转换等。 在 Java 5 中,引入了 阅读详情

一、基础篇--1.1Java基础-int 和 Integer 有什么区别,Integer的值缓存范围

int和Integer的区别

  1. int是基本数据类型,Integer是int的包装类。
  2. Integer必须实例化后才能使用,int变量不需要。
  3. Integer实际是对象的引用,生成一个新对象实际上是生成一个指针指向此对象;而int则是直接存储数据值。
  4. Integer默认值是null,int默认值是0;

Integer的缓存范围是-128到127。

关于Int和Integer比较的一些延伸:

例子:

 Integer a= new Integer(100);

 Integer b = new Integer(100);

 int c = 100;

 Integer d = 100;

 Integer e = 100;

 Integer f = 128;

 Integer g =128;

 ①、System,out.print(a==b);//false

 ②、System,out.print(a==c);//true

 ③、System,out.print(a==d);//false

    ④、System,out.print(d==e);//true

 ⑤、System,out.print(f==g);//false

 

解析:
  ①:Integer变量是对一个Integer对象的引用。通过new生成的Integer变量地址永远不相等。因此false;

  ②:Integer和int作比较,Integer会自动做拆箱操作转化为int类型,因此是两个数值的值比较,所以相等,因此true;

  ③:new生成的对象在堆中,非new生成的对象在java的常量池中,因此非new生成的Inte变量和new Integer()生成的变量比较时总为false;

  ④&&⑤:对呀两个非new生成的Integer对象比较时,如果两个变量值在区间-128到127之间,比较结果为true,不在这个范围的则为false;

java在编译Integer d = 100;时,会编译成Integer d = Integer.valueOf(100);,看java Api源码可以知道:

    public static Integer valueOf(int i) {
        assert IntegerCache.high >= 127;
        if (i >= IntegerCache.low && i <= IntegerCache.high)
            return IntegerCache.cache[i + (-IntegerCache.low)];
        return new Integer(i);
    }

 

java对于-128到127之间的数进行缓存,如果再这个范围内不在new生成; 

posted @ 2018-11-07 10:22 ForeverYoungCoder 阅读( ...) 评论( ...) 编辑 收藏
WebDriverAgent 菜鸟解析篇 WebDriverAgent 是一个用于模拟移动设备浏览器的 Python 库,可以用来在 PC 上模拟移动设备的浏览器操作,从而进行自动化测试。下面是一个菜鸟对 WebDriverAgent 源码的解析篇,希望能对初学者有所帮助。 阅读详情

相关推荐

Multisim仿真入门:单相半波可控整流电路从搭建到波形分析(附避坑指南)

本文为电力电子技术初学者提供了一份详细的Multisim仿真指南,手把手教你从零搭建单相半波可控整流电路。通过对比纯电阻、阻感负载及加入续流二极管后的波形变化,直观理解晶闸管触发、电感续流等核心原理,并附有实用的参数设置与常见问题避坑指南,帮助你将抽象理论转化为可视化的工程实践。

weixin_29208077的博客 343

面试题5——int 和 Integer 有什么区别,Integer的值缓存范围

一、int 和 Integer 区别 1、Integer是int的包装类;int是基本数据类型; 2、Integer变量必须实例化后才能使用;int变量不需要; 3、Integer实际是对象的引用,指向此new的Integer对象;int是直接存储数据值 ; 4、Integer的默认值是null;int的默认值是0。 二、Integer的值缓存范围 Integer的值缓存范围是(-12...

SongYuxinIT的博客 1656

别再手动改文献了!手把手教你定制Mendeley的GB/T 7714-2005引用格式(附常见问题修复)

本文详细指导如何定制Mendeley的GB/T 7714-2005引用格式,解决科研文献管理中的常见问题。通过深度解析Mendeley样式编辑器,精准控制作者显示规则、出版社信息精简及期刊页码处理,实现参考文献一键合规。附常见问题修复和实战调试方法,大幅提升学术写作效率。

weixin_26833503的博客 374

Java岗 面试考点精讲(基础篇01期)

即将到来金三银四人才招聘的高峰期,渴望跳槽的朋友肯定跟我一样四处找以往的面试题,但又感觉找的又不完整,在这里我将把我所见到的题目做一总结,并尽力将答案术语化、标准化。预祝大家面试顺利。 另:如果觉得本文有用,欢迎点好看或者分享出去! 术语会让你的面试更有说服力,让你感觉更踏实,建议大家多记背点术语。 1. 简单说下什么是跨平台 术语:操作系统指令集、屏蔽系统之间的差异 ...

忒忒 350

十一、机器学习进阶知识:径向基神经网络(RBFNN)的实现(Python,附源码及数据集)

本文对径向基神经网络(RBFNN)的理论基础及建模步骤进行介绍,之后使用Python实现基于RBFNN的数据预测,通俗易懂,适合新手学习,附源码及实验数据集。

weixin_42051846的博客 1万+

Vivado+VCS+Verdi三件套实战:如何高效仿真AXI VIP并快速查看波形

本文详细介绍了如何利用Vivado+VCS+Verdi工具链高效仿真AXI VIP并快速查看波形。通过环境配置、Vivado工程准备、VCS编译与仿真优化以及Verdi波形分析技巧,实现仿真速度的数量级提升,显著提高FPGA开发效率。

red88的博客 1000

Java Integer取值范围是多少呢?

Java Integer取值范围简介说明

qq_25073223的博客 2186

CANoe UDS $27服务DLL生成实战:从工程配置到算法修改全流程

本文详细介绍了在Vector CANoe中为UDS(统一诊断服务)的$27安全访问服务生成定制化DLL(动态链接库)的全流程。从定位官方参考工程、配置Visual Studio开发环境,到深入解析核心的GenerateKeyEx函数接口,并重点演示了如何修改和实现自定义的种子-密钥安全算法,最终完成DLL的编译、部署与CANoe集成测试,为汽车电子诊断开发提供实战指导。

star5的专栏 534

【计算机基础】Integer和int

思考: int 和Integer之间关系好像很紧密,但是为什么我们经常在代码中使用Integer呢? Integer可以直接和int类型的数进行比较大小吗?

邢美玲 1267

SAP入门技术分享四:模块化程序

SAP入门技术分享三:模块化程序

ITxiaoangzai的博客 1152

【毕设级教程】从0到1实现基于YOLOv8的UA-DETRAC交通目标检测系统(含UI界面,助力智能交通毕设)

本项目基于YOLOv8模型和UA-DETRAC数据集开发了一个交通目标检测系统,包含数据处理、模型训练和可视化界面全流程。UA-DETRAC数据集包含多种交通场景下的车辆标注,通过格式转换适配YOLOv8训练要求。系统采用PyQt开发交互界面,支持图像检测、结果显示等功能。该项目技术路线清晰,既展现深度学习在智能交通中的应用,又提供完整的可视化展示方案,适合作为计算机视觉相关毕业设计选题。

m0_64661770的博客 149

常量缓存与integer比较_一、基础篇--1.1Java基础-int 和 Integer 有什么区别,Integer的值缓存范围...

int和Integer的区别int是基本数据类型,Integer是int的包装类。Integer必须实例化后才能使用,int变量不需要。Integer实际是对象的引用,生成一个新对象实际上是生成一个指针指向此对象;而int则是直接存储数据值。Integer默认值是null,int默认值是0;Integer的缓存范围是-128到127。关于Int和Integer比较的一些延伸:例子:Integer...

weixin_28730927的博客 112

标题:Stata17安装后遇到Java安装问题解决方法

设置JAVA_HOME环境变量:在Windows上,您需要设置JAVA_HOME环境变量以告诉Stata Java的安装路径。d. 输入变量名为JAVA_HOME,变量值为Java安装路径。注意:请确保您的Java版本与Stata兼容,并使用正确的Java安装路径。设置Stata的Java安装路径:现在,您需要告诉Stata Java的安装路径。如果您看到Java版本信息,则表示Java已成功安装。如果没有安装,请先下载并安装Java。确认Java已安装:首先,请确保您的计算机上已经正确安装了Java。

CyberSparkZ的博客 2867

Java的Integer和int有什么区别

Java是面向对象的编程语言,一切都是对象,但是为了编程的方便还是引入了基本数据类型,为了能够将这些基本数据类型当成对象操作,Java为每一个基本数据类型都引入了对应的包装类型(wrapper class),int的包装类就是Integer,从Java 5开始引入了自动装箱/拆箱机制,使得二者可以相互转换,对应如下: 原始类型:boolean,char,byte,short,int,long,f

login_sonata的博客 5万+

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Integer 和 int 的区别

int 是Java中的基本数据类型之一,用于存储整数值。它直接存储数值,不需要额外的内存空间来存储对象元数据。 Integer 是 int 的包装类(Wrapper Class)。它是Java的一个类,提供了对基本数据类型 int 的对象封装。这意味着 Integer 是一个对象,并且需要额外的内存来存储对象的元数据(如类型信息、哈希码等)。

✨ 欢迎来到【Seal ^_^ 的优快云博客】!✨ 6396

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Java中Int、Integer、new Integer()之间的区别

Java中有八种基本数据类型,Int是其中之一。而Integer是Int的封装,即Integer其实是一个对象。可以通过new来创建一个Integer对象,也可以直接将Int值赋给Integer变量。它们之间的区别如下: 一:Int Int是Java八种基本数据类型之一,一般大小为4字节32位,取值范围为2^-31—2^31。两个Int类型变量用“==”比较的是内容的大小。 例如:int a...

yuncaidaishu的博客 1万+

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

彻底让你明白 Integer 类和 int 基本数据类型的区别

浅谈 Integer 类 目录 1、Integer 类简介 2、Integer 类和 int 的区别 3、Integer 的自动拆箱和装箱   ①、自动装箱   ②、自动拆箱 4、回顾开头的问题 5、测试 突然发现自己对Integer i = 10;这种语法不太明白,于是乎有了这篇文章,那么在讲解 Integer 之前,我们先看下面这段代码: publi...

baihualindesu的博客 6627

int 和 Integer, Integer 的值缓存范围

目录 典型回答 注意事项 知识扩展 理解自动装箱、拆箱 源码分析 原始类型线程安全 4.Java 原始数据类型和引用类型局限性 典型回答 int是 Java 的 8 个原始数据类型(Primitive Types,boolean(1/8字节)、byte(1字节) 、short(2字节)、int(4字节)、long(8字节)、float(4字节)、double(8字节)、char(2...

weixin_42078933的博客 1157

int 和 Integer 有什么区别,还有 Integer 缓存的实现

✨前言✨   Java本文主要介绍Java int 和 Integer的区别以及Integer 缓存的实现 Integer缓存的实现: 为了提高性能和减少内存占用,Java对Integer对象进行了缓存。当我们使用Integer.valueOf方法或自动装箱(autoboxing)时,Java会尝试从缓存中获取Integer对象,而不是每次都创建一个新的对象。这个缓存的范围是从-128到127,这些值是在Integer类初始化时创建的。以下是一个简单的示例,说明了Integer缓存的效果: 在这个示例中,我

qq_74095822的博客 1611

int 和 Integer 有什么区别?谈谈 Integer 的值缓存范围。

如何回答 ? 该问题从几个方面来回答: 定义(本质区别) 值的比较 所占内存 1. 定义 int 它是 基本类型,是java的 8 个基本类型之一。 Integer 是 int 的包装 类,它有一个 private final int 类型字段来存储值。并且提供了基本操作,如:数字运算,int 和字符串之间转换等。 JAVA5 对 Integer 的优化: 引入装箱拆箱功能(boxing/u...

Charlven的博客 584

Java中int和integer的区别

integer是int的包装类(属于引用数据类型),而int是java的基本数据类型 Integer的默认值是null,int的默认值是0 Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象;而int则是直接存储数据值 1.new两个相同value的integer变量进行比较,会发现返回结果为false,这是因为new生成的两个integer指向不同的地址,而引用数据类型比较时实际是比较地址是否相同。 2.非 new 生成的 Integer 变量与 n

m0_47743353的博客 1万+

int 和 Integer 有什么区别?Integer的值缓存范围

转载链接:http://blog.csdn.net/chenliguan/article/details/53888018 1 int与integer的基本使用对比 (1)Integer是int的包装类;int是基本数据类型;  (2)Integer变量必须实例化后才能使用;int变量不需要;  (3)Integer实际是对象的引用,指向此new的Integer对象;int是直接存储数据值 ;...

qq_36684398的博客 594

Java中 Int和Integer的区别

https://blog.csdn.net/DoWhatYouSay/article/details/82659239 int和Integer的区别 1、Integer是int的包装类,int则是java的一种基本数据类型 2、Integer变量必须实例化后才能使用,而int变量不需要 3、Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象;而int则是直接存储数据值 4、Integer的默认值是null,int的默认值是0 延伸: 关于Integer...

Move on 1379

int和Integer区别,为什么有了int还要有Integer

目录int和Integer的区别int和Integer的比较有了int为什么还要有Integer补充:Integer的装箱和拆箱 int和Integer的区别 int是Java的基本数据类型,长度为32位(4)字节;Integer是Java提供的封装类,在java.lang.Integer包里面。 int默认值为0;而Integer默认值是null。 Integer是对象的引用,必须实例化后才能使用;int则不需要。 new一个Integer实际是生成一个指针指向此对象;而int则是直接存储数据值。 i

qq_43133382的博客 2161

int和Integer有什么区别?

Java虽然号称是面向对象的语言,但是原始数据类型仍然是重要的组成元素,所以在面试中,经常考察原始数据类型和包装类等Java语言特性。今天我要问你的问题是,int和Integer有什么区别?谈谈Integer的值缓存范围。

qq_33240556的博客 839

Java基础:int与Integer区别

int与Integer的基本使用对比 Integer是int的包装类;int是基本数据类型; Integer变量必须实例化后才能使用;int变量不需要; Integer实际是对象的引用,指向此new的Integer对象;int是直接存储数据值 ; Integer的默认值是null;int的默认值是0。 int与Integer的深入对比 (1)由于Integer变量实际上是对一个Integer对...

TuT 5380
上一篇: 一、基础篇--1.1Java基础-Exception、Error、RuntimeException与一般异常有何异同
下一篇: 一、基础篇--1.1Java基础-包装类的装箱和拆箱
口德尔
博客等级 码龄14年 3粉丝 62原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值