微商城微网站开发东莞什么行业做网站的多

张小明 2026/1/11 16:21:54
微商城微网站开发,东莞什么行业做网站的多,网站定制开发哪家厉害,哪里有网站培训的前言#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进行投诉反馈,一经查实,立即删除!

网站推广优化业务免费网站推广网址

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 快速开发一个表单验证库原型:1) 核心Form组件使用useImperativeHandle暴露validate/submit/reset方法;2) 支持多种验证规则(必填、邮箱、手机号等)&#xff…

张小明 2026/1/9 12:41:39 网站建设

贡井区建设局网站?网站建设效果好不好

还在为重复的微信消息回复而烦恼?想要解放双手让机器人帮你处理日常聊天?基于Xposed框架的微信机器人开发方案为你打开了一扇新的大门!🎯 【免费下载链接】wechatbot-xposed 项目地址: https://gitcode.com/gh_mirrors/we/wech…

张小明 2026/1/9 20:49:32 网站建设

怎样做才能提升自己的网站洛阳搜索引擎优化

告别慢速下载:使用GitCode镜像站秒下百亿参数模型 在AI研发一线摸爬滚打的开发者们,一定都经历过那种“等待模型下载”的煎熬——屏幕上的进度条一动不动,网络速度卡在1MB/s上下,一个70B的大模型要下七八个小时。中途还可能因为网…

张小明 2026/1/9 11:19:40 网站建设

网站框架规划青海省建设厅勘察设计备案网站

作为一名长期与Windows系统打交道的开发者,我深知系统预装应用和冗余功能带来的困扰。每次重装系统后,都要花大量时间手动清理那些永远用不上的应用,禁用各种数据收集功能。直到我发现了Win11Debloat这个开源工具,它彻底改变了我的…

张小明 2026/1/10 22:50:18 网站建设

设计师经常上的网站wordpress夜间模式插件

PaddlePaddle 支持 Transformer 模型吗?一文讲透实现路径与工程实践 在自然语言处理领域,Transformer 已经不再是“新潮技术”,而是构建现代 AI 系统的基础设施。从机器翻译到对话生成,从文本摘要到代码补全,几乎所有的…

张小明 2026/1/10 20:06:14 网站建设

当地的网站建设企业官网源码免费

让产线“飞”起来:用 QThread 解锁工业控制系统的实时响应力你有没有遇到过这样的场景?某天清晨,车间的装配线突然“卡住”了——HMI 界面不动了,按钮点不下去,趋势图停在半空。操作员急得直拍屏幕:“刚才还…

张小明 2026/1/11 4:04:55 网站建设