「Javaの高速化の方法」というページに、次のような高速化手法が書かれていました。 文字列がNULLかどうかの判断は IF文を使用せずに 例外処理NullPointerException で置き換える if文の場合です。 if(obj == null) { /* process */ } try/catchの場合です。 try { /* process */ } catch (NullPointerException e) {} たまにこういう謎の高速化手法を教えてもらうのですが、どうしてもすぐには信じられないので少し調べました。 ifとtry/catchのオーバーヘッドは? Stack Overflowに、ドンピシャな質問がありました。 Java if vs. try/catch overhead 読んでみると、「例外処理は例外的な処理に使うものだから、通常のフローでnullになるような
![nullチェックは、ifですべきかtry/catchですべきか?](https://cdn-ak-scissors.b.st-hatena.com/image/square/bb33b593eacd91f7f7790a59c9757235d097c260/height=288;version=1;width=512/https%3A%2F%2Fblog.katty.in%2Fwp-content%2Fuploads%2F2013%2F08%2F41b450d7d20c5b79a329478536961eb2.png)