Bu farklı Java sürümleri ne içindir?


63

Java yolculuğuma başlamak üzereyim , (zaten C ++ ile uğraşmıştım) ama Java'nın tüm farklı sürümleri hakkında gerçekten kafam karıştı:

  • JavaSE
  • JavaEE
  • JavaFX
  • vb.

Birisi bunları ayrıntılı olarak açıklayabilir mi?

Yanıtlar:


107

Java uygun

Java Standard Edition , genel bilgi işlem için tasarlanmış "normal" sürümüdür. Java'nın diğer tüm değişkenleri gibi, tam otomatik çöp toplama özelliğine sahip, sanal bir makinede çalıştırılan, güçlü, statik olarak yazılmış, bayt kodu ile derlenmiş, Nesne Yönelimli bir dildir. Dilin özelliklerinin çoğuna sahiptir. Uygulama örnekleri Minecraft veya ArgoUML gibi uygulamalar olabilir. Tek başına bir masaüstü uygulaması veya Web sayfasındaki gömülü bir uygulama olarak Uygulama (Applet) olarak çalıştırılabilir.

Java Kurumsal Sürümü farklı bir dil değildir, ancak bir Uygulama Sunucusu uygulamasında çalışan bir yazılım üretmek için tasarlanmış Arayüz spesifikasyonlarıdır. Buradaki ana fark, Enterprise Edition Arabirim özelliklerine uyan Uygulama Sunucularına dağıtılmak üzere tasarlanmış olmasıdır; Java SE, tek başına sunucular yazmak için kullanılabilir, ancak Java EE'nin olduğu gibi yerleşik standartlaştırılmış Arayüzler ve özellikler içermez. Örnekler Glassfish (Java EE referans uygulaması), JBoss, vb. Üzerinde çalışmak üzere tasarlanmış uygulamalar olabilir.

Java Micro Edition , Mobil cihazlarda çalışmak üzere tasarlanmış bir Javadır. Bunun Android ile aynı şey olmadığını belirtmek gerekir . Java ME, mobil donanım ile Java SE'den daha iyi başa çıkmak için tasarlanmıştır. Bir Pantec Ease'i cep telefonu olarak kullanıyorum, Java ME kullanıyor.

Java Kartı bile, Akıllı ATM kartları gibi gerçekten düşük uçlu cihazlar olarak amaçlanan "küçük". Evet, bazılarında aslında Java var.

JavaFX , Zengin İnternet İstemcisi GUI Uygulamalarını oluşturmak için tasarlanmış bir çerçevedir.

JVM dili Ailesi

İlk önce, JVM . Bu, derleme dili gibi görünen derlenmiş bytcode ile çalışan yığın tabanlı bir sanal makinedir. Optimizasyon çok özel durumlar için oldukça hızlı çalışmasını sağlayabilir.

İşte gerçek Java Java Öğeleri için, şimdi insanların JVM'de sıkça kullandıkları şeyler için. Bu dillerin tümü Java birlikte çalışabilirlik özelliklerine sahiptir ve genellikle Java kitaplıklarının çoğunu veya tümünü arayabilir.

Groovy , Java'ya daha kolay ve daha güçlü bir alternatif olarak hesaplanan daha özlü bir sözdizimine sahip Nesne Yönelimli, dinamik olarak yazılmış bir dildir. Java'nın bir tür uzantı dili olarak tasarlanmıştır ve Java dosyalarının Groovy programlarına neredeyse sürüklenip bırakılmasını sağlar. Grails olarak bilinen web geliştirme için yaygın olarak ilişkilendirilen bir çerçeveye sahiptir .

Scala , son derece ölçeklenebilir olması için tasarlanmış, bu nedenle adı oldukça yeni olan (2003) hibrit nesne yönelimli / işlevsel bir dildir. Twitter, Scala'nın ağır bir kullanıcısıdır.

Clojure , Lisp ailesinin yeni bir (2007) işlevsel dilidir. En başından itibaren ağır eşzamanlı programlama için tasarlanmıştır. Bunun için iyi bir yazılım örneğim yok, ancak kullanan çok sayıda şirket var.

Jython ve JRuby , sırasıyla Python ve Ruby'nin Java bytecode versiyonlarıdır .

JVM için Jaskell (JVM için Haskell) gibi başka diller de var ama bunlar karanlık / akademik deneyimler olma eğilimindedir.

İlgili sayfalar

Android Java kullanıyor ancak Dalvik kayıt tabanlı makinede çalışıyor. Dalvik, şu anda kabul eden Google’a karşı açılan bir dava konusu . Android aslında farklı bir Kütüphaneler dizisine sahip olan Java SE'dir.

NetBeans ve Eclipse , Java IDE'leri hakkında en çok konuşulan ikisidir. Birine karşı diğerine soru sormak kapanmaya neden olacak ve ben programlama kavramını kastetmiyorum.

İlgisiz şeyler

Javascript Java değil ... hiç. Java'nın popülaritesinden yararlanmak için seçildi ve karışıklık o zamandan beri can sıkıcıydı.

Odadaki Gergedan

Rhino , Javascript Kodunu daha sonra bir yerde çalıştırılabilecek olan Java koduna dönüştüren bir Javascript yorumlayıcısıdır. Bu "kendi başına" ayrı bir dil değil, başka herhangi bir şey gibi kendi tuhaflıklarına sahip. Rhino, Mozilla tarafından C tabanlı SpiderMonkey tercümanlarına alternatif olarak geliştirilmiştir. Rhino, Javascript'i bir Java programına yerleştirmek için kullanılır.

JDK 8 için Oracle (belki de Alman verimlilik seviyesine sahip) tarafından geliştirilen Nashorn , Java içindeki gömülü Javascript için yeni bir standart gibi görünmektedir. Bu, Rhino’nun artık Java’nın ana uygulaması için kullanılmadığı anlamına gelir. Bunun Rhino projesi için ne anlama geldiği henüz belli değil.


1
Çok teşekkürler! Aradığım şey buydu :) Bir soru daha: J2SE, J2EE vs. bunlar sadece SE, EE, vb.
Patryk

8
Evet, J2EE ve J2SE, sırasıyla standart sürüm olan Java Enterprise Edition’ın ikisidir. Bu adlandırma şeması artık takip edilmemektedir. Mevcut sürümler Java SE 6 (veya 5/7) ve Java EE 5 (veya 6) olarak adlandırılır.
BenR

1
Akıllı kartlar için bir Java var mı? Akıl sarsılıyor.
Megan Walker

1
Hepsine hükmedecek tek cevap!
kullanıcı

1
JDK8'den bu yana, Rhino kullanımdan kaldırıldı (?)? Nashorn yeni Gergedan.
Silviu Burcea
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.