Every so often I come across these simple things that after thinking about them I kick myself for not thinking about and knowing sooner. Earlier today was one of those moments! It might seem natural, assumed, even obvious that for many method calls it doesn't actually matter what way around things go. So take "asd".equals("dsa"); - does it ever make a difference? In this case, no - but what about if we introduce variables? String str = "asd"; System.out.println(str.equals("dsa")); System.out.println("dsa".equals(str)); Again, no difference. Now let's be a bit sneaky however and swap str to null (you may see where this is going!) String str = null; System.out.println("dsa".equals(str)); System.out.println(str.equals("dsa")); Ahah! This time we (somewhat obviously) get a NPE on the third line. But the second line executes without any problems at all (also rather obviously - we're not dereferencing null her...