Java 1.0'ın “çekirdek” API paketleri neydi?


38

Google v Oracle davası hakkında okuduğumda, bu sorularla karşılaştım (görünüşe göre başkanın Hakimi)

...
En azından 1996 itibariyle, aşağıdakilerin doğru olduğu konusunda fikir birliğine varıldı mı?

Aşağıdakiler temel Java Uygulama Programlama Arabirimi idi: java.lang, java.util ve java.io.

Java programlama dili yukarıdaki üçün dışında herhangi bir metoda, sınıfa veya pakete atıfta bulunuyor veya bunu gerektiriyor mu?
...

Kaynak: Groklaw

Açıkçası pek çok yasal sonuç var, Google ve Oracle muhtemelen bazı noktalara katılmıyor ve umrumda değil . Kanunu avukatlara bırak.

Bununla birlikte, burada ilginç bir tarih bölümü olduğundan şüpheliyim.

Java 1.0 sürümünde, (ilk 2001 civarında sürüm 1.3 kodlama herhangi Java yaptığı bir kişi) şey dışında gerekli Sorum edilir java.lang, java.utilve java.iogeçerli bir Java programı derlemek için?

Örnek olarak (C # 5.0 kullanarak), awaitanahtar kelime (başka şeylerin yanı sıra) bağlıdır. Derleyici, o sınıf olmadan belirtme işlevini yerine getiremedi.Task<T> GetAwaiter()

Aynı şekilde, diğer paketlere bağımlı olan çekirdek çalışma zamanı özellikleri ( ClassLoader * gibi ) var mıydı?

Merak ediyorum ki, asgari uygulanabilir Java (etrafındaki tüm yasal bitleri yok sayarak) için tam olarak neyin gerekli olduğunu merak ediyorum.

* ClassLoader’ın Java 1.0’da bile bir özellik olduğunu farz ediyorum, 7.0'daki spesifikasyonun bir parçası ve muhtemelen daha önceki sürümlerde.




2
Bilginize, awaitanahtar kelime bağımlı değildir Task<T>. TaskSınıf sadece şeyleri tatmin olur awaitanahtar kelime yok (bir yöntem denilen bağlıdır GetAwaiter()vs).
Matt Hamilton

2
@Matt - düzeltildi, gitmeliydi yieldve IEnumerator gibi bir şey; sadece çok heyecanlıyım await.
Kevin Montrose

Yani temelde java.lang.Object sınıfının JDK 1'e bağlı olduğunu bilmek istersiniz, değil mi?
Fular

Yanıtlar:


55

Vikipedi'ye göre , Java'nın ilk resmi olarak yayımlanan sürümü 23 Ocak 1996'da 1.0.2 idi.

İlk kararlı sürüm JDK 1.0.2 idi. Java denir 1

Bir Java 1.0.2 arşivi ve bunlarla ilgili tüm belgeler burada :

  • JDK 1.0.2 API referansı (kitap formatı)
  • JDK 1.0.2 API referansı (javadoc formatı)
  • Java eğitimi
  • Java dili belirtimi (bağlantı koptu, burada geri dönüş oldu )
  • Java sanal makine özellikleri

Burada JDK 1.0.2 bitinin indirildiği görülüyor .

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

Yazma sırasında benim için çalışıyor.

Windows 7 x64'te Java 1.0.2

JAVA 1.0.2'NİN KORUNMAYACAK GÜCÜ YAPILMASI


Dil belirtiminde, aşağıdaki sınıflara atıfta bulunulmaktadır (tek alıntı, ayrıntılı alıntılar değil):

  • Sınıf (bölüm 4.3.1)
  • Dize (bölüm 4.3.1)
  • Nesne (bölüm 4.3.2)
  • Rastgele (bölüm 4.4)
  • Konu (bölüm 17.2)
  • ThreadGroup (bölüm 17.2)
  • Atılabilir (bölüm 11)
  • Hata (bölüm 11.2)
  • tümü java.lang kapsamında olan hatalar ve yükler (bölüm 11.5.2.1 - 11.5.2.2)
  • RuntimeException (bölüm 11.2.1)
  • "Dizi sınıfları", [Ivb. (bölüm 10.8 )

... hangi noktada bakmayı bıraktım çünkü, teknik olarak [I, vb. ark. olmayan java.lang, java.utilya da java.iopaketler.

Örnek:

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());
  }
}

çıktılar

görüntü tanımını buraya girin

Davranış, modern ve 1.0.2 arasında tutarlıdır

görüntü tanımını buraya girin


Altın tekrar Google-fu.
Kevin Montrose


@YannisRizos Siz ve ben ikimiz de. Bu benim ilk web tarayıcımdı.
Dünya Mühendisi

@WorldEngineer: Sana Mosaic'i veriyorum .
sbi


2

Orijinal JDK'de bir düzineden az paket vardı - bunlar artı aptal, awt, usta. Olabilir! Kesinlikle -% 99 kesin - bu üç paketin çekirdek JVM'nin kendisi tarafından açıkça bilinen tüm sınıfları içermesi ve bu paketlerin dışında dil spesifikasyonunda belirtilen sınıfların bulunmaması olasıdır.


1

java.net ayrıca mevcut ilk paketler arasındaydı ve baştan beri, özellikle diş açma tesisiyle harikaydı (şimdi Thread modeli, daha yeni dillerde sahip olduklarınızla karşılaştırıldığında modası geçmiş gibi görünüyor ama o zamanlar harikaydı).

Yeni yayınlanan 1.02'yi ve hemen ardından tam bir web uygulama sunucusunu (hala endüstride kullanılan) öğrenmek için bir web tarayıcısını kodladığımı hatırlıyorum. Bu, sunucu uygulamasının uygulanmasından çok önceydi ve herkes java'da hızlı ve güvenilir http uygulamaları yapmak için ağır çerçeveler kullanmanız gerektiğine ikna olmuştu.

Java.net (ve GC, Threads ve istisnalar ve java.util) ile java, büyük bir teknoloji sunucusu tarafı olmak zorundaydı (karşı tarafta, java.applet ilk günden beri acı vericiydi ...)


0

Java 1.0 tam altı üst düzey pakete sahipti: java.applet, java.awt (alt paketler java.awt.image ve java.awt.peer ile), java.io, java.lang, java.net ve java.util. Bu kadar. Kaynak: Patrick Chan, Java Geliştiricileri Almanac 1998

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.