THT DUYURU

chat
Java Object Oriented Programming temeline dayanan, çok işlevli, step by step işleyen dilin dökümanlarının paylaşım alanı.

takipci
Seçenekler

Java 11 Hk.

ALcatraz' - ait Kullanıcı Resmi (Avatar)
Tamamen Askıya Alındı
Üyelik tarihi:
05/2013
Nereden:
İstanbul
Mesajlar:
4.336
Konular:
1030
Teşekkür (Etti):
974
Teşekkür (Aldı):
1837
Ticaret:
(0) %
9
16541
27-09-2018 15:55
#1
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.

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

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
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.

Kod:
reset()
dahili arabelleği temizler.

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)
. 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.

Kod:
interface java.lang.CharSequence 
 static int compare(CharSequence cs1, CharSequence cs2)
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;

Kod:
String s = „tu“;  

System.out.println( s.repeat( 3 ) );    // tututu
Java 11 ile bu method gelmeden önce, buna yaklaşık kullanımlar su şekilde idi.

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.‘
Örnek: Bir String'i hangi çıktıda bütün boşluklar kaldırılır test edin.
Kod:
boolean isBlank = „“.equals( s.trim() );


 Alternatif:


 boolean isBlank = s.trim().isEmpty();
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 ;

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();  
}
Bütün HttpRequest Methodları abstract'tır.

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)
BodyHandler burada method ile functional interface'dir.

Kod:
BodySubscriber<T> apply​(HttpResponse.ResponseInfo responseInfo)
HttpResponse.BodyHandlers sınıfında önceden tanımlanmış bazı uygulamalar var:

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()
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 .
karake, Javabex Teşekkür etti.
karake - ait Kullanıcı Resmi (Avatar)
Yeni Üye
Üyelik tarihi:
01/2018
Nereden:
Loading...
Mesajlar:
715
Konular:
37
Teşekkür (Etti):
721
Teşekkür (Aldı):
329
Ticaret:
(0) %
27-09-2018 16:07
#2
Ellerine Sağlık
---------------------
küstahlığa tahammülüm karıncanın pipisi kadar.
ZuL-RaA - ait Kullanıcı Resmi (Avatar)
Kulüpler Genel Sorumlusu
Üyelik tarihi:
12/2017
Nereden:
Seul
Mesajlar:
3.722
Konular:
275
Teşekkür (Etti):
608
Teşekkür (Aldı):
812
Ticaret:
(0) %
27-09-2018 16:13
#3
Ellerine sağlık.
---------------------
BufGix - ait Kullanıcı Resmi (Avatar)
Geliştirici
Üyelik tarihi:
08/2015
Nereden:
Phobos/Space
Mesajlar:
1.084
Konular:
74
Teşekkür (Etti):
313
Teşekkür (Aldı):
463
Ticaret:
(0) %
27-09-2018 18:24
#4
Guzel konu. Eline saglik.
---------------------
~Cahile gelmez benden hayır
Konu BufGix tarafından (30-09-2018 15:10 Saat 15:10 ) değiştirilmiştir.
xnv
xnv - ait Kullanıcı Resmi (Avatar)
E-Mail onayı yapılmamış üye
Üyelik tarihi:
08/2018
Mesajlar:
10
Konular:
1
Teşekkür (Etti):
0
Teşekkür (Aldı):
2
Ticaret:
(0) %
27-09-2018 19:19
#5
Java kullanan net yıkıktır, direkt machine code yazamayan kendine yazılımcı demesin.
ALcatraz' - ait Kullanıcı Resmi (Avatar)
Tamamen Askıya Alındı
Üyelik tarihi:
05/2013
Nereden:
İstanbul
Mesajlar:
4.336
Konular:
1030
Teşekkür (Etti):
974
Teşekkür (Aldı):
1837
Ticaret:
(0) %
27-09-2018 19:26
#6
Alıntı:
xnv´isimli üyeden Alıntı Mesajı göster
Java kullanan net yıkıktır, direkt machine code yazamayan kendine yazılımcı demesin.
Affet üstad, biz daha portakalda vitamin değiliz o konularda.
xnv
xnv - ait Kullanıcı Resmi (Avatar)
E-Mail onayı yapılmamış üye
Üyelik tarihi:
08/2018
Mesajlar:
10
Konular:
1
Teşekkür (Etti):
0
Teşekkür (Aldı):
2
Ticaret:
(0) %
27-09-2018 19:33
#7
Alıntı:
ALcatraz'´isimli üyeden Alıntı Mesajı göster
Affet üstad, biz daha portakalda vitamin değiliz o konularda.
Sorun değil krdşm, black olma yeter.

