Javaプラットフォーム、スタンダードエディション

Java Platform, Standard Edition ( Java SE ) は、デスクトップ環境サーバー環境向けの移植可能なコードなど、 独立したJava サポートプラットフォーム上でアプリケーションを実行するためのコンピューティング プラットフォーム技術標準です。 [ 1 ] [ 2 ] Java SE は以前はJava 2 Platform, Standard Edition ( J2SE ) として知られていました。

このプラットフォームはJavaプログラミング言語を使用しており、 Java ソフトウェアプラットフォームファミリーの一部です。Java SE は、 Java クラスライブラリJava APIなど、さまざまな汎用APIを定義しており、 Java 言語仕様Java 仮想マシン仕様も含まれています。 [ 3 ] OpenJDK はバージョン 7 以降、公式のリファレンス実装となっています。[ 4 ] [ 5 ] [ 6 ]

名称、規格、仕様

このプラットフォームは、バージョン 1.2 からJava 2 Platform, Standard EditionまたはJ2SEとして知られていましたが、バージョン 1.5 でJava Platform, Standard EditionまたはJava SEに名称が変更されました。「SE」は、基本プラットフォームを Enterprise Edition ( Java EE ) および Micro Edition ( Java ME ) プラットフォームと区別するために使用されます。「2」は、当初バージョン 1.2 で導入された主要な変更を強調する意図でしたが、バージョン 1.6 で削除されました。命名規則は、Java のバージョン履歴を通じて何度か変更されています。J2SE 1.4 (Merlin) 以降、Java SE はJava Community Processの下で開発されており、Java プラットフォームの提案仕様と最終仕様の説明をJava Specification Requests (JSR)として作成しています。[ 7 ] JSR 59 は J2SE 1.4 の包括的な仕様であり、JSR 176 は J2SE 5.0 (Tiger) を規定しました。Java SE 6 (Mustang) は JSR 270 の下でリリースされました。

Java Platform, Enterprise Edition (Java EE) は、Java SE のすべてのクラスに加えて、ワークステーションではなくサーバー上で実行されるプログラムにとってより有用なクラスを多数含む関連仕様です。

Java Platform, Micro Edition (Java ME) は、携帯電話PDA、セットトップボックスなどの小型でリソースに制約のあるデバイス向けのソフトウェア開発のために、認定された Java API のコレクションを提供することを目的とした関連仕様です。

Java Runtime Environment (JRE)Java Development Kit (JDK)は、それぞれ Java プログラムを実行または開発するためにコンピュータにダウンロードしてインストールする実際のファイルです。

汎用パッケージ

これらのパッケージの大部分は、Javaプラットフォームモジュールシステム(Java 9以降)java.baseのモジュールによってエクスポートされます。

java.lang

Javaパッケージ には、言語およびランタイムjava.langシステムに密接に関連する基本的なクラスとインターフェースが含まれています。これには、クラス階層を形成するルートクラス、言語定義に関連付けられた型、基本的な例外処理、数学関数、スレッド処理、セキュリティ関数、および基盤となるネイティブシステムに関する情報が含まれます。このパッケージには、JDK 6 で提供される 32 個のクラスのうち 22 個が含まれています。java.lang.Error

主なクラスとインターフェースはjava.lang以下のとおりです。

  • Object– すべてのクラス階層のルートとなるクラス。
  • Enum–列挙クラスの基底クラス(J2SE 5.0以降)。
  • Class– Javaのリフレクティブプログラミング(リフレクション)システムの根幹となるクラス。
  • Throwable– 例外クラス階層の基底クラスとなるクラス。
  • Error、、ExceptionおよびRuntimeException– 各例外タイプの基本クラス。
  • Thread– スレッド上での操作を可能にするクラス。
  • String–文字列文字列リテラルのクラス。
  • StringBufferおよび、文字列操作StringBuilderを実行するためのクラス(J2SE 5.0以降)。StringBuilder
  • Comparable– オブジェクトの汎用的な比較と順序付けを可能にするインターフェース(J2SE 1.2以降)。
  • Iterable–拡張forループを使用した汎用的な反復処理を可能にするインターフェース(J2SE 5.0以降)。
  • ClassLoader、、、、および–クラスの動的ロード、外部プロセスの作成、時刻などのホスト環境の問い合わせ、セキュリティ ポリシーProcessの適用を管理する「システム操作」を提供するクラス。RuntimeSecurityManagerSystem
  • Mathそして、サインコサイン平方根StrictMathなどの基本的な数学関数を提供するクラス(J2SE 1.3 時点)。java.lang.StrictMath
  • プリミティブ型をオブジェクトとしてカプセル化するプリミティブラッパークラス
  • 言語レベルの例外やその他の一般的な例外に対してスローされる基本的な例外クラス。

