以下の説明はPCおよびモバイル端末のみを対象としています。
Java の最大の利点は本当にクロスプラットフォームであることでしょうか?以前はそうでしたが、今はそうではありません。
クロスプラットフォーム要件があるのはクライアント アプリケーションのみであり、サーバーではありません。たとえば、デスクトップ アプリケーションの場合、顧客は Windows ユーザーまたは Linux ユーザーである可能性があり、各プラットフォームに適応するためにこれ以上投資したくない場合は、Java のいわゆる「一度書けばどこでも実行できる」機能が非常に優れたものになります。しかし、今日ではソフトウェアの世界全体が B/S アプリケーション (組み込みを除く) に傾いています。たとえクライアントがクロスプラットフォームであっても、QT などのサードパーティ フレームワークは Swing Java よりもはるかに強力です。デスクトップアプリケーションの分野では、これは議論の余地のない事実であり、Java が誇りに思っていたアプレットはとうの昔に姿を消しました。クライアントサイド Java に優れた点があるとすれば、それは Android だけです。 Android は当初、異なるハードウェア デバイス間の違いを保護するために JVM に依存し、大きな成功を収めましたが、現在、Android L の ART モードの登場によりこの状況が覆されようとしており、Google も独自の Go 言語を使用したいと考えているかもしれません。 Android プラットフォームの最初の言語としての Java。したがって、クライアント側では、Java はほぼ完全に敗北しています。
サーバー側アプリケーションはクロスプラットフォームである必要はありません。 Web サーバーを構築するときに、現在 Linux を使用し、来月には Windows に切り替える企業はないと思います。 Debian から Fedora など、Linux ディストリビューションを変更するだけの場合、基本的に Linux カーネルは変更されないため、C++ のような純粋にコンパイルされた言語では問題ありません。ゲームサーバーを構築する場合、ほとんどの人が Win プラットフォームではなく Linux を選択すると思います。 Java のクロスプラットフォームの利点は、実際には大幅に弱まっています。通常の状況では、Java がクロスプラットフォームであることを認識することはほとんど不可能であると言えます。 3 つの主要な商用 JVM の 1 つである JRockets はコンパイラ専用の JVM です。つまり、アプリケーションの起動時にすべてのバイトコードがローカル マシン コードにコンパイルされます。これにより、実際にはクロスプラットフォームが大幅に放棄され、パフォーマンスが追求されます。
今日、Java の最大の利点は、その大規模で完全なエコシステムです。 プログラミング言語が普及できるかどうかは、主にそのエコシステムによって決まります。 Java エコシステムの完成度は主に次の側面に反映されています:
Java には世界で最も多くのプログラマーがいます。農家と言っても構わないのですが、その数によっては企業が人材を採用する際にJavaプログラマーを採用しやすくなるというのが一番の効果です。想像してみてください。ソフトウェアのセットを作成したいと考えていて、C++、Scala、Ruby などの言語で実装する必要がある優れた技術ソリューションがあるにもかかわらず、十分な人材を採用できない場合、その計画は最も効果的です。おそらく無駄になるでしょう。現時点では、アプリケーション Java でもそれが可能であり、十分な人材を簡単に採用できるため、Java を選択する可能性が高くなります。
Java には多数のサードパーティ ライブラリがあります。 HTML を解析したい場合は、おそらく C/C++ などの言語で独自の解析アルゴリズム ライブラリを作成する必要がありますが、Java の場合は、Github で JSoup を簡単に見つけて、Maven を使用して依存関係をインポートし、 HTML は数分で完成します。このため、Java を風刺する言葉があります。「私たちはコードを生成しているわけではありません。私たちは単なる Github 移植者です。」この文は文字通り意味はありますが、大きな価値のあるソフトウェアの生産効率の向上を無視しています。ソフトウェア開発の場合、企業のコストは実際には「資本金」だけです。開発期間が 1 か月短縮されるたびに、数十万、数千万の研究開発費を節約できます。
Java には強力な IDE があります。 Eclipse は、プラグインを通じてほぼすべての開発ニーズに対応できます。少し遅いですが、JVM チューニングによってプログラムのスムーズさを向上させることができます。デフォルトの JVM パラメータは決して使用しないでください。しかし、IntelliJ Idea は Eclipse を完全に上回り、Idea のインテリジェンスは Win プラットフォームの VS とほぼ同等です。私は Vim なしでは生きていけないタイプの人間ですが、両方の IDE に Vim プラグインがあり、私を楽しく生きさせてくれます。
Java には多くのキラー アプリケーションがあります。 言うまでもなく、Spring、Struts、Hibernate、Hadoop、Tomcat、JBoss などです。
Java には構文機能がほとんどありません。はい、それもプラスです。 C++ は C に比べて多くの機能を追加します。学習が難しいだけでなく、使用時のコードの可読性も低下します。実際、時間と労力の無駄です。今日の世界では、プログラミング言語の要件はシンプルな構文と読みやすいコードであり、パフォーマンスが次善の策であるため、Python や Ruby などのプログラミング言語が誕生しました。 Java 構文が肥大化していると多くの人が批判しており、私もそれを認めますが、実際のところ、プログラミング言語は構文が肥大化したために廃止されたわけではなく、その生死を決めるのはエコシステムです。批評家向けに、Zhihu の言葉を引用します。「動的型はしばらくの間は優れていますが、コードのリファクタリングは火葬場です。」
Java のパフォーマンスはすでに十分に高いです。 Sun/Oracle の HotSpot JVM の組み込み JIT コンパイラは、実行時にバイトコードを最適化するために多大な努力を払ってきました。サーバー アプリケーションの起動後、JVM は十分に「ウォームアップ」され、適切な起動パラメータが与えられます。パフォーマンスに非常に敏感なシステム アプリケーションでなければ、Java は十分に高速です。これを視覚化する簡単で実行可能な方法があります。+XX:PrintCompilation を JVM 起動パラメータに追加して、JIT コンパイラのビジー度を確認します。今日の世界では、パフォーマンスが許容できる場合、開発効率が最優先され、これが Python などの動的スクリプト言語が人気の主な理由でもあります
。
この記事では、Javaプロジェクト管理、自動化の構築、依存関係の解像度にMavenとGradleを使用して、アプローチと最適化戦略を比較して説明します。

