Genel olarak, programlayıcıda işleri kolaylaştırmak için oldukça geniş değişiklikler vardır. Yöneticiniz bu tür şeyleri çok fazla önemsemeyebilir, ancak programcıların kazan plaka kodunu düşünmek için daha az zaman harcamasını sağlamak ve bu nedenle uyguladıkları şeyin asıl amacı hakkında düşünmek için daha fazla zamana sahip olmak, verimliliği arttırmak, hataları azaltmak, vb. Bu çok güçlü bir argüman olabilir. Oracle oldukça geniş bir değişiklik listesine sahiptir , ancak oldukça uzundur, bu yüzden mümkün olduğunca özetleyeceğim.
Dil özellikleri şunlardır:
- Jeneriklerde daha az kazanıyor. Kod
Map<String, String> myMap = new HashMap<String, String>();
azaltılabilir Map<String, String> myMap = new HashMap<>()
. Derleyici, sol tarafta sağ tarafta ihtiyaç duyulan Genel türleri çıkartabilir, böylece kodunuz biraz daha kısa ve okunaklı hale gelir.
- Dizeler artık
.equals()
yöntemin anlamını kullanarak yerine switch ifadelerinde çalışmaktadır==
.
- Kaynaklarla deneyin kullanarak otomatik kaynak yönetimi. Bu, kodu daha temiz hale getirir, ancak aynı zamanda eski stilde deneme / nihayet tabanlı kodlara göre avantaj sağlar. Try ifadesinde bir istisna atılırsa ve kapanırken bir başka atılırsa, geleneksel try / finally ifadelerini kullanan kod orijinal istisnayı tamamen kaybeder ve yalnızca nihayet blokta atılanı iletir. Bir try-with • ifadesinde, çalışma zamanı, close () çağrılarının attığı istisnayı bastırır ve bu orijinal istisnanın ilkinde tüm sorunlara neden olduğu varsayımı altında yığında orijinal istisnayı patlatır. yer. Ek olarak, diğer istisnaları çöp toplayıcıya bırakmak yerine, bu baskılama, yakın atılan istisnaların kullanılarak alınmasına izin verir
Throwable.getSuppressed
.
- Sayısal değişmezlerin okunması daha kolay olabilir. Tüm sayısal hazır değerler alt çizgi çizmeye izin verir , bu yüzden bir şeyler
int n = 1000000000
daha okunaklı int n = 1_000_000_000
hale getirilebilir, bir milyar olarak ayrıştırılması daha kolaydır ve fark etmeden yanlış yazması daha zordur. Ayrıca, ikili hazır bilgi formlarına izin verilir , bu 0b10110101
da bit alanlarıyla çalışan kodun okunması biraz daha güzel olur.
- Birden fazla istisna türünün kullanımı int, aynı catch ifadesi yapılabilir, çoğaltma kodunu azaltır ve potansiyel olarak daha sonra yeniden refaktör yapmayı kolaylaştırır.
Bu değişikliklerin her biri, yöneticinizin doğrudan umursamayacağı bir şeydir, ancak çaba harcamak ve düşünmeksizin doğru kodu yazmayı biraz kolaylaştırır, zihninizi biraz denediğiniz gerçek mantığa odaklanmak için biraz serbest bırakmanızı sağlar uygulamak ve ayrıca daha sonra kodu okumayı biraz daha kolaylaştırarak hata ayıklamayı biraz daha hızlı hale getirirler.
API tarafında, bir dizi API güncellemesi de meydana geldi:
- Güvenlik açısından , kripto ileriye doğru hareket ederken, birkaç şifreleme yöntemi eklenmiştir / kullanımdan kaldırılmıştır.
- IO dosyası değiştirildi ( bu daha iyi bir bağlantı olabilir ) , bazı yerlerde daha iyi bir soyutlama eklendi. Şahsen yeni IO olaylarına dalmadım, ama çok kullanışlı bir revizyon gibi gözüküyor, dosya sistemi ile çalışmayı çok daha fazla acı çekmeden kolaylaştırıyor.
- Unicode Desteği , bir dizi diğer uluslararasılaşma geliştirmesinin yanı sıra Unicode 6.0'a kadardır.
- Sorunuzda bahsettiğiniz Java2D geliştirildi. Daha iyi Linux font desteği, modern makinelerde daha iyi X11 sunumu ve Tibet betiklerinin kullanımı.