内のクラスは、すべてのソースファイルjava.langに自動的にインポートされます。

java.lang.ref

このパッケージは、従来よりも柔軟な参照java.lang.ref型を提供し、アプリケーションとJava仮想マシン(JVM)のガベージコレクタ間の限定的な相互作用を可能にします。言語設計者が名前空間の下に配置するほど言語の中核をなす重要なパッケージですが、やや特殊な用途向けであり、多くの開発者が使用しているわけではありません。このパッケージはJ2SE 1.2で追加されました。java.lang

Javaは表現力豊かな参照システムを備えており、ガベージコレクションのための特別な動作も可能です。Javaにおける通常の参照は「強い参照」と呼ばれます。このパッケージでは、他に「弱い参照」 「弱いjava.lang.ref参照」「ファントム参照」という3種類の参照を定義しています。それぞれの参照は特定の用途向けに設計されています。

  • キャッシュのSoftReference実装に使用できます。強い参照では到達できない(つまり、強く到達できない)が、弱い参照で参照されるオブジェクトは「弱い参照可能」と呼ばれます。弱い参照可能なオブジェクトは、ガベージコレクタの裁量でガベージコレクションされる可能性があります。これは一般的に、弱い参照可能なオブジェクトは空きメモリが少ない場合にのみガベージコレクションされることを意味しますが、これもガベージコレクタの裁量によります。意味的には、弱い参照は「メモリが必要でない限り、他の何も参照していないこのオブジェクトを保持する」ことを意味します。
  • AWeakReferenceは弱マップを実装するために使用されます。強くも弱くも到達可能ではないが、弱参照によって参照されるオブジェクトは「弱く到達可能」と呼ばれます。弱く到達可能なオブジェクトは、次のガベージコレクションサイクルでガベージコレクションされます。この動作はクラスで使用されますjava.util.WeakHashMap。弱マップを使用すると、プログラマはキー/値のペアをマップに格納し、キーが他のどこからも到達できなくなったときにオブジェクトがメモリを占有することを心配する必要がなくなります。弱参照のもう 1 つの可能なアプリケーションは、文字列インターンプールです。意味的には、弱参照は「次のガベージコレクションで他の何も参照していないときにこのオブジェクトを破棄する」ことを意味します。
  • A はPhantomReference、ガベージコレクションの対象としてマークされ、ファイナライズ済みであるものの、まだ解放されていないオブジェクトを参照するために使用されます。強く、弱く、またはソフトに到達可能ではないが、ファントム参照によって参照されるオブジェクトは、「ファントム到達可能」と呼ばれます。これにより、ファイナライズ機構のみの場合よりも柔軟なクリーンアップが可能になります。意味的には、ファントム参照は「このオブジェクトはもはや必要なく、ガベージコレクションの準備としてファイナライズ済みである」ことを意味します。

これらの参照型はそれぞれ、参照対象オブジェクトへの強い参照を返すメソッド(または参照がクリアされた場合、あるいは参照型がファントムの場合)と、参照をクリアするReferenceメソッドを提供するクラスを拡張しています。get()nullclear()

また、このjava.lang.refクラスはReferenceQueue、上記で説明した各アプリケーションで使用して、参照タイプが変更されたオブジェクトを追跡するために使用できます。がjava.lang.ref.Reference<T>作成されると、オプションで参照キューに登録されます。アプリケーションは参照キューをポーリングして、到達可能性状態が変更された参照を取得します。

