Якими були основні пакети API Java 1.0?


38

Читаючи про справу Google v Oracle, я стикався з цими питаннями (очевидно, від головуючого судді)

...
Чи погоджено це, що дійсно так, принаймні станом на 1996 рік?

Нижче перелічено основні інтерфейси програмування Java: java.lang, java.util та java.io.

Чи посилається на мову програмування Java будь-який метод, клас чи пакет за межами зазначених вище?
...

джерело: Гроклау

Очевидно, що юридичних наслідків багато, Google і Oracle, напевно, не згодні з деяких питань, і мені все одно . Залиште закон юристам.

Однак я підозрюю, що тут є цікавий біт історії.

Моє питання (як хто - то , хто першим зробив будь-який Java кодування близько 2001 року в версії 1.3), в версії 1.0 Java було що - то потрібно поза java.lang, java.utilі java.ioскласти справжню програму Java?

Як приклад (використовуючи C # 5.0), awaitключове слово залежить (серед іншого). Компілятор не міг функціонувати spec без цього класу.Task<T> GetAwaiter()

Еквівалентно, чи існували якісь основні функції виконання (наприклад, ClassLoader *), які залежали від інших пакетів?

Зізнаюся, цікаво запитую, що саме потрібно для мінімально життєздатної Java (мова, ігноруючи всі легальні біти навколо неї) цікава.

* Я припускаю, що ClassLoader був навіть функцією в Java 1.0, він є частиною специфікації в 7.0 і, імовірно, у багатьох раніших версіях.


3
ще в часи, коли ява була простою мовою ...
Jens Schauder

7
ще в часи, коли java
Sara Chipps

2
FYI, awaitключове слово не залежить від цього Task<T>. TaskКлас просто трапляється , щоб задовольнити то , що awaitключове слово це залежить від (метод називається і GetAwaiter()т.д.).
Метт Гамільтон

2
@Matt - виправлено, мав би піти з yieldIEnumerator чи щось таке; просто так схвильований await.
Кевін Монтроуз

Отже, ви в основному хочете знати, від яких класів java.lang.Object насправді залежав JDK 1, правда?
хустка

Відповіді:


55

У Вікіпедії 23 січня 1996 року першою офіційно випущеною версією Java була 1.0.2.

Першою стабільною версією став JDK 1.0.2. називається Java 1

Там в архів Java 1.0.2 і всієї супутньої документації тут :

  • Довідник API JDK 1.0.2 (формат книги)
  • Посилання API JDK 1.0.2 (формат javadoc)
  • Підручник з Java
  • Специфікація мови Java (посилання розірвано, зворотний шлях тут )
  • Специфікація віртуальної машини Java

Там з'являється як завантаження з JDK 1.0.2 біт тут

http://www.pascal-man.com/download/download-jdk.shtml

Це працює для мене під час написання.

Java 1.0.2 на Windows 7 x64

ПІДТРИМАЙТЕ СЕРВІНУ НЕМАТИФІКОВАНУ ДЖЕВУ 1.0.2


У мовній специфікації згадуються наступні класи (одиничне цитування, а не вичерпні цитати):

  • Клас (розділ 4.3.1)
  • Рядок (розділ 4.3.1)
  • Об'єкт (розділ 4.3.2)
  • Випадкові (розділ 4.4)
  • Нитка (розділ 17.2)
  • Групова нитка (розділ 17.2)
  • Викидання (розділ 11)
  • Помилка (розділ 11.2)
  • вантажі та навантаження помилок, все під java.lang (розділ 11.5.2.1 - 11.5.2.2)
  • Час виконання (розділ 11.2.1)
  • "Класи масиву", [Iтощо, (розділ 10.8 )

... в цей момент я перестав дивитися , тому що, технічно , [IЕТ. ін. не в 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

введіть тут опис зображення


Золотий Google-фу ще раз.
Кевін Монтроуз


@YannisRizos Ви і я обоє. Це був мій перший веб-браузер.
Світовий інженер

@WorldEngineer: Я дарую вам мозаїку .
sbi


2

В оригінальному JDK було менше десятка пакетів - ці плюс аплет, awt, awt.peer. Це, можливо, було! Цілком ймовірно - 99% певно - що ці три пакети включали всі класи, які були явно відомі самому ядру JVM, і що поза цими пакунками, зазначеними в мові, не було класів.


1

java.net також був одним з перших доступних пакетів, і це було чудово з самого початку, особливо із засобом для нанизування різьби (тепер модель Thread видається застарілою порівняно з тим, що ви маєте в останніх мовах, але тоді це було чудово).

Я пам’ятаю, що зашифрував веб-браузер (дуже неповний, навіть порівняно з тим, що існував у той час), щоб дізнатися щойно опублікований 1,02 і, одразу ж, повний сервер веб-додатків (все ще використовується в промисловості). Це було задовго до того, як серплет api, і всіх переконували, що вам потрібно використовувати важкі рамки, щоб робити швидкі та надійні програми http в Java.

З java.net (і GC, і Threads, і винятки, і java.util) java повинен був стати головним сервером технологій (на протилежному боці java.applet було болісно з першого дня ...)


0

У Java 1.0 було рівно шість пакетів верхнього рівня: java.applet, java.awt (із підпачками java.awt.image та java.awt.peer), java.io, java.lang, java.net та java.util. Це воно. Джерело: Патрік Чан, Альманах розробників Java 1998 року

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.