見出し画像

またバグを書いたの?Java開発で最も書きやすいバグ 5選

あの人、今日またバグを書いたの、そう、彼が言ったのは私のようだ..............
 
Java開発として、コードを書く過程でさまざまな奇妙なバグが発生するのは避けられないので、仕方がありません。
 
それではJAVA開発で最も一般的なバグをいくつかシェアしてみましょう!

エラー1:ArrayをArray Listに変換

配列をArrayListに変換する場合、一般的な方法はこうなります。

Arrays.asList() は ArrayList を返します。これは、java.util.ArrayList クラスではなく、Array のプライベート静的クラスです。以下に示すように

Arrays内部のArrayListはset、get、containsなどの方法しかないが、addのようにその内部構造を変化させることができる方法はないので、Arrays内部のArrayListの大きさは固定されています。

要素を追加できる ArrayList を作成する場合は、次の作成方法を使用してください。

エラー2: 配列に特定の値が含まれているかどうかを確認する

配列に特定の値が含まれているかどうかを確認すると、一部のプログラマは次のようになることがよくあります。

このコードは間違いありませんが、追加の性能損失があります。通常は、それを再びsetに変換する必要はありません。このようにすればいいです。 

あるいは次のような方法で

エラー3: ArrayList と LinkedList

ArrayList は、プログラマが最も頻繁に使用するツール クラスです。
 
開発者は、ArrayList と LinkedList の違いがわからない場合に ArrayList を使用することがよくあります。
 
しかし、実際には、ArrayList と LinkedList の間には大きなパフォーマンスの違いがあります。つまり、追加/削除操作が大きく、ランダムアクセス操作がそれほど多くない場合は、LinkedList を優先する必要があります。 ArrayList は多くの追加/削除操作には適していないため、アクセス操作が多い場合は ArrayList が推奨されます。 

エラー4: 可変と不変

不変オブジェクトには、シンプルさや安全性など、多くの利点があります。ただし、不変オブジェクトは、異なる値ごとに個別のオブジェクトを割り当てる必要があります。そのようなオブジェクトが多すぎると、ガベージ コレクションのコストが非常に高くなる可能性があります。可変と不変のどちらかを選択するときはバランスを取る必要があります。
 
一般に、可変オブジェクトは、中間オブジェクトの作成が多すぎることを避けるために使用されます。たとえば、多数の文字列を連結したいとします。不変の文字列を使用すると、すぐにガベージ コレクションできるオブジェクトが大量に作成されることになります。これは CPU 時間と労力を無駄にします。変更可能なオブジェクト (StringBuilder など) を使用することが適切な解決策です。次のコードに示すように:

したがって、可変オブジェクトと不変オブジェクトの間で正しい選択をするには、慎重な決定が必要です。 

エラー5: 典型的なメモリ割り当ての問題

次のコードを考えてみましょう。

上記のコードに違いはありますか?
 
おそらく次のコードが答えを与えるでしょう。

ここでは、Java 開発でよくある 5 つの間違いをまとめます。これらは比較的単純ですが、細部が重要なので見落とされがちです。 

参照リンク:

https://mp.weixin.qq.com/s?__biz=MzI0ODk2NDIyMQ==&mid=2247493627&idx=1&sn=79c3df3b129c36a9f1f6339a47261a59&chksm=e99a12e9deed9bff7a7240c8cdbeeafa42a0f1701942baa9747251ded02852688a4c6c74c500&token=1753793373&lang=zh_CN#rd

この記事が気に入ったらサポートをしてみませんか?