java.lang.reflect

リフレクティブプログラミング(リフレクション)は、 Java APIの構成要素であり、Java コードが実行時に Java コンポーネントを調べて「リフレクション」し、リフレクションされたメンバーを使用できるようにします。このjava.lang.reflectパッケージのクラスは、デバッガインタプリタ、オブジェクトインスペクタ、クラスブラウザー、オブジェクトシリアライゼーションJavaBeansなどのサービスといったアプリケーションに対応しておりjava.lang.Class<T>、対象オブジェクトのパブリックメンバー(実行時クラスに基づく)または特定のクラスで宣言されたメンバーへのアクセスを必要とします。このパッケージは JDK 1.1 で追加されました。java.lang.Package

リフレクションは、クラスをインスタンス化したり、メソッドを名前で呼び出したりするために使用され、動的プログラミングを可能にする概念です。クラス、インターフェース、メソッド、フィールドコンストラクタはすべて実行時に検出して使用できます。リフレクションは、JVMがプログラムに関して保持しているメタデータによってサポートされています。

テクニック

内省には基本的な手法がいくつかあります。

  • 発見とは、オブジェクトまたはクラスを取得し、そのメンバー、スーパークラス、実装されているインターフェースを発見し、その後、発見した要素を使用する可能性のあるプロセスです。
  • 名前による使用とは、要素のシンボル名から始めて、その名前付き要素を使用することを指します。
発見

発見は通常、オブジェクトから始まり、Object.getClass()メソッドを呼び出してオブジェクトの情報を取得しますjava.lang.Class<?>java.lang.Class<T>オブジェクトには、クラスの内容を検出するためのメソッドがいくつかあります。たとえば、次のとおりです。

  • getMethods()Method–クラスまたはインターフェースのすべてのパブリックメソッドを表すオブジェクトの配列を返します
  • getConstructors()Constructor–クラスのすべてのパブリックコンストラクタを表すオブジェクトの配列を返します
  • getFields()Field–クラスまたはインターフェースのすべてのパブリックフィールドを表すオブジェクトの配列を返します
  • getClasses()–クラスまたはインターフェースのメンバー(内部クラスjava.lang.Class<?>[]など)であるすべてのパブリッククラスおよびインターフェースを表すオブジェクトを返します。
  • getSuperclass()java.lang.Class<? super T>クラスまたはインターフェースのスーパークラスを表すオブジェクトを返します(nullインターフェースの場合は が返されます)。
  • getInterfaces()java.lang.Class<?>[]クラスまたはインターフェースによって実装されるすべてのインターフェースを表す配列を返します。
名前で使用

オブジェクトは、クラスリテラル(例:クラスの場合)java.lang.Class<T>を使用するか、クラス名(例:)を使用するかのいずれかの方法で取得できます。オブジェクトの場合、メンバー、、またはオブジェクトは、メンバーのシンボル名を使用して取得できます。例:X.classXClass.forName("mypackage.MyClass")java.lang.Class<T>java.lang.reflect.Methodjava.lang.reflect.Constructor<T>java.lang.reflect.Field

  • getMethod(String name, Class<?>... parameterTypes)–パラメータで指定されたパラメータを受け入れるクラスまたはインターフェースのjava.lang.reflect.Method名前を持つパブリックメソッドを表すオブジェクトを返します。namejava.lang.Class<?>...
  • getConstructor(Class<?>... parameterTypes)–パラメータjava.lang.reflect.Constructor<T>で指定されたパラメータを受け入れるクラスのパブリックコンストラクタを表すオブジェクトを返しますjava.lang.Class<?>...
  • getField(String name)–クラスjava.lang.reflect.Field名またはインターフェース名を持つパブリックフィールドを表すオブジェクトを返します。name

