項目 図書館を知り、利用する

Mary-Kate Olsen
リリース: 2024-10-04 06:10:30
オリジナル
286 人が閲覧しました

Item  Conheça e utilize as bibliotecas

車輪の再発明は避けてください:
よくある問題に直面すると、その場限りの解決策を書きたくなる傾向がありますが、ライブラリは最適化され、テストされ、信頼性の高い実装を提供します。

例:

// Gerando um número aleatório (solução ad hoc com problemas)
static int random(int n) {
    return Math.abs(rnd.nextInt()) % n;
}

ログイン後にコピー

このアプローチには次のような問題があります:

  • n が 2 の累乗の場合の繰り返しパターン。
  • n が 2 の累乗でない場合は不均等分布になります。
  • Math.abs(Integer.MIN_VALUE) でエラーが発生するリスクがあります。
  • より良い解決策: Random.nextInt(int) を使用して乱数を効率的かつ正確に生成します。
Random rnd = new Random();
int randomNum = rnd.nextInt(n);  // Correto e seguro

ログイン後にコピー

ThreadLocalRandom を使用します:
Java 7 の時点では、ThreadLocalRandom の方が高速なので、多くの場合、Random よりも優先されるはずです。

int randomNum = ThreadLocalRandom.current().nextInt(n);  // 3.6x mais rápido que Random

ログイン後にコピー

標準ライブラリを使用する利点:

  • 専門知識: ライブラリ メソッドは専門家によって作成され、広範囲にテストされ、時間の経過とともに改善されます。
  • 時間効率: サポートするインフラストラクチャを作成する代わりに、アプリケーションの開発に集中できます。
  • パフォーマンスの向上: 標準ライブラリは継続的に最適化されています。
  • 追加機能: 時間の経過とともに、ライブラリには新しい機能が追加されます。例: transferTo メソッドは、ストリームからのデータ送信を容易にするために Java 9 に追加されました。
// Exemplo de uso do método transferTo para transferir dados de um InputStream para um OutputStream
try (InputStream in = url.openStream();
     OutputStream out = new FileOutputStream("output.txt")) {
    in.transferTo(out);  // Simples e eficiente
}

ログイン後にコピー

知っておくべき一般的なライブラリ:

Familiarize-se com as bibliotecas centrais, como java.lang, java.util, java.io, e seus subpacotes.
Conheça o framework de coleções e a biblioteca de streams, além dos utilitários de concorrência em java.util.concurrent.
ログイン後にコピー

ライブラリを使用しない場合:

  • 場合によっては、ニーズが特殊化されており、標準ライブラリでは満たされない場合があります。このような場合は、Google の Guava などのサードパーティ ライブラリを探すか、必要に応じて独自の実装を作成します。

結論:

  • 常にクエリで要約します。機能が必要な場合は、ソリューションを再発明する前に、ライブラリが必要なものをすでに提供しているかどうかを確認してください。

以上が項目 図書館を知り、利用するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!