この記事では、MavenやGradleなどのツールを使用して、適切なバージョン化と依存関係管理を使用して、カスタムJavaライブラリ(JARファイル)の作成と使用について説明します。

この記事では、カフェインとグアバキャッシュを使用してJavaでマルチレベルキャッシュを実装してアプリケーションのパフォーマンスを向上させています。セットアップ、統合、パフォーマンスの利点をカバーし、構成と立ち退きポリシー管理Best Pra

この記事では、キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPAを使用することについて説明します。潜在的な落とし穴を強調しながら、パフォーマンスを最適化するためのセットアップ、エンティティマッピング、およびベストプラクティスをカバーしています。[159文字]

Javaのクラスロードには、ブートストラップ、拡張機能、およびアプリケーションクラスローダーを備えた階層システムを使用して、クラスの読み込み、リンク、および初期化が含まれます。親の委任モデルは、コアクラスが最初にロードされ、カスタムクラスのLOAに影響を与えることを保証します

この記事では、分散アプリケーションを構築するためのJavaのリモートメソッドの呼び出し(RMI)について説明します。 インターフェイスの定義、実装、レジストリのセットアップ、およびクライアント側の呼び出しを詳述し、ネットワークの問題やセキュリティなどの課題に対処します。

この記事では、ネットワーク通信のためのJavaのソケットAPI、クライアントサーバーのセットアップ、データ処理、リソース管理、エラー処理、セキュリティなどの重要な考慮事項をカバーしています。 また、パフォーマンスの最適化手法も調査します

この記事では、カスタムJavaネットワーキングプロトコルの作成を詳述しています。 プロトコルの定義(データ構造、フレーミング、エラー処理、バージョン化)、実装(ソケットを使用)、データシリアル化、およびベストプラクティス(効率、セキュリティ、メンテナ


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

メモ帳++7.3.1
使いやすく無料のコードエディター

ドリームウィーバー CS6
ビジュアル Web 開発ツール

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ホットトピック



