数年ぶりに Java 開発に再び飛び込もうとしています。私が使用した言語リビジョンは 1.4.2 でした。それ以来、この言語には大きな変更が加えられていることは知っています。これらについて詳しく説明しているサイトまたは本を探しています。少なくとも、どのリビジョンでどの言語機能が追加されたかを示すリソースを探しているので、既によく知っているセクションを一目でスキップできます。助言がありますか ?
6 に答える
ウィキペディアのエントリは、見たいものに対して十分簡潔に見えます。
エキス:
J2SE 5.0(2004年9月30日)
コードネームタイガー。(元々は1.5の番号が付けられていましたが、現在も内部バージョン番号として使用されています。)JSR 176の下で開発されたタイガーは、いくつかの重要な新しい言語機能を追加しました。
- ジェネリックス:コレクションにコンパイル時(静的)型の安全性を提供し、ほとんどの型キャスト(型変換)の必要性を排除します。(JSR 14で指定)
- メタデータ:注釈とも呼ばれます。クラスやメソッドなどの言語構造に追加のデータをタグ付けして、メタデータ対応ユーティリティで処理できるようにします。(JSR 175で指定されています。)
- Autoboxing / unboxing:プリミティブ型(intなど)とプリミティブラッパークラス(Integerなど)の間の自動変換。(JSR 201で指定されています。)
- 列挙型:enumキーワードは、タイプセーフで順序付けられた値のリスト(Day.MONDAY、Day.TUESDAYなど)を作成します。以前は、これはタイプセーフではない定数整数または手動で作成されたクラス(タイプセーフな列挙型パターン)によってのみ実現できました。(JSR 201で指定されています。)
- スイング:シンセと呼ばれる新しいスキン可能なルックアンドフィール。
- Varargs:メソッドの最後のパラメーターは、タイプ名の後に3つのドットを付けて宣言できるようになりました(例:void drawtext(String ... lines))。呼び出し元のコードでは、そのタイプのパラメーターをいくつでも使用でき、それらを配列に配置してメソッドに渡すか、呼び出し元のコードでそのタイプの配列を渡すことができます。
- ループごとに拡張:forループ構文は、配列または標準のコレクションクラス(JSR 201で指定)などの任意のIterableの各メンバーを反復処理するための特別な構文で拡張されています。
- スレッドがメモリを介してどのように相互作用するかを定義する、以前に壊れていたJavaメモリモデルのセマンティクスを修正します。
- RMIオブジェクトの自動スタブ生成。
静的インポート
1.5.0_17(5u17)は、Microsoft Windows 9xライン(Windows 95、Windows 98、Windows ME)を公式にサポートするJavaの最後のリリースです。1非公式に、Java SE 6 Update 7(1.6.0.7)は、このオペレーティングシステムファミリで動作することが示されているJavaの最後のバージョンです。
- パッケージjava.util.concurrentの並行性ユーティリティ。
J2SE 5.0は、2008年4月8日にサポートが終了し、2009年10月30日をもってSunによるサポートが終了します。
Java SE 6(2006年12月11日)
コードネームマスタング。このバージョンの時点で、Sunは「J2SE」という名前をJava SEに置き換え、バージョン番号から「.0」を削除しました。開発者の内部番号は1.6.0のままです。このバージョンは、JSR270で開発されました。
開発フェーズでは、拡張機能やバグ修正を含む新しいビルドがほぼ毎週リリースされました。ベータ版は2006年2月と6月にリリースされ、最終リリースは2006年12月11日に行われました。現在のリビジョンは2009年2月にリリースされたアップデート12です。
このバージョンに含まれる主な変更:
- 古いWin9xバージョンのサポートは終了しました。非公式にJava6Update 7は、これらのバージョンのWindowsで動作することが示されているJavaの最後のリリースです。これは、Update10での大きな変更によるものと考えられます。
- スクリプト言語のサポート(JSR 223):スクリプト言語との緊密な統合のための汎用API、および組み込みのMozillaJavascriptRhino統合
- コアプラットフォーム[17][18]およびSwingの劇的なパフォーマンスの向上。
- JAX-WS(JSR 224)によるWebサービスサポートの改善
- JDBC 4.0のサポート(JSR221)。
- JavaコンパイラAPI(JSR 199):JavaプログラムがプログラムでJavaコンパイラを選択して呼び出すことを可能にするAPI。
- JAXBのバージョン2.0へのアップグレード:StAXパーサーの統合を含みます。
- プラグ可能な注釈のサポート(JSR269)。
- APIへのSwingWorkerの統合、テーブルの並べ替えとフィルタリング、真のSwingダブルバッファリング(グレーエリア効果の排除)など、多くのGUIの改善。
Java SE 6 Update 10
Java SE 6 Update 10(以前はJava SE 6 Update Nと呼ばれていました)は、パブリックAPIを変更しませんが、エンドユーザーの使いやすさの点で主要な機能強化を目的としています。リリースバージョンは現在ダウンロード可能です。
このアップデートの主な変更点は次のとおりです。
- Java Deployment Toolkitは、アプレットとJavaWebStartアプリケーションのデプロイメントを容易にするJavaScript関数のセットです。
- Javaカーネル、最も一般的に使用されるJREクラスのみを含む小さなインストーラー。他のパッケージは必要に応じてダウンロードされます。
- 強化されたアップデータ。
- 強化されたバージョン管理とpack200のサポート:サーバー側のサポートは不要になりました。
- Java Quick Starter、コールドスタート時間を改善します。
- Direct3Dとハードウェアアクセラレーションを使用した、WindowsでのJava2Dグラフィックスプリミティブのパフォーマンスの向上。
- シンセをベースにしたニンバスと呼ばれる新しいSwingのルックアンドフィール。[23]
- 次世代Javaプラグイン:アプレットは別のプロセスで実行され、WebStartアプリケーションの多くの機能をサポートするようになりました
私は約 1 年前にあなたと同じ船に乗っていて、Java 1.5 Tiger A Developer's Notebookが 1.4 と 1.5 の間の主要な変更点の短期集中コースとして非常に役立つことを発見しました。それはあなたをスピードアップさせます。その後、sun の Web サイトまたはその他のリソースを使用して、詳細を学習できます。
C ++に精通している場合、それはJava用の単なるテンプレートです。
Java 6 の主な機能のうち、これなしでは生きていけないと感じたものは、重要度の高い順に次のとおりです。
- Generics : 言語が型パラメーター (コレクション、コンテナー、ファクトリのメンバー オブジェクト型など) を認識できるようにする
- オートボクシング: プリミティブ型からオブジェクトへの自動変換、およびその逆
- 共変の戻り値の型のオーバーライド: ポリモーフィズムと同様に、より具体的な戻り値の型でメソッドをオーバーライドできます。