网站建设丶金手指下拉11怎么做购物网站的分类目录

张小明 2026/1/19 22:52:28
网站建设丶金手指下拉11,怎么做购物网站的分类目录,威海互联网公司,查域名前言#xff1a;在 Java 开发中#xff0c;int 和 Integer 的区别看似是入门级知识#xff0c;但在实际生产环境和面试中#xff0c;这里却隐藏着无数的“坑”。为什么有时候 比较会失效#xff1f;为什么简单的赋值会抛出空指针异常#xff1f;本文将深入剖析 Java 基本…前言在 Java 开发中int 和 Integer 的区别看似是入门级知识但在实际生产环境和面试中这里却隐藏着无数的“坑”。为什么有时候 比较会失效为什么简单的赋值会抛出空指针异常本文将深入剖析 Java 基本类型与包装类的底层机制带你搞懂自动装箱、缓存池以及常见的性能陷阱。一、 基本类型 vs 包装类型不仅是“名字”不同Java 虽然是面向对象的语言但为了性能考虑保留了 8 种基本数据类型。而为了让这些数据能适配泛型、集合等对象机制Java 又提供了对应的包装类。1. 核心区别对比维度基本数据类型 (int, double 等)包装类型 (Integer, Double 等)默认值0,0.0,false等null(这是最容易踩坑的点)存储位置主要在栈 (Stack)(局部变量)几乎都在堆 (Heap)中泛型支持不支持 (如Listint❌)支持 (如ListInteger✅)比较方式比较的是数值必须使用equals()(除非你完全理解缓存机制)占用空间非常小高效较大包含对象头等元数据 关于存储位置的补充虽然我们常说“对象在堆基本类型在栈”但随着 JIT 编译器的优化逃逸分析如果一个对象没有逃逸出方法它是有可能通过标量替换在栈上分配的。但在大多数常规理解中认为包装类对象在堆中是没问题的。2. 包装类的继承体系除了boolean和char其他的数字类型包装类都继承自java.lang.Number这意味着它们都有互相转换的方法如intValue(),doubleValue()。数值型 (继承 Number):Byte,Short,Integer,Long,Float,Double非数值型:Boolean,Character二、 什么是自动装箱与拆箱在 Java 5 之前基本类型和包装类型互转非常麻烦。后来引入了自动装箱/拆箱本质上是编译器的语法糖。1. 自动装箱 (Auto-boxing)定义基本类型 - 包装类型。场景Integer a 100;底层原理编译器自动帮你调用了Integer.valueOf(100)。2. 自动拆箱 (Auto-unboxing)定义包装类型 - 基本类型。场景int b a;底层原理编译器自动帮你调用了a.intValue()。3.parseIntvsvalueOf的区别这也是代码审查中常被问到的细节Integer.parseInt(s)返回int。效率高直接解析数字不产生对象垃圾。Integer.valueOf(s)返回Integer。内部先调用parseInt然后尝试走缓存池获取对象。三、 高频面试坑与避坑指南了解了原理我们来看看那些让无数新手甚至老手翻车的经典场景。 陷阱 1Integer Cache (缓存池)这也是为什么一定要用 equals 比较的原因。Java 为了优化性能对 Byte, Short, Integer, Long 都在内部维护了一个缓存池。Integer 的默认缓存范围是 -128 到 127。看下面的代码public class IntegerTrap { public static void main(String[] args) { // --- 场景 A在缓存范围内 (-128 ~ 127) --- Integer a 100; // 自动装箱 - Integer.valueOf(100) - 命中缓存 Integer b 100; System.out.println(a b); // 输出 true // 原因a 和 b 指向堆内存中同一个缓存对象地址 // --- 场景 B超出缓存范围 --- Integer c 200; // 自动装箱 - Integer.valueOf(200) - 创建新对象 Integer d 200; System.out.println(c d); // 输出 false // 原因c 和 d 是两个不同的对象地址不同 // --- 正确做法 --- System.out.println(c.equals(d)); // 输出 true (值比较) } } 陷阱 2致命的 NPE (空指针异常)由于包装类的默认值是null而自动拆箱需要调用实例方法如intValue()一旦变量为空程序就会崩溃。public class NPETest { public void riskMethod() { Integer count null; // 比如从数据库查出来是 null // ❌ 危险操作 // 编译器会把这行编译为int result count.intValue(); // 因为 count 是 null抛出 NullPointerException int result count; } } 陷阱 3三元运算符的隐式拆箱这是一个非常隐蔽的坑Integer a null; Integer b 10; // 如果三元运算符两边类型不一致一个是Integer一个是int // 会触发自动拆箱导致 NPE Integer c (a ! null) ? a : 0; // 安全四、 总结与最佳实践比较原则所有包装类对象之间值的比较严禁使用必须使用equals()。实体类定义POJO 类如数据库实体的属性推荐使用包装类型Integer。理由数据库字段可能是NULL如果用int接收NULL会报错或者默认变成 0导致业务含义混淆0 代表“未评分”还是“0分”。计算与赋值在使用包装类型进行计算或赋值给基本类型之前务必进行null值检查。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

编写网站 语言杭州旅游网站开发说明书

在网络运维这个行业里,有一类经验非常特殊:• 书上学不到• 别人很少主动讲• 不出事时你意识不到• 一旦出事,就会记一辈子它们往往是反直觉的,甚至和新人时期的“技术信仰”完全相反。这篇文章不是教你配置&#xf…

张小明 2026/1/17 15:59:46 网站建设

微网站的建设织梦宠物网站模板

工业USB热插拔难题实战解法:从电路到代码的全链路防护在一次智能制造产线调试中,一台AGV小车频繁上报“通信中断”,导致任务停滞。现场排查发现,并非程序崩溃,而是连接扫码枪的USB线因振动松动——每次工人走过都会轻微…

张小明 2026/1/17 15:59:47 网站建设

网站建设中...网站内容板块调换位置

3大技巧彻底掌握FaceFusion人脸融合:告别边缘毛边和背景干扰的终极方案 【免费下载链接】facefusion Next generation face swapper and enhancer 项目地址: https://gitcode.com/GitHub_Trending/fa/facefusion 在当今数字时代,人脸融合技术正迅…

张小明 2026/1/17 15:59:49 网站建设

vs2010怎么做网站前台老牛wordpress

还在为手动整理B站视频内容而烦恼吗?传统笔记方式效率低下,信息遗漏严重,让内容整理成为许多用户的痛点。现在,通过智能化的解决方案,你可以轻松将视频内容转化为结构化的文字稿。 【免费下载链接】bili2text Bilibili…

张小明 2026/1/17 15:59:50 网站建设

自己做网站赚钱网站建设方案书怎么签字上传

想要将Blender中的创意设计无缝转换到3D打印机?Blender 3MF插件正是你需要的终极解决方案。这款专业插件能够完美处理3D制造格式文件,让数字设计与物理制造实现完美对接。 【免费下载链接】Blender3mfFormat Blender add-on to import/export 3MF files …

张小明 2026/1/17 15:59:52 网站建设

上国外网站用什么机箱好网站里的地图定位怎么做

PowerShell 对 XML 文件和微软系统的管理操作 1. PowerShell 处理 XML 文件 在处理 XML 文件时,PowerShell 提供了强大的功能,可用于读取、添加、修改和删除 XML 文件的内容。 1.1 处理相同标签的 XML 文件 以下是处理包含相同标签的 XML 文件的示例代码: # 获取 XML …

张小明 2026/1/17 15:59:51 网站建设