Java8 ve Java9

Java8 Vs Java9



Java 8 vs Java 9: ​​Java 9'da Bilmeniz Gereken İyileştirmeler

Birçok geliştirici, uygulamalar oluşturmak için Java'ya dönecektir. Hepimizin bildiği gibi, Java inanılmaz derecede çok yönlüdür, kullanımı kolaydır, güvenlidir, güvenilirdir ve hepsinden önemlisi platformdan bağımsızdır. Java'nın dünya çapında 6,5 ​​milyondan fazla geliştiricisi var. Bu nedenle, referans materyali de bol olduğu için kullanmak için mükemmel bir dildir.

Bununla birlikte, Java yıllar içinde büyümeye ve gelişmeye devam etti. Sun Microsystems tarafından 1995 yılında düzenlendi , Java güvenilirliğini kanıtlamaya devam etti. Java'nın 18 Mart 2014'ten beri kullanımda olan önceki yapısı Java SE 8'di. Açıklandığında, eleştirmenler bunun bir sanat eseri, API'lerdeki değişiklik akışlarının bir yayını olduğunu söyledi. Şimdi blokta yeni bir çocuk var. Taze basılmış Java 9 sonunda burada. 21 Eylül 2017'de tanıtıldı , Java SE 9'un işleri yapma şeklimizi ve geliştiricilerin uygulama oluşturma şeklini değiştirmesi bekleniyor.







Java 8'in inanılmaz çevikliği ve çok yönlülüğü sayesinde işletmeler sağlık, fintech ve diğer büyük sektörler gibi sektörler için inanılmaz çözümler üretti. Java 9 ise bunun üzerine inşa etmeyi ve geliştiricilere tamamen yeni işlevler sunmayı vaat ediyor.



Şimdi Java 9'daki yeniliklere bir göz atalım.



Proje Yapboz

Bu, Java 9'un öne çıkan özelliklerinden biridir. Temel olarak, proje yapbozuna verilen addır. modülerleştirme Java'nın. Yapboz parçaları daha büyük bir resim oluşturmak için parça parça bir araya geldikçe, Java 9'un modülerliği de aynı şekilde artar. Bu, yürütülecek görevler veya işlevler nedeniyle kodun parçalara (modüllere) bölündüğü anlamına gelir. Bu ileriye doğru atılmış büyük bir adımdır çünkü modülerleştirme yalnızca kodun yeniden kullanılabilirliğini çok daha rahat hale getirmekle kalmaz, aynı zamanda yönetim ve hata ayıklama basittir. Bu nedenle, geliştiricilerin Java 9 ile uygulamalar oluştururken diğer önceki derlemelere göre daha kolay zaman geçireceklerini gördük.





Modülerleştirmenin bir başka yararı, geliştiricilerin artık hafif, ölçeklenebilir uygulamalar oluşturabilmesidir. Özellikle Nesnelerin İnterneti büyümeye devam ederken, Java ile yazılmış bu tür daha fazla uygulama bulacağız.

JEP 222: jshell : Java Kabuğu

Java 9, yeni okuma-değerlendirme-yazdırma döngüsü (REPL) aracına sahiptir. altında gelişim aşamasında olduktan sonra Proje Hakkı bu özellik nihayet halka sunuldu. Bu yeni özellik, Java ile yazılmış ifadeleri, ifadeleri ve bildirimleri test etmek için kullanılan etkileşimli bir araçtır. JShell API'sinin ve aracının temel amacı, geliştiriciye yukarıda bahsedilen özellikleri kabuk durumunda test etme şansı vermektir. Bu öncelikle hızlı kodlama ve araştırmadır, bu sayede ifadelerin ve ifadelerin bir yöntem içinde olması gerekmez ve yöntemler sırayla bir sınıf içinde olmak zorunda değildir. Bu şekilde bir geliştirici, kod parçalarını hızlı bir şekilde analiz edebilir ve istenen etkiyi getirip getirmeyeceklerini görebilir.



jshell aracı, aşağıdaki özelliklere sahip bir komut satırı arayüzüne sahip olacaktır:

  • Yapılandırılabilir önceden tanımlanmış tanım ve içe aktarma.
  • Düzenleme özelliklerine sahip bir geçmiş
  • Gerekli terminal noktalı virgüllerinin otomatik eklenmesi

Derleyici iyileştirmeleri

Uygulamaların daha hızlı çalışmasını sağlamak için Java 9, önceden (AoT) derleme adı verilen yeni bir teknolojiyi devreye aldı. Bu teknoloji, deneysel aşamalarında da olsa, Java sınıflarının sanal makinelerde başlatılmadan önce bile yerel kodda derlenmesini mümkün kılar. Bunun olanakları sonsuzdur. Ancak, bu teknolojinin daha hızlı kullanımı, en yüksek performansta herhangi bir caydırıcılık olmaksızın büyük ve küçük uygulamalar için başlatma süresini iyileştiriyor.

Geriye dönüp bakıldığında, Java 8 Tam zamanında (JIT) derleyicileri kullanır. Bu derleyiciler hızlıdır ancak ısınması biraz daha zaman alır. Derlenecek çok fazla kod olmadığı için bu, daha küçük programlar veya uygulamalar için önemsiz olabilir. Ancak, daha büyük uygulamalar için anlatı oldukça farklıdır. Tam zamanında derleyicinin ihtiyaç duyduğu ısınma, bazı yöntemlerin derlenmediği ve bu nedenle uygulamanın performansını zayıflattığı anlamına gelir.