java.lang.reflect.Method、、java.lang.reflect.Constructor<T>およびjava.lang.reflect.Fieldオブジェクトを使用すると、クラスの表現対象メンバーに動的にアクセスできます。例:

  • Field.get(Object obj)java.lang.Objectに渡されたオブジェクトのインスタンスからフィールドの値を含むを返しますget()。(java.lang.reflect.Fieldオブジェクトが静的フィールドを表す場合、java.lang.Objectパラメーターは無視され、になる可能性がありますnull。)
  • Method.invoke(Object obj, Object... args)–に渡されたjava.lang.Object最初のjava.lang.Objectパラメータのインスタンスに対してメソッドを呼び出した結果を含むオブジェクトを返しますinvoke()。残りのjava.lang.Object...パラメータはメソッドに渡されます。(オブジェクトが静的メソッドjava.lang.reflect.Methodを表す場合、最初のパラメータは無視され、となる場合があります。)java.lang.Objectnull
  • Constructor.newInstance(Object... initargs)java.lang.Object–コンストラクタの呼び出しによって新しいインスタンスを返します。java.lang.Object...パラメータはコンストラクタに渡されます。(クラスのパラメータなしコンストラクタも呼び出すことができますnewInstance()。)
配列とプロキシ

このjava.lang.reflectパッケージには、Array配列オブジェクトの作成と操作のための静的メソッドを含むクラスも含まれており、J2SE 1.3以降では、Proxy指定されたインターフェースを実装するプロキシクラスの動的な作成をサポートするクラスも提供されています。

クラスの実装は、インターフェースjava.lang.reflect.Proxyを実装する提供オブジェクトによって提供されますInvocationHandler。プロキシオブジェクトで呼び出される各メソッドに対して、 のメソッドが呼び出されます。最初のパラメータはプロキシオブジェクト、2番目のパラメータはjava.lang.reflect.InvocationHandlerプロキシによって実装されるインターフェースのメソッドを表すオブジェクト、3番目のパラメータはインターフェースメソッドに渡されるパラメータの配列です。このメソッドは、プロキシインターフェースメソッドを呼び出したコードに返された結果を含む結果を返します。invoke(Object proxy, Method method, Object[] args)java.lang.reflect.Methodinvoke()java.lang.Object

java.io

このパッケージには、入力と出力をjava.ioサポートするクラスが含まれています。パッケージ内のクラスは主にストリーム指向ですが、ランダムアクセスファイル用のクラスも提供されています。パッケージの中心となるクラスはと で、それぞれバイトストリームからの読み取りとバイトストリームへの書き込みのための抽象基底クラスです。関連するクラスと は、それぞれ文字ストリームからの読み取りと文字ストリームへの書き込みのための抽象基底クラスです。このパッケージには、ホストファイルシステムとのやり取りをサポートするためのその他のクラスもいくつか含まれています。InputStreamOutputStreamReaderWriter

ストリーム

ストリームクラスは、基本サブクラスを拡張してストリームクラスに機能を追加することで、デコレータパターンに従います。基本ストリームクラスのサブクラスは、通常、次のいずれかの属性に基づいて命名されます。

  • ストリームデータの送信元/送信先
  • ストリームに書き込まれる/ストリームから読み取られるデータの種類
  • ストリームデータに対して実行される追加の処理またはフィルタリング

ストリームのサブクラスは、 という命名パターンXxxStreamTypeを使用して命名されます。ここでXxx、 は機能を説明する名前であり、は、 、、 のStreamTypeいずれかです。java.io.InputStreamjava.io.OutputStreamjava.io.Readerjava.io.Writer

以下の表は、このjava.ioパッケージが直接サポートする送信元/送信先を示しています。

他の標準ライブラリパッケージは、メソッドjava.io.InputStreamによって返されるストリームjava.net.Socket.getInputStream()やJava EEjavax.servlet.ServletOutputStreamクラスなど、他の宛先に対するストリームの実装を提供します。

ストリームデータのデータ型処理やフィルタリングは、ストリームフィルタによって行われます。フィルタクラスはすべて、コンストラクタのパラメータとして互換性のある別のストリームオブジェクトを受け取り、囲まれたストリームに追加機能を追加します。フィルタは、基本フィルタクラスFilterInputStream、、、、のいずれかを拡張して作成されます。FilterOutputStreamFilterReaderFilterWriter

