แพ็คเกจ“ core” API ของ Java 1.0 คืออะไร?


38

อ่านเกี่ยวกับคดีของ Google v Oracle ฉันเจอคำถามเหล่านี้ (เห็นได้ชัดจากผู้พิพากษาหัวหน้า)

...
มันตกลงกันหรือไม่ว่าสิ่งต่อไปนี้เป็นจริงอย่างน้อยก็ในปี 1996?

ต่อไปนี้เป็นอินเตอร์เฟส Java Application Programming Core: java.lang, java.util และ java.io.

ภาษาการเขียนโปรแกรม Java อ้างถึงหรือต้องการวิธีการชั้นเรียนหรือแพคเกจนอกสามข้างต้น?
...

แหล่งที่มา: Groklaw

มีชัดมาก ๆ ของเครือข่ายทางกฎหมายของ Google และ Oracle อาจจะไม่เห็นด้วยกับบางจุดและฉันไม่สนใจ ออกกฎหมายไปยังทนายความ

อย่างไรก็ตามฉันสงสัยว่ามีประวัติที่น่าสนใจอยู่บ้าง

คำถามของฉัน (เป็นคนแรกที่ได้ใด Java เข้ารหัสรอบปี 2001 ในรุ่น 1.3) ในรุ่น 1.0 ชวาถูกต้องอะไรนอกjava.lang, java.utilและjava.ioการรวบรวมโปรแกรม Java ที่ถูกต้อง?

