Java 11 resmi olarak yayınlandı!

Java'nın ötesine geçmek için kaç dil var? Ama insanların ciddiye almadığını hiç düşünmemiştim şimdi bu Ivy League daha da eğlenceli hale geliyor.Hala Java 7/8 kullandığımızda zaten 11'e ulaşmıştı.

Beklendiği gibi, 26 Eylül'de Pekin saatinde Oracle, üretim ortamlarında kullanılmak üzere resmi olarak Java 11 (18.9 LTS) sürümünü duyurdu. Bu sürüm güncellemesi yalnızca iş verimliliğini artırmakla kalmaz, aynı zamanda HTTP / 2 sağlar İstemci API'si. Aynı zamanda, bu aynı zamanda Oracle'ın altı aylık bir güncelleme döngüsünü duyurmasından bu yana yayınlanan ilk uzun vadeli destek sürümüdür. İndirme adresi aşağıdaki gibidir:

  • https://www.oracle.com/technetwork/java/javase/downloads/jdk11-downloads-5066655.html

JDK 11 ana özellikleri

JDK 11'in en son sürümü toplam 17 güncelleme getiriyor:

  • 181: Nest Tabanlı Erişim Kontrolü (Nest Tabanlı Erişim Kontrolü)
  • 309: Dinamik Sınıf Dosya Sabitleri (Dinamik Sınıf Dosya Sabitleri)
  • 315: Aarch64 Intrinsics'i geliştirin (Aarch64'ün dahili işlevlerini geliştirin)
  • 318: Epsilon: İşlemsiz Bir Çöp Toplayıcı (Epsilon: İşlemsiz Çöp Toplayıcı)
  • 320: Java EE ve CORBA Modüllerini kaldırın (Java EE ve CORBA Modüllerini silin)
  • 321: HTTP İstemcisi (Standart) (HTTP istemcisi)
  • 323: Lambda Parametreleri için Yerel Değişken Sözdizimi (Lambda parametrelerinin değişken sözdizimi)
  • 324: Curve25519 ve Curve448 ile Anahtar Anlaşması (Curve25519 ve Curve448 algoritmalarıyla Anahtar Anlaşması)
  • 327: Unicode 10
  • 328: Uçuş Kaydedici (uçuş kaydedici)
  • 329: ChaCha20 ve Poly1305 Kriptografik Algoritmalar (ChaCha20 ve Poly1305 şifreleme algoritmaları)
  • 330: Tek Dosyalı Kaynak Kodu Programlarını başlatın (tek dosyalı kaynak kodu programlarını başlatın)
  • 331: Düşük Genel Yüklü Yığın Profili Oluşturma (düşük ek yük yığın ayırma örnekleme yöntemi)
  • 332: Taşıma Katmanı Güvenliği (TLS) 1.3 (TLS 1.3 Taşıma Katmanı Güvenliği)
  • 333: ZGC: Ölçeklenebilir Düşük Gecikmeli Çöp Toplayıcı (Deneysel) (ZGC: Ölçeklenebilir Düşük Gecikmeli Çöp Toplayıcı, deneysel aşamada)
  • 335: Nashorn JavaScript Motorunu kullanımdan kaldırın (Rhino JavaScript motorunu kullanımdan kaldırın)
  • 336: Pack200 Araçlarını ve API'yi Kullanımdan Kaldır (Pack200 Araçlarını ve API'yi Kullanımdan Kaldır)

Geliştiricinin bakış açısından, özel dikkat gerektiren yukarıdaki özelliklerden birkaçı vardır.

Bir

JEP 323, Java 10'da tanıtılan yerel değişken türü çıkarımının uzantısını uygular. Tür çıkarımı, kaynak kodun geri kalanından ve yazım kurallarından türetilen bir veri türüdür. Bu, geliştiricinin çalışma süresinden tasarruf sağlar, kaynak kodunu fazla karmaşık hale getirmez ve okunabilirliği artırır.

Java 10'dan başlayarak, yerel değişkenleri aşağıdaki gibi bildirmek için var anahtar sözcüğünü kullanabilirsiniz:

// Funktioniert seit Java 10 var zahl = 5; // int var string = "Merhaba Dünya"; // Dize var objekt = BigDecimal.ONE; // BigDecimal

Java 11'de, fark, geliştiricilerin lambda parametrelerini bildirmek için var kullanabilmesidir. İlk bakışta, bu hareket biraz gereksiz görünüyor, çünkü kod yazma sürecinde lambda parametrelerinin türlerini atlayabilir ve bunları tür çıkarımı yoluyla belirleyebilirsiniz. Ancak uzantılar, @Nonnull ve @Nullable gibi tür ek açıklamalarını kullanmak için kullanışlıdır.

