Java は、1995 年 5 月に Sun Microsystems によって発売された Java オブジェクト指向プログラミング言語および Java プラットフォームの総称です。 James Gosling らによって開発され、1995 年に正式に発売されました。
その後、Sun は Oracle (Oracle) に買収され、Java も Oracle の製品になりました。
Java は 3 つのシステムに分かれています。
2005 年 6 月に JavaOne カンファレンスが開催され、SUN は Java SE 6 をリリースしました。 この時点で、Java のさまざまなバージョンの名前が変更され、数字の「2」が削除されています。J2EE は Java EE、J2SE は Java SE、J2ME は Java ME にそれぞれ名前が変更されています。
Java 言語はシンプルです:
Java 言語の構文は C および C++ の構文に非常に似ているため、ほとんどのプログラマーが簡単に学習できます。そして使用します。 一方、Java では、演算子のオーバーロード、多重継承、自動キャストなど、C++ ではほとんど使用されず、理解しにくく、混乱を招く機能が廃止されています。 特に、Java 言語ではポインターではなく参照が使用されます。 また、メモリ空間の自動割り当てと回復が提供されるため、プログラマはメモリ管理について心配する必要がありません。
Java 言語はオブジェクト指向です:
Java 言語は、クラス、インターフェイス、継承などのオブジェクト指向機能を提供します。単一継承ですが、サポートされています。インターフェイス間の多重継承をサポートし、クラスとインターフェイス間の実装メカニズムをサポートします (キーワードはimplements)。 Java 言語は動的バインディングを完全にサポートしていますが、C++ 言語は仮想関数に対してのみ動的バインディングを使用します。 つまり、Java 言語は純粋なオブジェクト指向プログラミング言語です。
Java 言語は配布されています:
Java 言語はインターネット アプリケーションの開発をサポートしており、ネットワーク アプリケーション プログラミング インターフェイス (java net) があります。 URL、URLConnection、Socket、ServerSocket などのネットワーク アプリケーション プログラミング用のクラス ライブラリを提供します。 Java の RMI (Remote Method Activation) メカニズムも、分散アプリケーションを開発する重要な手段です。
Java の強力な型メカニズム、例外処理、自動ガベージ コレクションなどは、Java プログラムの堅牢性を保証する重要な要素です。 ポインタの破棄は Java の賢明な選択です。 Java のセキュリティ チェック メカニズムにより、Java はより堅牢になります。
Java 言語は安全です:
Java は通常、ネットワーク環境で使用されるため、Java は悪意のあるコードによる攻撃を防ぐセキュリティ メカニズムを提供します。 Java 言語の多くのセキュリティ機能に加えて、Java には、ネットワーク経由でダウンロードされたクラスに対するセキュリティ メカニズム (ClassLoader) が備わっています。たとえば、同じ名前を持つローカル クラスの置換を防ぐための異なる名前空間の割り当て、バイト コード検査、セキュリティ管理の提供などです。 Java アプリケーションがセキュリティ監視をセットアップするためのメカニズム (クラス SecurityManager)。
Java 言語はアーキテクチャに中立です:
Java プログラム (接尾辞 java が付いたファイル) は、Java プラットフォームのコード形式でアーキテクチャに中立なバイトにコンパイルされます。 (クラスという接尾辞が付いたファイル) は、Java プラットフォームを実装する任意のシステム上で実行できます。 このアプローチは、異種ネットワーク環境とソフトウェア配布に適しています。
Java 言語は移植可能です:
この移植性は、アーキテクチャの中立性によってもたらされます。さらに、Java は基本的なデータ型の長さも厳密に規定しています。 Java システム自体も移植性が高く、Java コンパイラは Java で実装され、Java の動作環境は ANSI C で実装されています。
Java 言語は解釈されます:
前述したように、Java プログラムは Java プラットフォーム上でバイトコード形式にコンパイルされ、任意のシステムに実装できます。 Java プラットフォーム上で実行されます。 実行時に、Java プラットフォームの Java インタープリタがこれらのバイトコードを解釈して実行し、実行中に必要なクラスが接続フェーズでランタイム環境にロードされます。
Java は高性能です:
これらの解釈された高級スクリプト言語と比較すると、Java は確かに高性能です。 実際、JIT (Just-In-Time) コンパイラ技術の発展により、Java の実行速度は C++ に近づいています。
Java 言語はマルチスレッドです:
Java 言語では、スレッドは Thread クラスまたはその子孫によって作成される必要がある特別なオブジェクトです。 (孫) ) 作成するクラス。 通常、スレッドを作成するには 2 つの方法があります: 1 つ目は、Thread(Runnable) のコンストラクター サブクラスを使用して、Runnable インターフェイスを実装するオブジェクトをスレッドにラップする 2 つ目は、Thread クラスからサブクラスを派生し、オブジェクトの run メソッドを書き換えるこのサブクラスを使用して作成されたものがスレッドです。 Thread クラスは Runnable インターフェイスを実装しているため、どのスレッドにも run メソッドがあり、run メソッドにはスレッドによって実行されるコードが含まれていることは注目に値します。 スレッドのアクティビティは一連のメソッドによって制御されます。 Java 言語は、複数のスレッドの同時実行をサポートし、複数のスレッド間の同期メカニズム (キーワードは synchronized) を提供します。
Java 言語は動的です:
Java 言語の設計目標の 1 つは、動的に変化する環境に適応することです。 Java プログラムに必要なクラスは、ランタイム環境に動的にロードすることも、ネットワーク経由でロードすることもできます。 これはソフトウェアのアップグレードにも役立ちます。 さらに、Java のクラスには、実行時の型チェックを可能にする実行時表現があります。
Java 言語は、システム メモリが 1G 以上であることを確認しようとします。他のツールは次のとおりです。
上記のツールをインストールすると、最初の Java プログラム「Hello World!」を出力できます。
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
次の章では、Java 開発環境を構成する方法を紹介します。