Java:1995年5月にSun Microsystemsによって開始されたJavaプログラミング言語とJavaプラットフォームの一般用語。Javaは、クロスプラットフォームアプリケーションソフトウェアを作成できるオブジェクト指向プログラミング言語です。 1990年代初頭に、当時Sun Microsystemsで働いていたJames Goslingによって開発されました。もともとオークと名付けられました。インターネットの急速な発展に伴い、Javaは徐々に重要なネットワークプログラミング言語になりました。
Javaの最初のバージョンが生まれてから19年が経ちました。時間が経ち、それは一瞬で通過します。瞬く間に19年が経ちました。下の図に示すタイムラインでは、JDKがバージョン1.8に開発されたことがわかります。この19年間で、無数のJava関連製品、技術、標準が誕生しました。次に、タイムトンネルに入り、Java言語が育まれた時代から始めて、Javaの開発軌跡と歴史的変化を確認しましょう。
1991年4月、ジェームズゴスリング博士が率いるグリーンプロジェクトは、セットトップボックス、冷蔵庫、ラジオなどのさまざまな家電製品で実行できるプログラムアーキテクチャの開発を目指して発売されました。このプロジェクトの製品は、Java言語の前身です:オーク(オーク)。オークは当時の消費財市場では成功していませんでしたが、1995年のインターネットトレンドの増加に伴い、オークはその開発に合った市場の位置をすぐに見つけ、Java言語に変身しました。
1995年5月23日、オーク言語はJavaと改名され、Java 1.0バージョンはSunWorld Conferenceで正式にリリースされました。 Java Languageは、最初にスローガンを「一度書き、どこでも実行してください」を提案しました。
1996年1月23日、JDK 1.0がリリースされ、Java言語はランニング環境の最初の公式バージョンを持っていました。 JDK 1.0は、純粋に解釈された実行Java仮想マシンの実装(SUN Classic VM)を提供します。 JDKバージョン1.0の代表的なテクノロジーには、Java仮想マシン、AWTなどが含まれます。
1996年4月、最も重要なオペレーティングシステムのサプライヤーの10人が、製品にJavaテクノロジーを埋め込むと発表しました。同じ年の9月に、Javaテクノロジーを使用して約83,000のWebページが作成されました。 1996年5月末に、サンは米国サンフランシスコで最初のJavaone会議を開催しました。それ以来、Javaoneは世界中の何百万人ものJava言語開発者にとって毎年恒例の技術イベントになりました。
1997年2月19日、SunはJDK 1.1をリリースしました。 Javaテクノロジーの最も基本的なサポートポイント(JDBCなど)のいくつかは、JDK 1.1バージョンでリリースされました。 JDK 1.1バージョンの技術代表者には、JARファイル形式、JDBC、Javabeans、およびRMIが含まれます。 Java Syntaxは、現時点で表示される内部クラスや反射など、ある程度まで開発されています。
1999年4月8日まで、JDK 1.1は合計9つのバージョンをリリースしました:1.1.0〜1.1.8。 1.1.4以降、各JDKバージョンには独自の名前(プロジェクトコード)、すなわちJDK 1.1.4-スパークラー(GEM)、JDK 1.1.5-カボチャ(カボチャ)、JDK 1.1.6-アビゲイル(アビゲイル、女性名)、JDK 1.1.7-ブルトゥス、ブルトゥス、ロマン政治都市、将軍)。
1998年12月4日、JDKはJDK 1.2のマイルストーンバージョンを迎え、プロジェクトコード名のプレイグラウンドを獲得しました。このバージョンでは、SunはJavaテクノロジーシステムを3つの方向、つまりJ2SE(Java 2 Platform、Standard Edition)、J2EE(Java 2 Platform、Enterprise Edition)、Enterprise-Revel Developmentのための3つの方向に分割し、携帯電話などのモバイルターミナル用のJ2ME(Java 2プラットフォーム、Micro Edition)に分割します。このバージョンには、EJB、Javaプラグイン、Java IDL、スイングなど、多くの代表的なテクノロジーがあります。このバージョンでは、Java Virtual MachineにはJIT(ちょっとした)コンパイラが初めて組み込まれています(JDK 1.2、Classic VM、Hotspot VM、vmの正確なVMの中で、vmの正確なVMの中で、VM、およびhotspot vm、および正確なVMの中でvmに登録されています。組み込みのJITコンパイラと、以前のバージョンに持ち込まれたクラシックVMは、プラグインの形でJITコンパイラのみを使用できます)。言語とAPIレベルでは、JavaはStrictFPキーワードと、Javaエンコーディングで非常に一般的に使用される一連のコレクションコレクションクラスを追加します。
1999年3月と7月に、JDK 1.2.1とJDK 1.2.2の2つの小さなバージョンがそれぞれリリースされました。
1999年4月27日、Hotspot Virtual Machineがリリースされました。 Hotspotはもともと「Longview Technologies」と呼ばれる小さな会社によって開発されました。 Hotspotの優れたパフォーマンスにより、同社は1997年にSunに買収されました。HotspotVirtual MachineはJDK 1.2への追加プログラムとしてリリースされ、後にJDK 1.3およびSun JDKのすべてのバージョンのデフォルトの仮想マシンになりました。
2000年5月8日、プロジェクトコードがKestrelであるJDK 1.3がリリースされました。 JDK 1.2と比較したJDK 1.3の改善は、主に一部のクラスライブラリ(数学操作や新しいタイマーAPIなど)に反映されています。 JNDIサービスは、JDK 1.3(JNDIは以前の拡張機能であった)以来、プラットフォームレベルのサービスとして提供されており、CORBA IIOPを使用してRMI通信プロトコルなどを実装しています。 JDK 1.3には、JDK 1.3.1の改訂版があり、プロジェクトコード名Lathbirdとともに、2001年5月17日にリリースされました。
JDK 1.3以来、Sunは動物にちなんで名付けられた約2年ごとにJDKのメジャーバージョンをリリースする習慣を維持しており、その期間中にリリースされたさまざまな改訂は昆虫によって命名されています。
2002年2月13日に、JDK 1.4がリリースされ、プロジェクトコード名Merlin(Gray Back Falcon)がありました。 JDK 1.4は、本当に成熟したJavaのバージョンです。 Compaq、Fujitsu、SAS、Symbian、IBMなどの有名な企業は参加し、独自の独立したJDK 1.4を実現しました。さらに10年以上後、JDK 1.4で直接実行できる、またはJDK 1.4で実行できるバージョンをリリースし続けることができる多くの主流アプリケーション(春、冬眠、ストラットなど)がまだあります。 JDK 1.4は、正規表現、例外チェーン、NIO、ログクラス、パーサー、XSLTコンバーターなど、多くの新しい技術的機能もリリースしました。
JDK 1.4には、次の2つの改訂があります。
2002年9月16日にリリースされたJDK 1.4.1、プロジェクトコードネームグラスホッパー
プロジェクトは、2003年6月26日にリリースされたMantis JDK 1.4.2のコードネームです。
2002年頃、Javaとの直接的な関係がなかったが、実際にはJavaの開発に大きな影響を与えた事件は、Microsoftの.NET作業によってリリースされました。このテクノロジープラットフォームは、技術実装とターゲットユーザーの両方でJavaに非常に似ており、Javaと多くの議論、比較、競争をもたらしました。 .NETプラットフォームとJavaプラットフォームの間の大きな議論はこれまで続いています。
2004年9月30日、JDK 1.5がリリースされ、プロジェクトコード名Tigerがありました。 JDK 1.2以来、構文レベルでのJavaの変換は非常に小さく、JDK 1.5はJava構文の使いやすさを大幅に改善しました。たとえば、自動ボクシング、ジェネリック、動的注釈、列挙、可変長さパラメーター、トラバーサルループ(フォーチーループ)などの構文機能がすべてJDK 1.5に追加されています。仮想マシンとAPIレベルでは、このバージョンはJavaのメモリモデル(JMM)を改善し、java.util.concurrent scurrencyパッケージなどを提供します。さらに、JDK 1.5は、Windows 9Xプラットフォームをサポートできると公式に宣言する最後のJDKバージョンです。
2006年12月11日、JDK 1.6がリリースされ、プロジェクトコード名マスタング(マスタング)がリリースされました。このバージョンでは、SunはJDK 1.2から8年間存在しているJ2EE、J2SE、およびJ2MEの命名方法を終了し、Java SE 6、Java EE 6、およびJava ME 6の命名方法を有効にしました。 APIなどと同時に、このバージョンは、ロックと同期、ガベージコレクション、クラスロード、その他のアルゴリズムなど、Java仮想マシンに多くの改善をもたらしました。
2006年11月13日のJavaone Conferenceで、Sunは最終的にオープンソースのJavaを発表し、翌年にはGPL V2(GNU General Public License V2)プロトコルの下でJDKのさまざまな部分が連続して開示され、これらのソースコードを独立して管理するOpenJDK組織を確立しました。 OpenJDKには、非常に少量の財産権コード(ほとんどがSun自体がオープンソース処理の許可がない)に加えて、Sun JDKのほぼすべてのコードが含まれています。 OpenJDKの品質マネージャーは、かつてJDK 1.7では、Sun JDKとOpenJDKのコードがコードファイルヘッダーの著作権注釈を除いて基本的に同じであるため、OpenJDK 7とSun JDK 1.7は、基本的に同じコードベースのセットによって開発された製品です。
JDK 1.6のリリース後、コードの複雑さ、JDKのオープンソースの増加、Javafxの開発、経済危機、Sunの買収により、SunはJDK開発以外のものに多くのリソースを費やし、JDKの更新はさらに2年間の主要バージョンをリリースする開発速度を維持しませんでした。 JDK 1.6は、これまでに合計37のアップデートバージョンをリリースしました。最新バージョンは、2012年10月16日にリリースされたJava SE 6アップデート37です。
2009年2月19日、JDK 1.7、コード名のドルフィンは、最初のマイルストーンバージョンを完成させました。 JDK 1.7の機能的計画によると、合計10のマイルストーンが設定されています。最後のマイルストーンバージョンは元々2010年9月9日に終了する予定でしたが、JDK 1.7は、さまざまな理由で計画どおりに完了することができませんでした。
JDK 1.7の最初の機能計画から判断すると、多くの重要な改善を含むJDKバージョンでなければなりません。ラムダプロジェクト(ラムダ式、機能プログラミング)、ジグソープロジェクト(仮想マシンのモジュラーサポート)、動的言語サポート、ガーベージファーストコレクター、コインプロジェクト(言語詳細進化)などのサブプロジェクトは、ハバ産業に大きな影響を与えます。 JDK 1.7の開発中、Sun Companyは技術と商業の両方の競争で泥沼に陥り、その株式市場価値はピーク期間のわずか3%に低下し、通常どおりJDK 1.7の開発を促進することができなくなりました。 JDK 1.7の長期的な「停止」をできるだけ早く終了するために、OracleはSunを獲得した直後に発表し、「プランB」を実装し、JDK 1.7の所定のターゲットを大幅に削減し、JDK 1.7の公式バージョンを2011年7月28日に時間通りにリリースできるようにすることができます。最後に、JDK 1.7の主な改善には、新しいG1コレクターの提供が含まれます(G1はリリースされたときもまだ実験状態にあり、2012年4月に更新4まで「改革」されていませんでした)。
これまでに、JDK 1.7は9アップデートバージョンをリリースし、最新のJava SE 7アップデート9が2012年10月16日にリリースされました。JavaSE7 Update 4からリリースされました。OracleはMac OS Xオペレーティングシステムのサポートを開始し、Update 6でフルサポートに到達しました。プラットフォーム、およびサポートアーム、x86、x64、およびSPARC命令セットアーキテクチャタイプ。
2009年4月20日に、OracleはSunを74億米ドルで正式に取得したことを発表し、Java商標はOracleが正式に所有していました(Java Language自体はどの会社にも属していません。 Oracleは以前に別の大規模なミドルウェア会社であるBeaを買収して以来、Sunの買収を完了した後、OracleはBea and Sun、Jrockit、Hotspotから現在の3つの主要な商業用仮想マシンのうち2つを取得しました。 Oracleは、今後1〜2年で、お互いの長所と短所から学び、最終的にそれらを1つに統合することを発表しました。近い将来、Java Virtual Machineテクノロジーがかなりの変更を受けることが予見される可能性があります。
2011年7月28日、OracleはJava SE 1.7をリリースしました
2014年3月18日、OracleはJava SE 1.8をリリースしました
Java言語には、シンプルさ、オブジェクト指向、分散、解釈の実行、堅牢、セキュア、アーキテクチャニュートラル、ポータブル、高性能、マルチスレッド、ダイナミックの機能があります。