Selamun aleykum arkadaşlar sizlere elimden geldiğince java 11 ile gelen yeni yenilikleri anlatmaya çalışacağım.
Predicate from java.util.regex.Pattern
Pattern methodları olan Predicate() ve asMatchPredicate() (Java 11'den itibaren) bir Predicate <String> yollar; böylece kullandığımız regexde , örneğin data structures girdileri filtrelemek veya silmek için bir ölçüt olarak kullanılabilir.
Methodlar aşağıdaki gibidir:
Methode Implementierung
Predicate<String> asPredicate() | return s -> matcher(s).find()
Predicate<String> asMatchPredicate() | return s -> matcher(s).matches();
asPredicate() belirli bir bölümü match eder. asMatchPredicate() komple bir stringi.
ByteArrayOutputStream
ByteArrayOutputStream, yazı dahili olarak bir byte Array'de saklayan bir OutputStream'dir. Dizinin boyutu yazılı verilere göre dinamik olarak artar.
ByteArrayOutputStream()
Verileri internal bir byte Array'e eşleyen yeni bir OutputStream objekt'i oluşturur. ByteArrayOutputStream(intsize)
İstenilen başlangıç puffer capasity'ne sahip bir ByteArrayOutputStream üretir.
OutputStream olarak, ByteArrayOutputStream, tümü IOException olan tüm methodları devralır. Bu, belleğe yazan bir akışla olmaz. Bu nedenle, Java 11'de bir IOException atamayan yeni bir yöntem writeBytes(byte []) tanıtıldı. En önemli method, byte[] içeriğini toByteArray() yöntemidir.
dahili arabelleği temizler.
Kullanışlı bir yöntem
.
Onun arkasında görünmez iç alandaki bu bizim için yazan bir
. Byte Array'i bir string'e dönüştüren üç toString(...) yöntemi vardır: toString(String charsetName) ve toString(Charset charset) - Java 10'dan beri - karakter kodlaması argüman olarak iletilir ve ByteArrayOutputStream, toString() öğelerini geçersiz kılar. standart platform karakter kodlamasını alan superclass nesnesi.
Charsequence();
Java 11 ile gelen yeni bir özellikte Charsequence methodundan geliyor.
Compare(..) 2 Charsequence objekti lexicographically olarak karsilastirir.
2 stringi lexicographically olarak karsilastirir. Statik yöntem şu anda CharBuffer, Segment, String, StringBuffer, StringBuilder'ın tüm kombinasyonlarının sadece bu tek yöntemle kontrol edilebilmesi avantajına sahiptir. Karşılaştırma 0 verirse, stringlerin aynı karakterleri içerdiğini biliyoruz demektir.
Unicode toString
Unicode karakterini bir string'e dönüştürmek için static overloaded string method olan valueOf(char) kullanabiliriz. Benzer bir yöntem tam tersi için, toString(char) static yönteminde bulunur. Her iki yöntem de Unicode karakterinin yalnızca 2 byte uzunluğunda olması kısıtlaması vardır. String valueOfCodePoint(int) de bildirir. Böyle bir yöntem daha önce karakterde eksikti; Sadece Java 11'de toString(int) eklendi; dahili olarak valueOfCodePoint(int)'de.
String Control
String objektleri, temsil ettikleri karakter dizisini dahili olarak yönetir ve objektin özelliklerini açığa çıkarmak için çeşitli methodlar sağlar. Zaten length() hiç birimize yabancı değil.
String için, stringde ki karakter sayısını döndürmek için uygulanır (stringin uzunluğu). String'in karakter içermediğini öğrenmek için, length() == 0'a ek olarak isEmpty() methodunu kullanabilirsiniz. Java 11'de, String'in boş olup olmadığını veya yalnızca beyaz boşluktan oluşup oluşmadığını kontrol eden method, isBlank() eklendi; Beyaz boşluk, Character.isWhitespace(int) öğesinin doğru görüntülendiği herhangi bir karakterdir.
IslemOutput
.length()0
.isEmpty() true
".length() 1
.isEmpty() false
.isBlank() true
String s = null; s.length();NullPointerException
Repeat of String
Java 11'de bir Objektmethod olan repeat(int count) eklendi, string'in tekrarlanmasını saglar.
Örnek olarak:
Verilen String'i 3 defa tekrarlayınız;
Java 11 ile bu method gelmeden önce, buna yaklaşık kullanımlar su şekilde idi.
WhiteSpace
Bir kullanıcı girdisinde veya yapılandırma dosyasında genellikle boşluk veya sekme gibi bir metin boşluğun önemli kısmının önünde veya arkasında yer alır. İşleme başlamadan önce çıkarılmalıdır.
String sınıfı trim() ve Java 11 ile gelen, strip(),stripLeading() ve stripTrailing() öğelerinden beri sunar.
Aralarında ki fark:
MethodReplace
trim() String'in başında ve sonunda, tüm kod noktaları uzaydan küçük veya ona eşit, U + 0020 '
strip()Character.isWhitespace(int) tanımlandıktan sonra boşluk olan String'in başında ve sonunda bulunan tüm karakterler
stripLeading() strip() gibi lakin sadece String'in basini alir.
stripTrailing() strip() gibi lakin sadece String'in sonunu alir.
trim() ve stripXXX() arasında ki farklar ;
Dört method'da String'in ortasında ki boşlukları kaldırmaz.
Örnek: Bir String'i hangi çıktıda bütün boşluklar kaldırılır test edin.
HTTP Client ve WebSocket API
HTTP standardı zaten nispeten eski ve kökenleri 1990'ların başında atılmıştır. Resmi olarak, sürüm 1.0 1996'da kabul edildi, aynı zamanda Java 1.0 yayımlandı. 2015'te HTTP / 2 geçildi ve standartta birçok iyileştirme yapıldı. Ancak, HTTP etrafındaki Java class'ları, Apache HttpComponents ( Apache HttpComponents Apache HttpComponents) veya Java için Asynchronous Http ve WebSocket Client kitaplığı gibi açık kaynak kitaplıklarını içerecek şekilde güncelleştirilmemiştir (http://github.com/AsyncHttpClient / async http istemcisi boşlukları doldurdu.
Modul.java.net.http
HTTP / 2'nin yeni özellikleriyle HttpURLConnection gibi mevcut HTTP sınıflarını genişletmek yerine, Oracle java.net.http modülünü tanıttı. İlk kez, Java 9'da incubator'da teslim edildi ve Java 11'de kodlandı. Senkronize çağrılara ek olarak, modern bir CompletableFeature sunan asenkron çağrıları da yapabilirsiniz.
java.net.http içinde barındırdığı paketler ;
HttpClient
HttpRequest, HttpResponse
WebSocket
Hemen bir örneğe bakalım ;
Bütün HttpRequest Methodları abstract'tır.
HttpClient isteği yürütürse, bir HttpResponse alırız; Aşağıdaki yöntemleri bildirir:
Bir Type için body() yönteminin döndürdüğü method, HttpClient yönteminin (...) iletilen BodyHandler <T> parametresinden kaynaklanan HttpResponse <T> parametrelerini belirler:
BodyHandler burada method ile functional interface'dir.
HttpResponse.BodyHandlers sınıfında önceden tanımlanmış bazı uygulamalar var:
Geriye kalan methodlar : Javadoc
O kadar yazmışız bir indirme linki verelim;
TIKLA
TIKLA 2
Tabii daha bir çok yeniliği olmasına rağmen şu anlık anlatmak istediklerim bunlardır.
Herhangi bir sürç-ü lisan ettiysek affola .
Predicate from java.util.regex.Pattern
Pattern methodları olan Predicate() ve asMatchPredicate() (Java 11'den itibaren) bir Predicate <String> yollar; böylece kullandığımız regexde , örneğin data structures girdileri filtrelemek veya silmek için bir ölçüt olarak kullanılabilir.
Methodlar aşağıdaki gibidir:
Methode Implementierung
Predicate<String> asPredicate() | return s -> matcher(s).find()
Predicate<String> asMatchPredicate() | return s -> matcher(s).matches();
asPredicate() belirli bir bölümü match eder. asMatchPredicate() komple bir stringi.
Kod:
List<String> list = new ArrayList<>( Arrays.asList( "", "69cool", "1898", "Sisi" ) );
list.removeIf( Pattern.compile( "\\d+" ).asPredicate().or( String::isEmpty ) );
System.out.println( list ); // [Sisi]
asPredicate()'i asMatchPredicate() ile degistirdigimizde output [69cool, Sisi] olacaktir.
ByteArrayOutputStream, yazı dahili olarak bir byte Array'de saklayan bir OutputStream'dir. Dizinin boyutu yazılı verilere göre dinamik olarak artar.
Kod:
class java.io.ByteArrayOutputStream
extends OutputStream
Verileri internal bir byte Array'e eşleyen yeni bir OutputStream objekt'i oluşturur. ByteArrayOutputStream(intsize)
İstenilen başlangıç puffer capasity'ne sahip bir ByteArrayOutputStream üretir.
OutputStream olarak, ByteArrayOutputStream, tümü IOException olan tüm methodları devralır. Bu, belleğe yazan bir akışla olmaz. Bu nedenle, Java 11'de bir IOException atamayan yeni bir yöntem writeBytes(byte []) tanıtıldı. En önemli method, byte[] içeriğini toByteArray() yöntemidir.
Kod:
reset()
Kullanışlı bir yöntem
Kod:
writeTo(OutputStream out)
Onun arkasında görünmez iç alandaki bu bizim için yazan bir
Kod:
out.write(buf, 0, count)
Charsequence();
Java 11 ile gelen yeni bir özellikte Charsequence methodundan geliyor.
Compare(..) 2 Charsequence objekti lexicographically olarak karsilastirir.
Kod:
interface java.lang.CharSequence
static int compare(CharSequence cs1, CharSequence cs2)
Unicode toString
Unicode karakterini bir string'e dönüştürmek için static overloaded string method olan valueOf(char) kullanabiliriz. Benzer bir yöntem tam tersi için, toString(char) static yönteminde bulunur. Her iki yöntem de Unicode karakterinin yalnızca 2 byte uzunluğunda olması kısıtlaması vardır. String valueOfCodePoint(int) de bildirir. Böyle bir yöntem daha önce karakterde eksikti; Sadece Java 11'de toString(int) eklendi; dahili olarak valueOfCodePoint(int)'de.
String Control
String objektleri, temsil ettikleri karakter dizisini dahili olarak yönetir ve objektin özelliklerini açığa çıkarmak için çeşitli methodlar sağlar. Zaten length() hiç birimize yabancı değil.
String için, stringde ki karakter sayısını döndürmek için uygulanır (stringin uzunluğu). String'in karakter içermediğini öğrenmek için, length() == 0'a ek olarak isEmpty() methodunu kullanabilirsiniz. Java 11'de, String'in boş olup olmadığını veya yalnızca beyaz boşluktan oluşup oluşmadığını kontrol eden method, isBlank() eklendi; Beyaz boşluk, Character.isWhitespace(int) öğesinin doğru görüntülendiği herhangi bir karakterdir.
IslemOutput
.length()0
.isEmpty() true
".length() 1
.isEmpty() false
.isBlank() true
String s = null; s.length();NullPointerException
Repeat of String
Java 11'de bir Objektmethod olan repeat(int count) eklendi, string'in tekrarlanmasını saglar.
Örnek olarak:
Verilen String'i 3 defa tekrarlayınız;
Kod:
String s = tu;
System.out.println( s.repeat( 3 ) ); // tututu
Kod:
int n = 3;
String t = new String( new char[ n ] ).replace( \0, s );
System.out.println( t ); // tututu
WhiteSpace
Bir kullanıcı girdisinde veya yapılandırma dosyasında genellikle boşluk veya sekme gibi bir metin boşluğun önemli kısmının önünde veya arkasında yer alır. İşleme başlamadan önce çıkarılmalıdır.
String sınıfı trim() ve Java 11 ile gelen, strip(),stripLeading() ve stripTrailing() öğelerinden beri sunar.
Aralarında ki fark:
MethodReplace
trim() String'in başında ve sonunda, tüm kod noktaları uzaydan küçük veya ona eşit, U + 0020 '
strip()Character.isWhitespace(int) tanımlandıktan sonra boşluk olan String'in başında ve sonunda bulunan tüm karakterler
stripLeading() strip() gibi lakin sadece String'in basini alir.
stripTrailing() strip() gibi lakin sadece String'in sonunu alir.
trim() ve stripXXX() arasında ki farklar ;
Dört method'da String'in ortasında ki boşlukları kaldırmaz.
Kod:
String s = \t Elime konus lutfen.\n \t ;
System.out.println( + s.trim() + ); // Elime konus lutfen.
Kod:
boolean isBlank = .equals( s.trim() );
Alternatif:
boolean isBlank = s.trim().isEmpty();
HTTP standardı zaten nispeten eski ve kökenleri 1990'ların başında atılmıştır. Resmi olarak, sürüm 1.0 1996'da kabul edildi, aynı zamanda Java 1.0 yayımlandı. 2015'te HTTP / 2 geçildi ve standartta birçok iyileştirme yapıldı. Ancak, HTTP etrafındaki Java class'ları, Apache HttpComponents ( Apache HttpComponents Apache HttpComponents) veya Java için Asynchronous Http ve WebSocket Client kitaplığı gibi açık kaynak kitaplıklarını içerecek şekilde güncelleştirilmemiştir (http://github.com/AsyncHttpClient / async http istemcisi boşlukları doldurdu.
Modul.java.net.http
HTTP / 2'nin yeni özellikleriyle HttpURLConnection gibi mevcut HTTP sınıflarını genişletmek yerine, Oracle java.net.http modülünü tanıttı. İlk kez, Java 9'da incubator'da teslim edildi ve Java 11'de kodlandı. Senkronize çağrılara ek olarak, modern bir CompletableFeature sunan asenkron çağrıları da yapabilirsiniz.
java.net.http içinde barındırdığı paketler ;
HttpClient
HttpRequest, HttpResponse
WebSocket
Hemen bir örneğe bakalım ;
Kod:
try {
URI uri = new URI( "https://yildiztilbe.com/" );
HttpRequest request = HttpRequest.newBuilder().uri( uri ).GET().build();
HttpResponse<String> response = HttpClient.newHttpClient().send( request, BodyHandlers.ofString() );
System.out.println( response.body() );
}
catch ( URISyntaxException | IOException | InterruptedException e ) {
e.printStackTrace();
}
Kod:
abstract class java.net.http.HttpRequest
Kod:
Optional<HttpRequest.BodyPublisher> bodyPublisher()
boolean expectContinue()
HttpHeaders headers()
String method()
Builder newBuilder()
Builder newBuilder(URI uri)
Optional<Duration> timeout()
URI uri()
Version version()
HttpClient isteği yürütürse, bir HttpResponse alırız; Aşağıdaki yöntemleri bildirir:
Kod:
public interface java.net.http.HttpResponse<T>
Kod:
T body()
HttpHeaders headers()
Optional<HttpResponse<T>> previousResponse()
HttpRequest request()
Optional<SSLSession> sslSession()
int statusCode()
URI uri()
Version version()
Bir Type için body() yönteminin döndürdüğü method, HttpClient yönteminin (...) iletilen BodyHandler <T> parametresinden kaynaklanan HttpResponse <T> parametrelerini belirler:
Kod:
public abstract class java.net.http.HttpClient
Kod:
static HttpClient newHttpClient()
HttpResponse<T> send(HttpRequest req, HttpResponse.BodyHandler<T> responseBodyHandler)
Kod:
BodySubscriber<T> apply(HttpResponse.ResponseInfo responseInfo)
Kod:
public static class java.net.http.HttpResponse.BodyHandlers
Kod:
static HBodyHandler<byte[]> ofByteArray()
staticBodyHandler<Path> ofFile(Path file)
static HttpRespoBodyHandler<Stream<String>> ofLines()
static HBodyHandler<String> ofString()
O kadar yazmışız bir indirme linki verelim;
TIKLA
TIKLA 2
Tabii daha bir çok yeniliği olmasına rağmen şu anlık anlatmak istediklerim bunlardır.
Herhangi bir sürç-ü lisan ettiysek affola .