Akıllı derleme dağıtımının ikinci aşaması, Javac aracının taşınabilirliğinin ve kararlılığının iyileştirilmesidir. Bu aracın geliştirilmesi, varsayılan ayar olarak doğrudan JVM'de (Java Sanal Makinesi) kullanılmasını sağlar. Bunun dışında araç, geliştiricilerin JDK ortamı dışında bile kullanmasına izin verecek şekilde genelleştirilmiştir. Java, uyumluluk endişesi olmadan kolayca yerleştirilebilen daha büyük projelerde kullanılabildiğinden, geliştiriciler için bu çok önemlidir. Bir diğer önemli güncelleme, tek işlevi Java 9 kullanılarak oluşturulan uygulamaları ve programları eski Java sürümlerinde çalışacak şekilde derlemek olan Javac derleyicisinin geriye dönük uyumluluğudur.

Daha iyi JavaScript desteği

JavaScript ivme kazanmaya ve birçokları için favori olmaya devam ederken, JDK 9 JavaScript'i Java uygulamalarına yerleştirmeyi mümkün kıldı. Bütün bunlar yardımı ile yapılır. proje gergedan asıl amacı Java'da yüksek performanslı ancak hafif JavaScript çalışma zamanı oluşturmaktı. Bu elbette JDK sürüm 8'de bir JavaScript motoru sağladıklarında sağlandı. Şimdi sürüm 9'da hedefi Nashorn'un ECMAScript sözdizimi sırası olan bir ayrıştırıcı API var. Bu API'nin yaptığı şey, Project Nashorn'un dahili uygulama sınıflarına güvenmek zorunda kalmadan sunucu tarafı çerçeveler ve IDE'ler tarafından ECMAScript kodunun analizini sağlamaktır.

Çöp toplayıcı olarak G1

Yaygın inanışın aksine Java'nın bir değil dört çöp toplayıcısı vardır. Bu çöp toplayıcılar eşit yaratılmamıştır ve bu nedenle yanlış olanı seçmek uygulamada performans sorunları yaşamak anlamına gelir. Java 8'de varsayılan çöp toplayıcı Paralel/Verimli Toplayıcı idi. Bu çöp toplayıcı, önceki çöp toplayıcı (G1) ile değiştirildi. G1 toplayıcı, 4 GB'den büyük yığınları verimli bir şekilde desteklemek üzere tasarlandığından, hem küçük hem de büyük ölçekli uygulamalar için mükemmel bir çöp toplayıcıdır.

API güncellemeleri

Java geliştirme kitinin bu yeni sürümünde, API'lerde çeşitli güncellemeler yapıldı ve en dikkat çekici olanlarını ele alacağız.

Bunlardan ilki, Java.util.concurrent.Flow ve CompletableFuture içeren Java 9 eşzamanlılık güncellemeleridir. Geri basınç olan sorunu çözmeyi amaçlamaktadır. Akış, Java'nın Reaktif Akışlar API'sı hangi temelde geri basınç problemini çözmeyi amaçlamaktadır. Geri baskı, gelen isteklerin oranı, uygulamanın işleme kapasitesinden daha büyük olduğunda oluşan veri birikimidir. Uzun vadede, bu bir sorundur çünkü uygulama işlenmemiş bir veri arabelleği ile sonuçlanır. Bu güncelleme, zaman aşımlarının, gecikmelerin ve alt sınıflamanın daha iyi ele alınması anlamına gelecektir.

Güvenlik, Java'nın temel kimliğinin bir parçasıdır. Bu nedenle, yeni onaylananlar için destek HTTP 2.0 RFC büyük bir artı. HTTP 2.0 RFC, aşağıdakilerin üzerine inşa edilmiştir: Google'ın SPDY algoritması önceki HTTP 1.1'den %11.81 ile %47.7 arasında değişen hız iyileştirmeleriyle meyvelerini vermeye başladı bile. Bu istemci API'si, HTTP 1'den önce yapıldığından beri, en azından söylemek gerekirse, sorunlu olan çekirdek HTTP protokollerinin ve HttpURLConnection API'sinin bir yükseltmesidir.

Kod önbelleğe alma, uygulamaları yıllar içinde daha hızlı ve sorunsuz hale getirmek için her zaman kullanılan bir strateji olmuştur. Ancak, sınırlamaları olmadan değildir ve bu farkedilmeden gitmedi. Java 9'daki bir güncelleme, JDK 9'un önbelleğe alınmış kodları daha küçük parçalara bölerek genel performansı iyileştirdiğini açıkça göstermektedir. JDK 9, yöntem olmayan kodu atlamak için özel yineleyiciler kullanır; profilli, profilsiz ve metodsuz kodu ayırmak; ve yürütme süresi için bazı kriterlerin iyileştirilmesi.

Java 9'un Faydaları

Birçok işletme sahibi için Java 8 ile 9 arasında hiçbir fark yoktur. Ancak geliştirici için dünyalar kadar fark vardır. Bunlar, Java SE 9'un öncekilere göre sahip olduğu avantajlardır.

  • Yalnızca yönetimi ve hata ayıklaması daha kolay değil, aynı zamanda yeniden kullanılabilir, yani tüm kodu sıfırdan yazmanız gerekmeyen modüller sistemi sayesinde geliştirme hızı önemli ölçüde artacaktır.
  • Modülerleştirmeden uygulamalar için kaynak etkinliğini artırmak ve ayrıca geliştiriciler tüm JRE yerine yalnızca ihtiyaç duyulan modülleri alacağından kaynak çekmeyi daha basit hale getirmek.
  • Gibi kod parçacıklarının gerçek zamanlı analizi mikro kıyaslamalar küçük kod parçalarının performansını incelemek için kullanılır.

Kaynaklar

http://openjdk.java.net/jeps/251
https://www.romexsoft.com/blog/java-8-vs-java-9/
https://blogs.oracle.com/java/features-in-java-8-and-9
https://dzone.com/articles/5-features-in-java-9-that-will-change-how-you-deve

Eclipse Java Eğitimi