Apa perbedaan versi Java ini?


63

Saya baru akan memulai perjalanan Java saya , (saya sudah mencoba-coba dalam C ++) tapi saya benar-benar bingung tentang semua versi Java yang berbeda:

  • JavaSE
  • JavaEE
  • JavaFX
  • dll.

Adakah yang bisa menjelaskan ini secara terperinci?

Jawaban:


107

Java Proper

Java Standard Edition adalah versi "normal" yang dirancang untuk komputasi umum. Itu, seperti semua varian Java lainnya, adalah bahasa yang sangat kuat, diketik secara statis, dikompilasi bytecode, berorientasi objek dijalankan pada mesin virtual dengan pengumpulan sampah otomatis penuh. Ini memiliki sebagian besar fitur bahasa. Contoh aplikasi adalah aplikasi seperti Minecraft atau ArgoUML. Itu dapat dijalankan sebagai aplikasi desktop yang berdiri sendiri atau aplikasi yang tertanam di halaman web sebagai Applet.

Java Enterprise Edition bukan bahasa yang berbeda tetapi spesifikasi Interface dirancang untuk menghasilkan perangkat lunak yang berjalan di dalam implementasi Server Aplikasi. Perbedaan utama di sini adalah bahwa ia dirancang untuk penyebaran ke Server Aplikasi yang sesuai dengan spesifikasi Antarmuka Edisi Perusahaan; Java SE dapat digunakan untuk menulis server yang berdiri sendiri tetapi tidak menyertakan Antarmuka standar dan tujuan spesifikasi yang dibuat seperti Java EE. Contohnya adalah aplikasi yang dirancang untuk berjalan di Glassfish (implementasi referensi Java EE), JBoss, dll.

Java Micro Edition adalah Java yang dirancang untuk berjalan pada perangkat Mobile. Perlu dicatat bahwa ini bukan hal yang sama dengan Android. Java ME dirancang untuk menangani perangkat keras seluler yang lebih baik daripada Java SE. Saya menggunakan Pantec Ease sebagai ponsel, ini menjalankan Java ME.

Java Card bahkan "lebih kecil" yang ditujukan sebagai perangkat yang benar-benar low-end seperti kartu ATM Smart. Ya, beberapa dari mereka benar-benar memiliki Java.

JavaFX adalah kerangka kerja yang dirancang untuk membangun Aplikasi GUI Klien Internet yang Kaya.

Keluarga bahasa JVM

Pertama, JVM . Ini adalah mesin virtual berbasis tumpukan yang menjalankan kode byt yang dikompilasi yang sangat mirip bahasa assembly. Optimalisasi dapat membuatnya berjalan cukup cepat untuk situasi yang sangat khusus.

Itu untuk Oracle Java Stuff yang sebenarnya, sekarang untuk hal-hal yang biasa digunakan orang pada JVM. Semua bahasa ini menampilkan Java interops dan biasanya dapat memanggil sebagian besar atau semua perpustakaan Java.

Groovy adalah Bahasa Berorientasi Objek, diketik secara dinamis dengan sintaksis yang lebih ringkas yang disebut sebagai alternatif yang lebih mudah, lebih kuat untuk Java. Itu dirancang sebagai semacam bahasa ekstensi untuk Java, memungkinkan hampir drag dan drop file Java ke program Groovy. Ini memiliki kerangka kerja yang umumnya dikaitkan dengan itu untuk pengembangan web yang dikenal sebagai Grails .

Scala adalah bahasa yang berorientasi objek / fungsional hibrida (2003) yang cukup baru yang dirancang untuk sangat skalabel, oleh karena itu namanya. Twitter adalah pengguna berat Scala.

Clojure adalah bahasa fungsional terbaru (2007) dari keluarga Lisp. Ini dirancang untuk pemrograman bersamaan yang berat sejak awal. Saya tidak punya contoh perangkat lunak yang bagus untuk yang satu ini tetapi ada sejumlah perusahaan yang menggunakannya.

Jython dan JRuby adalah versi bytecode Java dari Python dan Ruby masing-masing.

Ada sejumlah bahasa lain untuk JVM di luar sana seperti Jaskell (Haskell untuk JVM) tetapi mereka cenderung tidak jelas / eksperimen akademis.

Hal-hal terkait

Android menggunakan Java tetapi berjalan pada mesin berbasis register Dalvik. Dalvik saat ini menjadi objek gugatan terhadap Google, pengadopsi. Android pada dasarnya adalah Java SE dengan kumpulan Perpustakaan yang berbeda.

Netbeans dan Eclipse adalah dua yang paling banyak dibicarakan tentang Java IDE. Mengajukan pertanyaan tentang satu vs yang lain akan meminta penutupan dan saya tidak bermaksud konsep pemrograman.

Hal-hal yang tidak terkait

Javascript bukan Java ... sama sekali. Diberi nama itu untuk memanfaatkan popularitas Java dan kebingungan telah menjengkelkan sejak saat itu.

Badak di Kamar

Badak adalah penerjemah Javascript yang mengubah Javascript Code menjadi kode Java yang kemudian dapat dijalankan di suatu tempat. Ini bukan bahasa yang terpisah "per se" tetapi seperti apa pun memiliki set quirks sendiri. Badak dikembangkan oleh Mozilla sebagai alternatif untuk penerjemah SpiderMonkey berbasis C mereka. Badak biasanya digunakan untuk menanamkan Javascript dalam program Java.

Nashorn , yang dikembangkan oleh Oracle (mungkin dengan tingkat efisiensi Jerman) untuk JDK 8, tampaknya menjadi standar baru untuk Javascript tertanam di dalam Java. Ini berarti bahwa Badak tidak lagi digunakan untuk implementasi utama Jawa. Apa artinya ini untuk proyek Badak tidak jelas saat ini.


1
Terima kasih banyak! Itulah yang saya cari :) Satu pertanyaan lagi: J2SE, J2EE dll. Ini hanya versi SE, EE, dll? Yang lebih baru?
Patryk

8
Ya, J2EE dan J2SE adalah versi dua dari edisi standar Java Enterprise Edition. Skema penamaan ini tidak lagi diikuti. Versi saat ini disebut sebagai Java SE 6 (atau 5/7) dan Java EE 5 (atau 6).
BenR

1
Ada Java untuk kartu pintar? Pikiran mengejutkan.
Megan Walker

1
Satu jawaban untuk mengatur semuanya!
pengguna

1
Sejak JDK8, Badak sudah usang (dihapus?). Nashorn adalah Badak baru.
Silviu Burcea
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.