เป็นตัวอย่าง (โดยใช้ C # 5.0) awaitคำหลักนั้นขึ้นอยู่กับ(เหนือสิ่งอื่นใด) คอมไพเลอร์ไม่สามารถทำงานกับสเป็คได้หากไม่มีคลาสTask<T> GetAwaiter()

อย่างเท่าเทียมกันมีฟีเจอร์รันไทม์หลัก (เช่นClassLoader *) ที่ขึ้นอยู่กับแพ็คเกจอื่นหรือไม่

ฉันจะยอมรับว่าฉันถามด้วยความอยากรู้ว่าสิ่งใดที่จำเป็นสำหรับ Java ที่มีศักยภาพต่ำสุด (ภาษาโดยไม่สนใจบิตที่ถูกกฎหมายทั้งหมด)

* ฉันสมมติว่า ClassLoader เป็นแม้แต่คุณสมบัติใน Java 1.0 ซึ่งเป็นส่วนหนึ่งของข้อมูลจำเพาะใน 7.0และน่าจะเป็นรุ่นก่อนหน้าหลายรุ่น


3
ย้อนกลับไปในวันที่เมื่อ Java เป็นภาษาที่ง่าย ...
Jens Schauder

7
ย้อนกลับไปในวันที่จาวา
Sara Chipps

2
FYI ที่คำหลักไม่ขึ้นอยู่กับawait ชั้นเพิ่งเกิดขึ้นเพื่อตอบสนองสิ่งที่คำหลักไม่ขึ้นอยู่กับ (วิธีการที่เรียกฯลฯ ) Task<T>TaskawaitGetAwaiter()
Matt Hamilton

2
@ แมต - แก้ไขแล้วควรไปด้วยyieldและ IEnumerator หรืออะไร awaitเพียงแค่รู้สึกตื่นเต้นมากสำหรับ
Kevin Montrose

ดังนั้นโดยพื้นฐานแล้วคุณต้องการที่จะรู้ว่าคลาสใด java.lang.Object ขึ้นอยู่กับใน JDK 1 จริงไหม?
scarfridge

คำตอบ:


55

สำหรับ Wikipediaนั้น Java เวอร์ชันแรกที่ออกวางตลาดอย่างเป็นทางการคือ 1.0.2 ในวันที่ 23 มกราคม 1996

รุ่นเสถียรแรกคือ JDK 1.0.2 เรียกว่า Java 1

มีไฟล์เก็บถาวรของ Java 1.0.2 และเอกสารที่เกี่ยวข้องทั้งหมดที่นี่ :

  • การอ้างอิง JDK 1.0.2 API (รูปแบบหนังสือ)
  • การอ้างอิง JDK 1.0.2 API (รูปแบบ javadoc)
  • Java Tutorial
  • สเปคภาษา Java (ลิงค์เสียwayback'd ที่นี่ )
  • ข้อมูลจำเพาะเครื่องเสมือน Java

มีปรากฏที่จะดาวน์โหลดของ JDK 1.0.2 บิตที่นี่

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

มันทำงานได้ดีสำหรับฉันในเวลาที่เขียน

Java 1.0.2 บน Windows 7 x64

เป็นผู้ใช้อำนาจที่ไม่ได้รับการกำหนดของ JAVA 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)
  • RuntimeException (ส่วน 11.2.1)
  • "คลาส Array" [Iและอื่น ๆ (ส่วนที่10.8 )

... จุดที่ฉันหยุดมองเพราะในทางเทคนิค , [I, et อัล ไม่ได้อยู่ใน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

ป้อนคำอธิบายรูปภาพที่นี่


Gold Google-fu อีกครั้ง
Kevin Montrose


@ YannisRizos ทั้งคุณและฉัน นั่นคือเว็บเบราว์เซอร์แรกของฉัน
World Engineer

@WorldEngineer: ผมให้คุณโมเสค
sbi


2

มีแพ็คเกจน้อยกว่าหนึ่งโหลใน JDK ดั้งเดิม - เหล่านี้รวมถึงแอปเพล็ต, awt, awt.peer นั่นอาจเป็นไปได้! มีความเป็นไปได้อย่างแน่นอน - 99% แน่นอน - ว่าแพ็กเกจทั้งสามนี้รวมคลาสทั้งหมดที่รู้จัก JVM หลักอย่างชัดเจนและไม่มีคลาสภายนอกแพ็กเกจเหล่านี้ที่ระบุไว้ในข้อกำหนดภาษา


1

java.net ยังเป็นหนึ่งในแพ็คเกจแรกที่มีอยู่และมันยอดเยี่ยมตั้งแต่เริ่มต้นโดยเฉพาะอย่างยิ่งกับเธรดสิ่งอำนวยความสะดวก (ตอนนี้แบบจำลองเธรดปรากฏล้าสมัยเมื่อเทียบกับสิ่งที่คุณมีในภาษาที่ใหม่กว่า

ฉันจำได้ว่ามีการเขียนโค้ดเว็บเบราว์เซอร์ (ไม่สมบูรณ์มากเมื่อเทียบกับสิ่งที่มีอยู่ในเวลานั้น) เพื่อเรียนรู้การเผยแพร่สดใหม่ 1.02 และหลังจากนั้นเซิร์ฟเวอร์แอปพลิเคชันเว็บที่สมบูรณ์ (ยังคงใช้ในอุตสาหกรรม) นั่นเป็นเวลานานก่อนที่ servlet api และทุกคนจะถูกชักจูงว่าคุณต้องใช้เฟรมเวิร์กจำนวนมากเพื่อสร้างแอปพลิเคชัน http ที่รวดเร็วและเชื่อถือได้ใน java

ด้วย java.net (และ GC และเธรดและข้อยกเว้นและ java.util) java ถูกผูกไว้กับฝั่งเซิร์ฟเวอร์เทคโนโลยีที่สำคัญ (ที่ฝั่งตรงข้าม java.applet เจ็บปวดตั้งแต่วันแรก ... )


0

Java 1.0 มีแพคเกจระดับบนสุดหกรายการ: java.applet, java.awt (พร้อม subpackages java.awt.image และ java.awt.peer), java.io, java.lang, java.net และ java.util แค่นั้นแหละ. ที่มา: Patrick Chan, Java Developers Almanac 1998

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.