とクラスはjava.io.Readerjava.io.Writer実際にはバイトストリームであり、データストリームに対して追加の処理を実行してバイトを文字に変換します。これらはプラットフォームのデフォルトの文字エンコーディングCharsetを使用します。J2SE 5.0 以降では、これは静的メソッドによって返されるで表されますjava.nio.charset.Charset.defaultCharset()。クラスはをにInputStreamReader変換し、クラスはをに変換します。これらのクラスには、使用する文字エンコーディングを指定するコンストラクタがあります。エンコーディングが指定されていない場合、プログラムはプラットフォームのデフォルトのエンコーディングを使用します。InputStreamjava.io.ReaderOutputStreamWriterjava.io.OutputStreamjava.io.Writer

以下の表は、このパッケージが直接サポートするその他のプロセスとフィルターを示していますjava.io。これらのクラスはすべて、対応するjava.io.FilterInputStreamクラスを継承しています。

ランダムアクセス

このRandomAccessFileクラスは、ファイルのランダムアクセス読み書きをサポートします。このクラスは、次の読み書き操作のためのファイル内のバイトオフセットを表すファイルポインタseek(long)を使用します。ファイルポインタは、読み書きによって暗黙的に移動され、またはメソッドを呼び出すことによって明示的に移動されますskipBytes(int)。ファイルポインタの現在の位置は、メソッドによって返されますgetFilePointer()

ファイルシステム

このFileクラスは、ファイルシステム内のファイルまたはディレクトリのパスを表します。オブジェクトは、ファイルやディレクトリの作成、削除、名前変更、および読み取り専用最終更新日時などのファイル属性の操作をサポートします。ディレクトリを表すオブジェクトを使用すると、ディレクトリに含まれるすべてのファイルとディレクトリのリストを取得できます。java.io.Filejava.io.File

このFileDescriptorクラスは、バイトの送信元または送信先(宛先)を表すファイルディスクリプタです。通常はファイルですが、コンソールネットワークソケットの場合もあります。 java.io.FileDescriptorオブジェクトはストリームを作成するために使用されます。これらは、ストリーム、ソケット、およびデータグラムソケットjava.io.Fileから取得されます。java.io.Filejava.net

java.nio

J2SE 1.4 では、メモリマップド I/O をサポートするためにパッケージjava.nio(NIO またはノンブロッキング I/O) が追加され、基盤となるハードウェアに近い場所でI/O操作を実行できるようになり、場合によってはパフォーマンスが劇的に向上します。このパッケージは、さまざまなバッファタイプをサポートします。サブパッケージは、文字データ用のさまざまな文字エンコーディングをサポートします。サブパッケージは、ファイルやソケットなど、I/O 操作を実行できるエンティティへの接続を表すチャネルをサポートします。このパッケージは、ファイルのきめ細かいロックもサポートします。java.niojava.nio.charsetjava.nio.channelsjava.nio.channels

java.math

このjava.mathパッケージは、多倍長演算(モジュラ演算を含む)をサポートし、暗号鍵生成に使用される多倍長素数生成器を提供します。このパッケージの主なクラスは以下のとおりです。

  • BigDecimal– 任意精度符号付き十進数を提供します。java.math.BigDecimalは、丸め動作をユーザーに制御させますjava.math.RoundingMode
  • BigInteger任意精度整数を提供します。演算ではオーバーフローjava.math.BigIntegerや精度低下は発生しません。標準的な算術演算に加え、剰余演算最大公約数計算、素数判定素数生成、ビット操作、その他の各種演算を提供します。
  • MathContext 数値演算子に関する特定のルールを記述するコンテキスト設定をカプセル化する。
  • RoundingMode– 8つの丸め動作を提供する列挙型。

java.net

このjava.netパッケージは、ネットワーク向けの特別な入出力ルーチンを提供し、HTTPリクエストやその他の一般的なトランザクションを可能にします。

java.text

