当前位置: 首页 > news >正文

【hot100】bug指南记录1

之前学了一阵C++,还是更熟悉C++的语法呀,转Java还有点不适应........

这个系列纯纯记录自己刷题犯的愚蠢的错误......hhhh,我是人,one 愚蠢的码人......

巩固巩固基础好吗?!编程菜鸟.......hhh,又是被自己蠢到的一天......

真的基础基础再基础的Java语法bug了.......实践出真知啊,给我写,写不死就往死里写.....

Q:Java代码 :为什么if(!cur) return; 报错, 而 if(cur==null) return; 却可以?

在 Java 中,if (!cur) return; 会报错的原因是 语法不符合 Java 的语言规范,而 if (cur == null) return; 是合法的。

1. if (!cur) return; 为何报错?

原因:

  • Java 没有逻辑非(!)操作符用于对象引用

    • 在 Java 中,! 是用于布尔值的逻辑非操作符(例如:boolean flag = true; if (!flag) ...)。

    • cur 是一个对象引用(例如 TreeNode cur),而不是布尔值,因此不能直接对 cur 使用 !

    • !cur 的语法是错误的,因为 Java 编译器无法将对象引用(TreeNode 类型)隐式转换为布尔值。

对比 C/C++:

  •  C/C++ 允许将指针隐式转换为布尔值(例如:if (!cur) 表示检查指针是否为 NULL)。

  • 但 Java 严格禁止这种隐式转换,必须显式检查对象是否为 null

2. if (cur == null) return; 为何正确?

原因:

  • Java 中的对象引用检查必须显式使用 ==  != 操作符

    • cur == null 是合法的语法,表示检查 cur 是否为 null(即未指向任何对象)。

    • 这是 Java 中检查空指针的标准方式。

3. 总结

语法

是否合法

说明

if (!cur) return;

Java 不允许对对象引用使用 ! 操作符。

if (cur == null) return;

Java 中检查对象是否为 null 的标准方式。

4. 扩展建议

  • 避免空指针异常(NullPointerException):

    • 在访问对象的方法或属性前,始终检查是否为 null

    • 使用 Java 8 的 Optional 类(例如:Optional.ofNullable(cur).ifPresent(...))可以更优雅地处理空值。     (小小的脑袋大大的问号,没用过呀?不懂!!!)

  • 代码规范:

    • 显式的 null 检查(如 cur == null是 Java 中最直观且推荐的方式。

http://www.xdnf.cn/news/317791.html

相关文章:

  • Qt界面设计时窗口中各控件布局及自适应方法
  • [250507] 小米发布首个推理模型 MiMo,70亿参数展现卓越性能
  • 使用 Java 11 的 HttpClient 处理 RESTful Web 服务
  • 【Linux】Linux环境基础开发工具
  • 精益数据分析(46/126):深入剖析用户生成内容(UGC)商业模式
  • 并发设计模式实战系列(17):信号量(Semaphore)
  • 解构与重构:自动化测试框架的进阶认知之旅
  • Spring Boot 为 MongoDB 自动配置了哪些核心 Bean?
  • Make:独立创造者手册——从0到1的商业自由之路
  • 任意文件读取漏洞
  • 阿里联合北大开源数字人项目FantasyTalking,输出内容更加动态化~
  • HarmonyOS Next~HarmonyOS应用测试全流程解析:从一级类目上架到二级类目专项测试
  • 游戏引擎学习第262天:绘制多帧性能分析图
  • 标量/向量/矩阵/张量/范数详解及其在机器学习中的应用
  • MCP 入门指南
  • Kubernetes生产环境实战:深度排查Pod内存溢出(OOM)问题指南
  • 优选算法系列(8.多源BFS)
  • Vue3响应式:effect作用域
  • linux命令>/dev/null 2>1的含义
  • 【北京迅为】iTOP-4412精英版使用手册-第七章 Android 4.0/Linux源码编译
  • 在 Vue 2 中使用 qrcode 库生成二维码
  • Python 识别图片上标点位置
  • CSDN文章都是VIP
  • Ubuntu 使用dotfiles个性化配置模板
  • 使用 Apache POI 生成包含文本和图片的 Word 文档
  • 【MCP】从0到1实现一个MCP Client
  • 【Python类(Class)完全指南】面向对象编程入门
  • 阿里云服务器-centos部署定时同步数据库数据-dbswitch
  • 【Django】中间件
  • 软件工程(三):模块的内聚模型