Топ 5 на Java 8 функции за разработчици

Когато Java 8 беше пусната преди две години, общността любезно го прие, виждайки го като огромна стъпка към подобряване на Java. Неговата уникална точка за продажба е вниманието, обърнато на всеки аспект от езика за програмиране, включително JVM (Java Virtual Machine), компилаторът и други подобрения в системата за помощ.

Java е един от най-търсените езици за програмиране според индекса Tiobe за юли 2016 г., където Java е на първо място. Неговата популярност се вижда и в Livecoding, социална платформа за кодиране на живо за инженери по целия свят, където стотици и хиляди Java проекти се излъчват на живо.

И така, какво прави Java 8 невероятна? Нека обсъдим Топ 5 функции на Java 8 за разработчици.

1. Ламбда изрази

Ламбда изразите (или затварянията) са популярни във функционалното програмиране. Досега Java не ги поддържаше и затова липсваше един от най-добрите начини за писане на код. Дори езиците, базирани на JVM, Scala и Clojure имаха ламбда изрази от първия ден.

С ламбда изразите функциите могат да се използват навсякъде и могат да се третират като код. Преди това разработчиците на Java трябваше да използват анонимни класове с ламбда, които бързо могат да станат досадни и трудни за поддръжка.

Използването на ламбда изрази е лесно. Всичко, което трябва да направите, е да използвате списък с параметри или колекция, разделен със запетая, и да използвате символа “->” в тялото. Проверете примера по-долу, за да разберете синтаксиса на ламбда израза.

Arrays.asList(“k”,”l”,”m”).forEach( m -> System.out.println(m));

С ламбда израз, изпълнението на прости цикли над колекцията ще стане по-тривиално. Вижте chase1263070, докато той преминава през движението на ламбда израза в Java 8.

2. JavaScript Nashorn

Java и JavaScript никога не са били добри приятели, но с представянето на Java 8 на напълно нов JVM JavaScript двигател - Nashorn - приливът се е променил напълно.

Nashorn заимства сериозно от подобни на SpiderMonkey и V8 по отношение на скоростта на изпълнение. Той също така използва функции от Java 7, като invokeDynamic за по-бързо изпълнение и подобрява недостатъците на по-ранните версии на Java. Да не говорим за факта, че вече можете да пишете JavaScript код директно в своя Java код, без да се притеснявате за скоростта на изпълнение и други проблеми със съвместимостта.

С Nashorn оперативната съвместимост вече не е проблем и можете да издавате толкова JavaScript код, колкото искате.

3. API за дата / час

Друго чудесно допълнение към Java 8 е новият API за дата / час. Той заимства значително от времето на Joda, което се използва от разработчиците на Java, за да компенсира липсата на поддръжка. Библиотеката на API на Java е сложна по своята същност и лесно кара разработчиците да се объркат. За да компенсира проблема, Java 8 пренаписва целия API от нулата.

Друга причина за писането на API от нулата е дизайнерският недостатък в Joda, който внедряващите не искат да разпространяват вместо по-просто решение. Новите API са едновременно мощни и лесни за използване.

Ето пример за API:

//Creating Objects.

LocalDateTime a1 = LocalDateTime.now(); // this will return current date and time.

LocalDate.parse(“02:53:15”); // Simple string input

4. API за поток

Друго ново включване в Java 8, благодарение на ламбда синтаксиса, е API на потока, който позволява на разработчиците да работят с колекции. И двете ламбда функции и Stream API улесняват функционалното програмиране в Java и помагат на програмистите да напишат по-смислен код.

И така, като разработчик, как ви помага Stream API? Позволява ви лесно да работите с колекции и да ги манипулирате съответно, като броене, филтриране и др. Също така, ламбда функционалността ви помага да пишете по-опростен код. Само внимавайте да не объркате Stream API с InputStream и OutputStream.

Нека разгледаме един прост пример.

List myList =

            Arrays.asList(“k1”, “l1”, “m2”, “m3”, “j4”, “j4”, “j1”, “m1”);

myList

            .stream()

            .filter(s -> s.endsWith(“1”))

            .sorted()

            .forEach(System.out::println);

Изход: j1, k1, l1 ,, m1

Както можете да видите в горния пример, можете да дефинирате изчисление в поредица от стъпки или вложени операции, точно като Monads.

5. Едновременни акумулатори

Едно от най-големите предизвикателства пред разработчика е възможността безопасно да стартира кодовата нишка. Средният разработчик може да не е в състояние да внедри правилно нишката безопасно, тъй като има твърде много сценарии, за които да се обърне внимание, включително необходимостта от актуализиране на числовите броячи, до които има достъп от множество нишки.

С Java 8 разработчиците могат да използват едновременния клас акумулатор, който им позволява да се справят ефективно с броячите по безопасен за нишки начин.

Заключение

Java 8 изглежда носи загубената слава на Java през последните няколко години. Новите функции ще позволят на разработчиците да пишат висококачествен код и ще помогнат да се запази неговата конкурентоспособност сред останалите езици за програмиране.

Има много функции, които не разгледахме в статията. Можете да намерите целия списък с промени, като кликнете тук. Кои функции смятате, че са играчи? Коментирайте по-долу и ни уведомете!