ihan3t - ait Kullanıcı Resmi (Avatar)
Geliştirici
Üyelik tarihi:
02/2012
Mesajlar:
5.017
Konular:
256
Teşekkür (Etti):
302
Teşekkür (Aldı):
1926
Ticaret:
(0) %
27-09-2018 21:22
#8
Eline sağlık dostum. Birkaç şeyi düzelteyim.

import java.util.regex.Pattern;

asPredicate since 1.8

Predicate in gösterilen methodları 1.8 den beri var zaten : https://tik.lat/zupDY

ByteArrayOutputStream since jdk 1.0 & 1.1

https://tik.lat/ogaAP

Yanlış hatırlamıyormuşum.

HttpClient gelmesi güzelde oldu saçma sapan abstractionlarla uğraşıyorduk. Gerçi apache commonsta HttpClient vardı zaten ama olsun..

---------------------
Computer Engineer.

Senior Software Engineer.
ALcatraz' - ait Kullanıcı Resmi (Avatar)
Tamamen Askıya Alındı
Üyelik tarihi:
05/2013
Nereden:
İstanbul
Mesajlar:
4.336
Konular:
1030
Teşekkür (Etti):
974
Teşekkür (Aldı):
1837
Ticaret:
(0) %
27-09-2018 21:52
#9
Alıntı:
ihan3t´isimli üyeden Alıntı Mesajı göster
Eline sağlık dostum. Birkaç şeyi düzelteyim.

import java.util.regex.Pattern;

asPredicate since 1.8

Predicate in gösterilen methodları 1.8 den beri var zaten : https://docs.oracle.com/javase/8/doc...x/Pattern.html

ByteArrayOutputStream since jdk 1.0 & 1.1

https://docs.oracle.com/javase/7/doc...putStream.html

Yanlış hatırlamıyormuşum.

HttpClient gelmesi güzelde oldu saçma sapan abstractionlarla uğraşıyorduk. Gerçi apache commonsta HttpClient vardı zaten ama olsun..


ByteArrayOutputStream'de tanitilan yeni methoddan bahsettim;

"Java 11'de bir*IOExceptionatamayan yeni bir yöntem*writeBytes(byte [])*tanıtıldı."

asPredicate();

"Predicate<String>" olarak kullanabiliyor, yeni olarak.

Senin tecrüben daha fazla dostum java'da. Eğer zaten önceden de bu methodlar var ise direkt kaldırayım.
ihan3t - ait Kullanıcı Resmi (Avatar)
Geliştirici
Üyelik tarihi:
02/2012
Mesajlar:
5.017
Konular:
256
Teşekkür (Etti):
302
Teşekkür (Aldı):
1926
Ticaret:
(0) %
27-09-2018 23:49
#10
Alıntı:
ALcatraz'´isimli üyeden Alıntı Mesajı göster
ByteArrayOutputStream'de tanitilan yeni methoddan bahsettim;

"Java 11'de bir*IOExceptionatamayan yeni bir yöntem*writeBytes(byte [])*tanıtıldı."

asPredicate();

"Predicate<String>" olarak kullanabiliyor, yeni olarak.

Senin tecrüben daha fazla dostum java'da. Eğer zaten önceden de bu methodlar var ise direkt kaldırayım.
Yok yahu tecrübeden değil, kullanmıştım daha önce hatırlıyorum hatta şuraya bak : https://docs.oracle.com/javase/8/doc...#asPredicate--

Kod:
public Predicate<String> asPredicate()
Creates a predicate which can be used to match a string.
Böyle bir açıklama var. Exception için olan doğrudur bir şey diyemeyeceğim.

Eline sağlık bilgiler için, şuraya da bari ben bir link bırakayım bir hayrım olsun : https://dzone.com/articles/java-11-api-changes-so-far

Bu da tüm javacılara gelsin : https://www.instagram.com/p/Bng6z1Gn...y=furkanemirce
---------------------
Computer Engineer.

Senior Software Engineer.

Bookmarks


« Önceki Konu | Sonraki Konu »
Seçenekler