// Lambda-Parametern'in Çıkarımı Tüketici < Dize > yazıcı = (var s) - > System.out.println (s); // statt s- > System.out.println (s); // aber keine Mischung von "var" ve deklarierten Typen möglich // BiConsumer < Dize, Dize > printer = (var s1, String s2) - > System.out.println (s1 + "" + s2); // Nützlich für Tür Açıklamaları BiConsumer < Dize, Dize > printer = (@Nonnull var s1, @Nullable var s2) - > System.out.println (s1 + (s2 == null? "": "" + S2));

iki

JDK 11'deki bir diğer önemli nokta, hala deneysel aşamada olan yeni HTTP İstemci API'sinin standartlaştırılmasıdır. API, JDK 9'da tanıtıldı ve JDK 10'da güncellendi. Bu süre içinde, JDK 11'deki paket adı jdk.incubator.http olarak değiştirildi. Java.net.http olarak değiştirin. HTTP'nin (1.1 ve 2) HTTP İstemci API uygulamasına ek olarak, WebSocket, eşzamanlı ve eşzamansız çağrılar ve Reaktif Akışlar da artık desteklenmektedir. Ayrıca, gelecekte diğer HTTP istemcilerinin (Apache gibi) kullanımını ortadan kaldırabilecek açık ve anlaşılması kolay bir Fluent arayüzü kullanır.

