search
Giriş
Merhabalar arkadaşlar, Sitemizi programlama ile ilgilenen bütün arkadaşlarımızın Türkçe içerik konusunda çektiği sıkıntılar düşünülerek soru/cevap şeklinde bir etkileşimde bulunabilmesi için kurduk. Umuyoruz hepimiz için güzel bir deneyim olur. Hasscript Ekibi
0 oy
300 gösterim
Her java versiyonuyla kendini güçlendiren Java , java 8 ile birlikte ne gibi yenilikler gelmişti?

Hangileri en sık kullanılyor şuan piyasada, kullananlar var mı aranızda?
Java kategorisinde 2.0k puan
yeniden etikenlendirildi
Bunun cevabını aldıktan sonra 9-10-11-12-13-14 ve nihayet 15 deki yenilikleri de sorsan güzel olur. Bence ayrı ayrı sorularla sorabilirsin.

1 cevap

0 oy

Java 8 ile beraber bir sürü özellik geldi. Geliştiricinin hayatını çok etkileyen özelliklerden birkaçını seninle paylaşayım

  • Iterator nesnesi kullanımı kolaylaştırılması için Iterable arayüzünü gerçekleştiren sınıflara .foreach metodu geldi.
    List<Integer> myList = new ArrayList<Integer>();
    for(int i=0; i<10; i++) myList.add(i);
     
    // Eskiden böyle gezilebilirken
    Iterator<Integer> it = myList.iterator();
    while(it.hasNext()){
      Integer i = it.next();
      System.out.println("Iterator Value::"+i);
    }
    		
    // artık forEach kullanılabiliyor.
    myList.forEach(new Consumer<Integer>() {
      public void accept(Integer t) {
      System.out.println("forEach anonymous class Value::"+t);
    }
    });

     

  •  interface (arayüz) geliştirirken metodların gövdesi olmadığını biliyoruz. Java 8 ile beraber artık metodların gövdeleri olabiliyor.
    default void forEach(Consumer<? super T> action) {
      Objects.requireNonNull(action);
      for (T t : this) {
        action.accept(t);
      }
    }

    Bir sınıf iki tane interface gerçekleştiriyorsa ve ikisinde de gövdesi olan aynı imzada bir metod bulunuyorsa, sınıfın bu metodu kendisi gerçekleştirmesi gerekiyor. C++ kullanırken bu tarz bir yaklaşım diamond problem diye bir soruna yol açıyordu. Keza burada da açıyor. Derleyici bu problem varsa hata fırlatacak şekilde düzenlenmiş.
  • En önemli özellikler lambda expression konusu. Başka dillerde olan ve programı yazmayı kolaylaştıran lambda yapılar buraya da geldi. Hemen birkaç kısa örnek.
    // Eski kod
    Runnable r = new Runnable(){
      @Override
      public void run() {
        System.out.println("My Runnable");
      }};
    
    // Yeni kod (lambda ile)
    Runnable  r = () -> System.out.println("My Runnable");
    

     

  • Stream API geldi. Artık collection sınıfları üzerinde işlemler yaparken .stream() altındaki metodlardan faydalanılabilir. Bayağı kod tasarrufu yaptırıyor. Az kod çok iş oluyor.
  • DateTime API geliştirmeleri
  • Collections geliştirmeleri
  • Concurrency geliştirmeleri
  • File API geliştirmeleri
6.2k puan

İlgili sorular

0 oy
2 cevap 350 gösterim
350 gösterim
Merhaba, Java 8 ile gelen interface lerde metodların default olması neyi ifade ediyor? Teşekkürler
15 Ocak 2018 Java kategorisinde erkanerkisi 211 puan sordu
0 oy
1 cevap 899 gösterim
899 gösterim
Java 8 ile beraber Lambda expression geldiğini biliyoruz. Bu nedir, nasıl kullanılır?
19 Ocak 2017 Java kategorisinde tolgacelik.art 2.0k puan sordu
0 oy
1 cevap 242 gösterim
242 gösterim
Merhaba, Java 10 ilk adımını attı ve getirdiklerini nelerdir, ne gibi faydaları ve eklentileri olacaktır? Teşekkürler
2 Nisan 2018 Java kategorisinde erkanerkisi 211 puan sordu
0 oy
1 cevap 1.7K gösterim
1.7K gösterim
Selam herkese, Spring-Data Jpa içinde JpaRepository PagingAndSortingRepository ve CrudRepository implementasyonlarının farkları nelerdir ? Hangisini neye göre tercih etmeliyiz ? Teşekkürler
26 Temmuz 2017 Java kategorisinde akotako 176 puan sordu
0 oy
1 cevap 1.3K gösterim
1.3K gösterim
Merhaba ben rastgele bir şifre oluşturmak istiyorum. Büyük küçük harf ve sayılar içeren. Bu konuda yardımcı olabilir misiniz ?
16 Mart 2020 Java kategorisinde kupanintorunu 365 puan sordu