当前位置: 首页 > 面试题库 >

这两个条件之间的区别?

方权
2023-03-14
问题内容

抱歉,我的问题是否愚蠢,没关系。但是我只想知道在这两种情况下会发生什么。

public class Test {
    public static void main(String[] args) 
    {
        String str="test";
        if(str.equals("test")){
            System.out.println("After");
        }
        if("test".equals(str)){
            System.out.println("Before");
        }
    }
}

两者都只给出相同的结果。但是我知道有一些原因。我不知道这一点。这两个条件有什么区别?


问题答案:

它们之间没有任何区别。许多程序员使用第二种方法只是为了确保他们没有得到NullPointerException。就这样。

    String str = null;

    if(str.equals("test")) {  // NullPointerException
        System.out.println("After");
    }
    if("test".equals(str)) {  // No Exception will be thrown. Will return false
        System.out.println("Before");
    }


 类似资料:
  • 下面是一些React/JS代码:有区别吗: 和 非常感谢

  • 问题内容: 我对这两种结构感到非常困惑。这两个表的优缺点是什么?哪一个更好,为什么? 表格1 表2 问题答案: 通常,第二个表在数据库设计的上下文中是 反模式的 。而且,它还有特定的名称: 实体属性值 (EAV)。在某些情况下,使用这种设计是有道理的,但是这种情况很少见,甚至可以避免。 为什么EAV不好 数据完整性支持 尽管事实是这样的结构似乎更加“灵活”或“先进”,但这种设计仍存在缺陷。 不可能

  • 问题内容: public class SomeClass { private HashSet contents = new HashSet (); private Set contents2 = new HashSet (); } 有什么不同?最终它们都是不是吗?第二个对我来说似乎是错误的,但是我看到它经常被使用,接受和工作。 问题答案: 是一个接口,并且是实现该接口的类。 将变量声明为类型意味着

  • 问题内容: 考虑我们有两个表,和。是表中的外键,并且是表中的主键。 这两个SQL查询之间有什么区别? 与 问题答案: 除语法外,对于小片段,它们的工作原理完全相同。但是,如果有可能,请始终使用ANSI-JOIN编写新查询。 至于语义上,逗号用于在两个表之间生成CARTESIAN乘积,这意味着生成表A中的所有记录与表B中的所有记录的矩阵,因此具有4和6条记录的两个表分别生成24个记录。然后,使用WH

  • 我想在对象使条件,例如,如果在响应我们有stateCode,选择属性stateCode,如果我们有stateName在响应选择stateName,它可能,你有解决方案吗? 这是对象的示例: 这是stateCode,我想包括在那里,并作出条件,如果作为回应,我验证我们有stateCode,选择州代码,如果我们有stateName,选择stateName,有人帮助吗? 此外,我还使用公共断言函数来验证

  • 问题内容: 是否有一个跟踪用户某些事件的表。 总是有一个动作,之后可能会有一个动作。 现在,我想查询这两个动作之间的时间差,以获取用户和之间的time_diff 。 现在,您可以假定没有多个条目(例如,至少一个,最大另一个)。 我想要这样的结果: 问题答案: 您可以使用以下查询: 该子句过滤掉仅包含一个动作的组,例如OP中的with记录。 演示在这里