İPUCU

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

Seçenekler

Java 11 Hk.

27-09-2018 15:55
#1
ALcatraz' - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
05/2013
Nereden:
İstanbul
Mesajlar:
4.265
Teşekkür (Etti):
968
Teşekkür (Aldı):
1753
Konular:
1022
Ticaret:
(0) %
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 .
Kullanıcı İmzası
En çok ne zoruma gidiyor biliyor musun? "Ülkem" diye kaydetmiştin beni telefonuna. Kalbimi parçalara ayırdın, hani vatan bölünmezdi?

Yokluğun bilinç altımdayken , varlığın kimin altında merak ediyorum.
karake, Javabex Teşekkür etti.

27-09-2018 16:07
#2
karake - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
01/2018
Nereden:
Loading...
Mesajlar:
685
Teşekkür (Etti):
708
Teşekkür (Aldı):
314
Konular:
37
Ticaret:
(0) %
Ellerine Sağlık
Kullanıcı İmzası
küstahlığa tahammülüm karıncanın pipisi kadar.
27-09-2018 16:13
#3
atmaca7887 - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
12/2017
Nereden:
-
Mesajlar:
2.295
Teşekkür (Etti):
289
Teşekkür (Aldı):
354
Konular:
129
Ticaret:
(0) %
Ellerine sağlık.
Kullanıcı İmzası
Call Of Duty

Captain Price
Ghost
27-09-2018 18:24
#4
BufGix - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
08/2015
Nereden:
Phobos/Space
Mesajlar:
1.023
Teşekkür (Etti):
314
Teşekkür (Aldı):
443
Konular:
74
Ticaret:
(0) %
Guzel konu. Eline saglik.
Kullanıcı İmzası
~Cahile gelmez benden hayır
Konu BufGix tarafından (30-09-2018 15:10 Saat 15:10 ) değiştirilmiştir.
27-09-2018 19:19
#5
xnv - ait Kullanıcı Resmi (Avatar)
xnv
E-Mail onayı yapılmamış üye
Üyelik tarihi:
08/2018
Mesajlar:
10
Teşekkür (Etti):
0
Teşekkür (Aldı):
2
Konular:
1
Ticaret:
(0) %
Java kullanan net yıkıktır, direkt machine code yazamayan kendine yazılımcı demesin.
27-09-2018 19:26
#6
ALcatraz' - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
05/2013
Nereden:
İstanbul
Mesajlar:
4.265
Teşekkür (Etti):
968
Teşekkür (Aldı):
1753
Konular:
1022
Ticaret:
(0) %
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.
Kullanıcı İmzası
En çok ne zoruma gidiyor biliyor musun? "Ülkem" diye kaydetmiştin beni telefonuna. Kalbimi parçalara ayırdın, hani vatan bölünmezdi?

Yokluğun bilinç altımdayken , varlığın kimin altında merak ediyorum.
27-09-2018 19:33
#7
xnv - ait Kullanıcı Resmi (Avatar)
xnv
E-Mail onayı yapılmamış üye
Üyelik tarihi:
08/2018
Mesajlar:
10
Teşekkür (Etti):
0
Teşekkür (Aldı):
2
Konular:
1
Ticaret:
(0) %
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.

27-09-2018 21:22
#8
ihan3t - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
02/2012
Mesajlar:
5.005
Teşekkür (Etti):
291
Teşekkür (Aldı):
1824
Konular:
255
Ticaret:
(0) %
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..

Kullanıcı İmzası
Computer Engineer.

Senior Software Engineer.
27-09-2018 21:52
#9
ALcatraz' - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
05/2013
Nereden:
İstanbul
Mesajlar:
4.265
Teşekkür (Etti):
968
Teşekkür (Aldı):
1753
Konular:
1022
Ticaret:
(0) %
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.
Kullanıcı İmzası
En çok ne zoruma gidiyor biliyor musun? "Ülkem" diye kaydetmiştin beni telefonuna. Kalbimi parçalara ayırdın, hani vatan bölünmezdi?

Yokluğun bilinç altımdayken , varlığın kimin altında merak ediyorum.
27-09-2018 23:49
#10
ihan3t - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
02/2012
Mesajlar:
5.005
Teşekkür (Etti):
291
Teşekkür (Aldı):
1824
Konular:
255
Ticaret:
(0) %
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
Kullanıcı İmzası
Computer Engineer.

Senior Software Engineer.

Bookmarks


« Önceki Konu | Sonraki Konu »
Seçenekler

Yetkileriniz
Sizin Yeni Konu Acma Yetkiniz var yok
You may not post replies
Sizin eklenti yükleme yetkiniz yok
You may not edit your posts

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodları Kapalı
Trackbacks are Kapalı
Pingbacks are Kapalı
Refbacks are Kapalı