変数と定数を比較するとき、
[変数] [演算子] [定数]
という書き方をすることが多いと思います。
ほとんどの場合、必ずしもそうでなければならないわけではありませんが、言語的に解釈したときに自然な表現だからなのでしょう。
普通、「変数A の値が"Y"である」とは言いますが、「"Y"が変数A の値である」とは言いませんから。
しかし、Java で Objectクラスの equalsメソッドを使って変数と定数を比較する際は、
flag.equals("Y")
と書くよりも
"Y".equals(flag)
と書いたほうが安全です。
変数クラスに対して equals を使用すると変数が Null だった場合に、NullPointerException が発生してしまう可能性があるからです。
ただし、そうはいっても、やはりかなり違和感のある表現ですので、私は”変数が Null でないことが保証されていない”場合に限って
"Y".equals(flag)
というような表現を使用しています。
変更時に”変数が Null でないことが保証されていない”という前提が崩れてしまう可能性も考慮すると、すべからく
"Y".equals(flag)
と書いておいたほうがいいのかもしれませんが...