HttpClient istemci = HttpClient.newHttpClient (); HttpRequest isteği = HttpRequest.newBuilder () .uri (URI.create (" .inşa etmek(); client.sendAsync (istek, asString ()) .thenApply (HttpResponse :: body) .thenAccept (System.out :: println) .katılmak();

üç

JEP 330 (Tek Dosya Kaynak Kodu Programını Başlat) artık henüz derlenmemiş sınıfları başlatabilir. Günümüzde, özellikle betik dilleri alanında, küçük yardımcı programlar yazarken tek dosyalı programlar çok yaygındır. Geliştiriciler, programları Java ile derlemek gibi gereksiz işleri kaydedebilir ve yeni başlayanlar için giriş engellerini azaltabilir. Java 10 tabanlı bir programa başlamanın üç yolu vardır:

  • * .Class dosyası olarak
  • * .Jar dosyasındaki ana sınıf olarak
  • Modüldeki ana sınıf olarak

Artık Java 11'de, kaynak kod dosyalarında sınıfları bildirebilirsiniz:

# java HelloWorld.java // statt # javac HelloWorld.java # java -cp. merhaba.Dünya

Unix işletim sistemlerinde, Java dosyaları doğrudan Shebang dosyaları olarak bile çalıştırılabilir:

#! / java - kaynak sürümü / yolu # ./HelloWorld.java

Diğer önemli değişiklikler arasında Unicode 10 standardı desteği ve Profiler Flight Recorder'ın OpenJDK'ye entegrasyonu (önceden yalnızca Oracle JDK için geçerliydi) yer alıyor. Flight Recorder'ın amacı, sorunlar ortaya çıktığında Java uygulamalarını ve JVM'leri analiz etmek için uygulama verilerini olabildiğince verimli bir şekilde kaydetmektir.

API değişiklikleri

Ek olarak, Java sınıf kitaplığında birçok küçük değişiklik vardır. Özellikle dize:

| JShell'e Hoş Geldiniz - Sürüm 11 | Giriş türü için: / help intro // Unicode zu Dizesi jshell > Character.toString (100) 1 $ == > "d" jshell > Character.toString (66) 2 $ == > "B" // Zeichen mit Faktor multiplizieren jshell > "-". tekrar et (20) 3 $ == > "--------------------" // Enthält ein Metin keine Zeichen (höchstens Leerzeichen)? jshell > String msg = "merhaba" msg == > "Merhaba" jshell > msg.isBlank () 5 ABD doları == > yanlış jshell > Dize msg = "" msg == > "" jshell > msg.isBlank () 7 $ == > doğru // Abschneiden von führenden oder nachgelagerten Leerzeichen jshell > "merhaba dünya". şerit () 8 $ == > "Selam Dünya" jshell > "merhaba dünya". şerit () 9 $ == > "Selam Dünya" jshell > "merhaba dünya". striptrailing () 10 $ == > "Selam Dünya" jshell > "merhaba dünya". şeritLeading () 11 $ == > "Selam Dünya" jshell > "". şerit () 12 $ == > "" // Texte zeilenweise verarbeiten jshell > Dize içeriği = "bu çok satırlı bir içeriktir \ nÇoğunlukla yeni api kullanılarak \ r \ n satırlara bölüneceğimiz bir dosyadan elde edilir" içerik == > "bu çok satırlı bir içeriktir \ nÇoğunlukla yeni api kullanılarak \ r \ nyeni api kullanılarak elde edilir" jshell > content.lines (). forEach (System.out :: println) bu çok satırlı bir içeriktir Çoğunlukla bir dosyadan elde edildi hangi satırlara ayrılacağız yeni api'yi kullanarak

Java 11'in 25 Eylül'de bu ay piyasaya sürülmesi planlanıyor. Java 10'dan farklı olarak Java 11, yalnızca uzun vadeli destek sağlamakla kalmaz, aynı zamanda Java platformu için bir referans uygulaması olarak da hizmet eder. Yeni uzun vadeli destek sürümü her üç yılda bir yayınlanır. Sonraki sürüm planına göre Java 172021'de piyasaya sürülecek.

Java 11: Ne kaldırıldı?

Oracle JDK artık JavaFX'i içermeyecektir (OpenJDK bunu hiçbir zaman sağlamayacaktır). Bunun yerine JavaFX, OpenJFX aracılığıyla ayrı bir indirme olarak sağlanır ve herhangi bir Java uygulamasındaki diğer kitaplıklar gibi kullanılabilir. JavaFX'e ek olarak, Applet ve Java Web Start desteği de sonlandırılacaktır. Java Web Start'ı hala kullanmak istiyorsanız, Oracle ücretsiz güncellemeleri durdurana kadar JDK 8 sürümünde kalmanız ve hizmeti satın almak için para harcamanız gerekir.

Başka bir JavaScript motoru olan Rhino, Java 11'de kullanımdan kaldırıldı. Java'nın gelecek sürümlerinde tamamen ortadan kalkması beklenmektedir. Bununla birlikte, Rhino'nun Node.js'de sunucu tarafı JavaScript uygulamasının temeli olduğunu hiçbir zaman gerçekten iddia etmediğini belirtmek gerekir. GraalVM ile Oracle artık diğer programlama dillerini JVM'de yerel olarak çalıştırmak için başka yöntemler kullanıyor.

Bu arada, Java 11'den başlayarak, Java Runtime Environment (JRE) yalnızca sunucu sürümünde var olacak ve artık masaüstünde mevcut olmayacak. Ancak, bir modül sistemine ve jlink araçlarına sahip masaüstü uygulamaları için, geliştiriciler artık çalışma zamanı ortamını kolayca oluşturabilir veya ayarlayabilir.

JDK 11 güncellenmeye değer mi?

Oracle, bu yılın Nisan ayında JDK 8 için normal desteğin (ücretsiz güncelleme) sona ereceğini belirten resmi bir açıklama yaptı:

Ocak 2019'dan sonra Oracle, web sitesinde Java SE 8'in ticari kullanımı için başka güncelleme ve indirme yayınlamayacaktır. Güvenli hata düzeltmelerine ve güvenlik yamalarına sürekli erişim ve Java SE 8 veya önceki sürümler için kararlılık desteği için Oracle Java SE Advanced Edition, Oracle Java SE Advanced Desktop veya Oracle Java SE Suite kullanabilirsiniz.

Bu, Ocak 2019'dan sonra eski sürümü kullanmak isteyen geliştiricilerin yalnızca ödeme yapabileceği anlamına gelir.Yandan bakıldığında Oracle'ın dolaylı olarak kullanıcıları aktif olarak yükseltme yapmaya teşvik ettiği görülebilmektedir. Bununla birlikte, Jaxenter gibi Java kullanıcılarının çeşitli anketlerine göre, çoğu geliştirici hala Java 8 sürümlerinde sıkışmış durumda.

Aslında bu şaşırtıcı değil, geliştiriciler yeni sürümün neden olduğu sorunlardan ilk şikayet etmeye başladıklarında Java, herkesi hazırlıksız yakalayan bir roket ile bir sonraki sürüme güncellendi. Bundan önce Java Collection Framework'ün yaratıcısı Josh Bloch bile Java 9 modül sisteminin (Project Jigsaw) neden olduğu baş ağrılarından şikayet etti ve hatta şunları önerdi:

Project Jigsaw'un JDK dışında yaygın olarak kullanılacağını söylemek için henüz çok erken. Aynı zamanda, acil bir ihtiyacınız olmadıkça, onlardan kaçınmak en iyisidir.

Peki JDK 11'i hemen güncellemeye ve kullanmaya değer mi? Oracleın açıkladığı destek yol haritasına göre, makalenin başında belirtildiği üzere Java 11, Eylül 2026ya kadar Oracleın uzun vadeli servis desteğini alacak. Yalnızca yarım yıl teknik destek sağlayan Java 9 ve 10'un iki sürümüyle karşılaştırıldığında, JDK 11'in piyasaya sürülmesi, bireysel geliştiriciler ve kuruluşlar için şüphesiz iyi bir şeydir.

Peki, yeni özellikleriyle birlikte JDK 11'e güncelleme yapmayı seçer miydiniz?

referans:

https://jaxenter.de/java-11-features-news-75411

Önerilen Kaynaklar:

  • "Fights Break Sphere" i analiz etmek ve bunun çürümüş bir film mi yoksa denizden bir miras mı olduğunu analiz etmek için Python kullanın?
  • Programcılar en çok ne tür proje yöneticilerini sever?
  • Tencent'in 23 yaşındaki programcısı, otelin WiFi ağını alenen kırdığı için tutuklandı!
  • Linux'un babası özür diledi, ancak programcı katkı kodunu geri çekmekle tehdit etti!

"Belgeler için çağrı"

CSDN halka açık hesabı, "on binlerce teknik insanla büyüme" kavramına bağlıdır. Teknik insanların ilk kez ilgilendikleri endüstri odak olaylarını teknik insanların benzersiz bakış açılarından tanımlamak için yalnızca "inek başlıkları" ve "konuşma" sütunlarını kullanmakla kalmaz, aynı zamanda "Teknoloji Başlıkları" sütunu, sektördeki popüler teknolojilerin ve uygulamaların derinlemesine bir yorumunu sunarak, tüm geliştiricilerin teknolojik trendlere ayak uydurmasına, uyanık bir teknolojik anlayışı sürdürmesine ve sektör eğilimleri ve teknolojileri hakkında daha kapsamlı bir anlayışa sahip olmasına olanak tanır.

Yüksek kaliteli makaleleriniz veya sektörün sıcak olayları, teknoloji trendleri hakkında içgörüler veya derinlemesine uygulama uygulamaları, senaryolar vb. Hakkında yeni içgörüleriniz varsa, gönderimler için lütfen CSDN ile iletişime geçin. İletişim: WeChat (guorui_1118, lütfen gönderim + ad + şirket pozisyonunu not edin), e-posta (guorui@csdn.net).

Düzenlenmiş endüstrilerin katma değeri eyalette ilk sıraya yükseldi Ningbo'nun endüstriyel ekonomisi neden daha hızlı ve daha hızlı çalışıyor?
önceki
Jimnastik Olimpiyat şampiyonu: Tayland'ı kazanmak çok zor, değil mi?
Sonraki
Yeni nesil Toyota HIACE resmi olarak piyasaya sürüldü, daha rahat ve daha pratik
Huang Zhang: Meizu 16 en iyi tam ekran çözümüdür ve yoğun uygulama gerektirir
Belediye Konut ve Kentsel-Kırsal Kalkınma Komisyonu'nun yetkili yorumu, Dongxi Şehri gönüllü olarak kirayı çeker ve doğrudan kamu konutunu yönetir, ortak bir mülk için başvurabilir
Hotan hünnapı, Tibet tıbbı yak eti, Qinghai siyah wolfberry ... Yeni yıl ürünleri satın almak için yeni bir yer
Okuma: Ulusal Futbol Asya Kupası çeyrek finalleriZorlu Çin-Tayland savaşıMourinho
En yüksek düşüş% 35! Bu eski sıcak arabaların altını satın alma zamanı
ASUS, ROG Strix RX 590 grafik kartını çıkardı: diğerleri 1999 satıyor, 2999 satıyor
Qingdao'nun inşaat endüstrisinin "iki büyük eylemi", kronik hastalıkların iki yıllık ve üç aşamalı özel tedavisini başlattı.
On dakikada işlevsel Python nasıl öğrenilir?
2019 Qingdao memur işe alım iş listesi yayınlandı! 308 kişiyi işe alın! Kayıt 22'sinde başlıyor!
Kralın ihtişamı içinde yapabileceğiniz bir şey! Hiç yaptın mı
Beş yıl mezun olduktan sonra aynı yurtta kalan programcıların şu anki durumu: bazılarının yıllık maaşı bir milyon, bazılarının aylık maaşı 10.000
To Top