このjava.textパッケージは文字列の解析ルーチンを実装しており、様々な人間が読める言語と地域固有の解析をサポートしています。

java.util

このパッケージは、オブジェクトを集約するデータ構造に焦点を当てていますjava.util。パッケージには、デザインパターンの考慮事項に大きく影響を受けた、整理されたデータ構造階層であるCollections APIが含まれています。

特別目的パッケージ

java.applet

Javaアプレットの作成をサポートするために作成されたこのjava.appletパッケージを使用すると、アプリケーションをネットワーク経由でダウンロードし、保護されたサンドボックス内で実行できます。サンドボックスには簡単にセキュリティ制限を適用できます。たとえば、開発者はアプレットにデジタル署名を適用して、安全なものとしてラベル付けできます。これにより、ユーザーはアプレットに制限された操作(ローカルハードドライブへのアクセスなど)を実行する権限を付与でき、サンドボックスの制限の一部またはすべてを解除できます。デジタル証明書は認証局によって発行されます。

Javaアプレットは現在非推奨となっているため、このパッケージ自体も非推奨となります。

java.beans

このパッケージには、 JavaBeansアーキテクチャjava.beansで定義された再利用可能なコンポーネントであるBeanの開発と操作のための様々なクラスが含まれています。このアーキテクチャは、コンポーネントのプロパティを操作し、それらのプロパティが変更されたときにイベントを発生させるメカニズムを提供します。

これらのAPIはjava.beans、ビーンを組み合わせたり、カスタマイズしたり、操作したりできるビーン編集ツールで使用することを想定しています。ビーンエディタの一種として、統合開発環境におけるGUIデザイナーが挙げられます。

java.awt

、またはAbstract Window Toolkit は、基盤となるネイティブ プラットフォームのウィジェット セットに基づいたjava.awt基本的なGUIウィジェット セット、GUI イベント サブシステムのコア、およびネイティブ ウィンドウ システムと Java アプリケーション間のインターフェイスへのアクセスを提供します。また、いくつかの基本的なレイアウト マネージャ、クリップ ボードドラッグ アンド ドロップで使用するためのデータ転送パッケージ、マウスキーボードなどの入力デバイスへのインターフェイス、およびサポート システムでのシステム トレイへのアクセスも提供します。このパッケージは、とともに、JDK 6 で最も多くの列挙型 (合計 7 つ) を含んでいます。javax.swing

java.rmi

このjava.rmiパッケージは、異なるJVMで実行されている2つのJavaアプリケーション間でのリモートプロシージャ呼び出しをサポートするJavaリモートメソッド呼び出し機能を提供します。

java.security

メッセージダイジェストアルゴリズムを含むセキュリティサポートは、java.securityパッケージに含まれています。

java.sql

このパッケージには、 JDBC API(SQLデータベースにアクセスするために使用される)の実装が含まれていますjava.sql

javax.rmi

このjavax.rmiパッケージは、RMI over IIOPプロトコルを使用して、アプリケーション間のリモート通信をサポートします。このプロトコルは、RMIとCORBAの機能を組み合わせたものです。

Java SEコアテクノロジー - CORBA / RMI-IIOP

javax.swing

Swing はjava.awt、プラットフォームに依存しないウィジェット ツールキットを提供するように構築されたルーチンの集合です。基盤となるネイティブオペレーティングシステムのjavax.swingGUI サポートに依存するのではなく、2D 描画ルーチンを使用してユーザー インターフェイス コンポーネントをレンダリングします。

このパッケージには、JDK 6 で最多のクラス数 (合計 133 個) が含まれています。また、このパッケージには、java.awtJDK 6 で最多の列挙型数 (合計 7 個) も含まれています。プラグイン可能なルックアンドフィール (PLAF) をサポートしているため、GUI のウィジェットは基盤となるネイティブ システムのウィジェットを模倣できます。デザイン パターンがシステム全体に浸透しており、特にモデル ビュー コントローラパターンの修正版が採用されているため、機能と外観の結合が緩やかになっています。 1 つの不整合として、(J2SE 1.3 の時点で) フォントは Java ではなく基盤となるネイティブ システムによって描画されるため、テキストの移植性が制限されます。ビットマップ フォントの使用などの回避策は存在します。一般的に、「レイアウト」が使用され、プラットフォーム間で美的に一貫した GUI 内の要素が維持されます。

