JavaDog程序狗

【Java】值传递还是引用传递?女朋友都会的基础问题,你竟然还模糊!

本文深入解析Java参数传递。强调Java中只有值传递:基本类型传递值副本,对象传递其引用副本。解释了为何修改对象属性会生效,而方法内重新指向新对象却不影响原对象,以及如何正确处理对象修改。旨在消除误解,助你掌握Java参数传递的奥秘。

JavaDog程序狗 发布于 2025-06-05

【Java】面试必问!equals和==傻傻分不清?

摘要:在Java中,==与equals的核心区别在于:==用于比较基本类型值或引用类型对象的内存地址(即是否为同一实例),而equals方法默认比较对象身份,但可被重写(如String类)以实现内容比较。对于基本类型,两者行为一致;引用类型中,new String("str")与"str"的==可能返回不同结果,因字符串常量池机制。自定义对象需重写equals(及hashCode)以实现逻辑相等判断,数组比较需用Arrays.equals。掌握此区别可避免面试与实际开发中的常见陷阱。

JavaDog程序狗 发布于 2025-05-30

【Java】BigDecimal引发事故大揭秘,这“雷区”你踩过没?

本文揭秘BigDecimal三大致命陷阱:用double构造导致精度丢失(如0.1变0.100000…),必须用字符串构造;除法不设精度会抛异常,需指定舍入模式;equals()同时比较值和精度,2.00≠2.0,需用compareTo()。牢记字符串构造、设精度、银行家舍入三原则,避免财务事故

JavaDog程序狗 发布于 2025-03-14

【Java】throw异常后代码还执行吗?80%小伙伴竟然不知道

在Java中,throw语句用于抛出异常。一旦执行throw,当前方法或代码块的后续代码将不再执行。如果抛出的异常被try-catch结构捕获,catch块内的代码将被执行,而throw后的代码不会执行。如果没有匹配的try-catch结构来处理这个异常,throw之后的代码也不会执行,并且异常会继续向上抛出,直到被处理或导致程序终止。简而言之,throw之后的代码通常不会执行,除非异常被成功捕获并处理后继续执行后续逻辑。

JavaDog程序狗 发布于 2024-08-15