グーグル対オラクルの訴訟について読んで、私はこれらの質問に出くわしました(どうやら裁判長から)
...
少なくとも1996年の時点で、以下が真実であることに同意しますか?以下はコアJavaアプリケーションプログラミングインターフェース:Java.lang、Java.util、Java.ioです。
Javaプログラミング言語は、上記の3つ以外のメソッド、クラス、またはパッケージを参照または要求しますか?
...
ソース: Groklaw
明らかに多くの法的問題があり、GoogleとOracleはおそらくいくつかの点で反対します。私は気にしません。法律は弁護士に任せなさい。
しかし、ここには興味深い歴史があると思います。
私の質問は(最初に何かをした人Java 2001年にバージョン1.3でコーディングした)として、バージョン1.0のJavaはJava.lang
、Java.util
以外で必要なものでした、およびJava.io
を使用して、有効なJavaプログラムをコンパイルしますか?
例として(C#5.0を使用)、 await
キーワードは Task<T>
GetAwaiter()
(とりわけ)。コンパイラーは、そのクラスなしでは仕様どおりに機能できませんでした。
同様に、他のパッケージに依存するコアランタイム機能( ClassLoader *など)はありましたか?
私は好奇心から求めていることを認めますが、最低限実行可能なJava(その周りのすべての合法的なビットを無視する言語))に必要なものは興味深いものです。
* ClassLoaderは、Java 1.0の機能でさえあります (7.0の仕様) の一部であり、おそらく以前の多くのバージョンです。
Wikipediaごと 、Javaの最初の正式にリリースされたバージョンは、1996年1月23日に1.0.2でした。
最初の安定バージョンはJDK 1.0.2でした。 Java 1と呼ばれます
Java 1.0.2とすべての関連ドキュメントのアーカイブがあります here :
- JDK 1.0.2 APIリファレンス(ブック形式)
- JDK 1.0.2 APIリファレンス(javadoc形式)
- Javaチュートリアル
- Java言語仕様(リンク切れ、 ここに戻る )
- Java仮想マシンの仕様
ここにJDK 1.0.2ビットのダウンロードがあるが表示されます
http://www.Pascal-man.com/download/download-jdk.shtml
それは執筆の時に私のために働きます。
未処理のJava 1.0.2
言語仕様では、次のクラスが参照されています(完全引用ではなく、単一引用)。
[I
など(セクション 10.8 )...technically、[I
などのため、その時点で私は見なくなりました。 al。 Java.lang
、Java.util
、またはJava.io
パッケージに含まれていません。
例:
class Test {
// Compare namespaces of built-ins object and int[]
public static void main(String[] args){
int[] arr = new int[0];
Object obj = new Object();
Class arrClass = arr.getClass();
Class objClass = obj.getClass();
Class arrSuper = arrClass.getSuperclass();
System.out.println("plain jane Object - " + objClass.getName());
System.out.println();
System.out.println("int[] - "+arrClass.getName());
System.out.println("super of int[] - "+arrSuper.getName());
}
}
アウトプット
動作はモダンと1.0.2の間で一貫しています
元のJDKには12個未満のパッケージしかありませんでした-これらに加えて、アプレット、awt、awt.peer。それはそれであったかもしれません!これらの3つのパッケージには、コアJVM自体に明示的に認識されているすべてのクラスが含まれており、言語仕様に記載されているこれらのパッケージ以外のクラスはなかった可能性が非常に高いです。
Java.netも利用可能な最初のパッケージの1つであり、特にスレッド機能に関しては、最初から素晴らしいものでした(現在のThreadモデルは、最近の言語に比べて古くなっていますが、当時は素晴らしかったです)。
新しく公開された1.02と、その直後に完全なWebアプリケーションサーバー(まだ業界で使用されています)を学ぶために、Webブラウザー(当時存在していたものに比べても非常に不完全)をコーディングしたことを覚えています。これは、サーブレットAPIや、Javaで高速で信頼性の高いhttpアプリケーションを作成するには重いフレームワークを使用する必要があると説得されるずっと前のことでした。
Java.net(およびGC、スレッド、および例外とJava.util)を使用すると、Javaは主要なテクノロジサーバー側にバインドされました(反対側では、Java.appletは最初の日...)
Java 1.0には、Java.applet、Java.awt(サブパッケージJava.awt.imageおよびJava.awt.peerを含む)、Java.io、Java.lang、Java.net、およびJava.utilの6つの最上位パッケージがありました。それでおしまい。出典:Patrick Chan、Java Developers Almanac 1998