javax.swing.text.html.parser

このjavax.swing.text.html.parserパッケージは、様々なウェブブラウザやウェブボットを作成する際に使用される、エラー耐性のあるHTMLパーサーを提供します。

javax.xml.bind.annotation

このjavax.xml.bind.annotationパッケージには、JDK 6の中で最も多くの注釈タイプ(合計30種類)が含まれていました。Javaプログラム要素をXMLスキーママッピングにカスタマイズするための注釈を定義しています。

org.w3c

Javaには、名前空間の下にWorld Wide Web Consortiumユーティリティ(主にXML)のパッケージが含まれていますorg.w3c。これらの多くはjava.xmlモジュールに存在します。

org.w3c.dom

これらのパッケージは、ドキュメントオブジェクトモデルorg.w3c.dom(DOM)のインターフェースを提供します。

org.xml.sax

これらのパッケージは、Simple API for XML (SAX)org.xml.saxのインターフェースを提供します。

org.omg

org.omg.CORBA

このパッケージは、汎用インターORBプロトコルorg.omg.CORBAを使用したアプリケーション間のリモート通信をサポートし、共通オブジェクトリクエストブローカーアーキテクチャのその他の機能もサポートします。RMIおよびRMI -IIOPと同様に、このパッケージは他の仮想マシン上のオブジェクトのリモートメソッドを呼び出すためのものです(通常はネットワーク経由)。

このパッケージには、JDK 6 の中で最も多くのjava.lang.Exceptionクラス(合計 45 個)が含まれていました。CORBA は、あらゆる通信手段の中でも様々な言語間で移植可能ですが、その分複雑さも増します。

これらのパッケージはJava 9で非推奨となり、Java 11から削除されました。[ 8 ]

org.omg.PortableInterceptor

このorg.omg.PortableInterceptorパッケージには、JDK 6の中で最も多くのインターフェース(合計39個)が含まれていました。ORBサービスがORBの通常の実行フローをインターセプトするためのORBフックを登録するメカニズムを提供します。

安全

いくつかの重大なセキュリティ脆弱性が報告されています。[ 9 ] [ 10 ] Oracle からのセキュリティ アラートでは、Java SE の重要なセキュリティ関連のパッチが発表されています。[ 11 ]

参考文献

  1. 「Java SE の概要」。Oracle Corporation。20172 月 26 日取得
  2. "「Java®プラットフォーム、スタンダードエディションおよびJava開発キットバージョン25 API仕様」「。
  3. 「Java SE 6 リリース内容」。Oracle Corporationおよび/またはその関連会社。20131 月 1 日取得
  4. Java SE 7の公式リファレンス実装としてOpenJDKに移行
  5. Javaプラットフォーム、Standard Edition 7 リファレンス実装
  6. 「Java Platform, Standard Edition 8 Reference Implementations」。 2015年11月21日にオリジナルからアーカイブされました。
  7. 「Java仕様要求の概要」。Oracle Corporationおよび/またはその関連会社。 2013年1月1日取得
  8. "JEP 320: Java EE および CORBA モジュールの削除" . Openjdk.java.net. 2019-05-23 . 2022-03-20に取得.
  9. 最新のJavaバージョンに危険な脆弱性あり The H Security、2013年1月10日
  10. Darlene Storm (2012年9月25日) 「Javaの重大な脆弱性により10億人のユーザーが危険にさらされる」 Computerworld Security Blog 。 2013年1月13日のオリジナルからアーカイブ。 2013年1月11日取得
  11. 「重要なパッチ更新、セキュリティ警告、およびサードパーティの速報」。Oracle。
  • Oracle Technology NetworkのJava SE
  • Java SE 24 API Javadocs
  • Java SE APIドキュメント
  • JSR 270 (Java SE 6)
  • 1.8
  • 1.7
  • 1.6