- PVSM.RU - https://www.pvsm.ru -
Не секрет, что многие Java-программисты, начиная свой путь в индустрии, уделяют большое внимание «тяжелым» технологиям — OpenJPA, Spring, JAX-RS, EJB, WS-*,… Это дает возможность как скорее влиться в современные корпоративные проекты, так и максимизировать скорость роста зарплаты.
Многие из них в конце концов «спускаются» до технологий лежащих в основе указанных фреймворков — JDBC, Servlet API, NIO/NIO.2. Однако прискорбно, что зачастую не остается время на детальное изучение самого языка и возможностей платформы.
Речь идет не о тонкостях или экзотике, а о том, что составляет существенную часть работы фреймворка: Servlet-контейнер использует множественные ClassLoader-ы, JPA2-провайдер использует манипулирование байткодом, абсолютное большинство библиотек используют Reflection API, всеобщее использование Generics только «усугубилось» с появлением функциональных интерфейсов (java.lang.function.*) и лямбд.
На недопонимание изначальной платформы (ClassLoader, Reflection API) накладываются «новвоведения» Java 5 (Generics), а теперь еще и Java 8 (методы в интерфейсах, ссылки на методы, лямбды, Stream API, JSR 308: Pluggable Type Systems). Надо обратить внимание на то, что Generics + Java 8 — это не просто языковые фичи, это частично переход к функциональному стилю программирования.
Я собрал определенное количество полезных (на мой взгляд) ссылок по следующим темам
Надеюсь кто-то сочтет их полезными.
5 августа стартует серия из 8-ми вебинаров по темам, указанным выше. Вебинары длятся 2.5-3 часа, в течении которых удается глубоко погрузится в проблематику и детали. Занятия проходят 2 раза в неделю в течении 4-х недель во вторник и пятницу в 18.00-21.00 по московскому времени.
Стоимость
При оплате до 12 июля: 225$.
При оплате до 19 июля: 250$.
При оплате до 26 июля: 275$.
При оплате после 26 июля: 300$.
email: GolovachCourses
skype: GolovachCourses
Автор: IvanGolovach
Источник [44]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/java/64146
Ссылки в тексте:
[1] docs.oracle.com: Default Methods: http://docs.oracle.com/javase/tutorial/java/IandI/defaultmethods.html
[2] oracle.com/JavaTutorial: Method References: http://docs.oracle.com/javase/tutorial/java/javaOO/methodreferences.html
[3] Lambda Expressions in Java. Reference (pages 117-124, 135-147): http://www.angelikalanger.com/Lambdas/LambdaReference.pre-release.pdf
[4] docs.oracle.com: Lambda Expressions: http://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html
[5] Lambda FAQ: http://www.lambdafaq.org/
[6] Java 8: Lambdas, Part 1: http://www.oracle.com/technetwork/articles/java/architect-lambdas-part1-2080972.html
[7] Java 8: Lambdas, Part 2: http://www.oracle.com/technetwork/articles/java/architect-lambdas-part2-2081439.html
[8] Lambda Expressions in Java. Tutorial: http://www.angelikalanger.com/Lambdas/Lambdas.pdf
[9] docs.oracle.com: Aggregate Operations: http://docs.oracle.com/javase/tutorial/collections/streams/index.html
[10] docs.oracle.com: Reduction: http://docs.oracle.com/javase/tutorial/collections/streams/reduction.html
[11] docs.oracle.com: Parallelism: http://docs.oracle.com/javase/tutorial/collections/streams/parallelism.html
[12] javadoc: java.util.stream package description: http://docs.oracle.com/javase/8/docs/api/java/util/stream/package-summary.html
[13] State of the Lambda (September 2013): http://cr.openjdk.java.net/~briangoetz/lambda/lambda-state-final.html
[14] State of the Lambda: Libraries Edition (September 2013): http://cr.openjdk.java.net/~briangoetz/lambda/lambda-libraries-final.html
[15] Interface evolution via virtual extension methods: http://cr.openjdk.java.net/~briangoetz/lambda/Defender%20Methods%20v4.pdf
[16] What’s Wrong with Java 8: Currying vs Closures: http://java.dzone.com/articles/whats-wrong-java-8-currying-vs
[17] What’s Wrong in Java 8, Part II: Functions & Primitives: http://java.dzone.com/articles/whats-wrong-java-8-part-ii
[18] What’s Wrong in Java 8, Part III: Streams and Parallel Streams: http://java.dzone.com/articles/whats-wrong-java-8-part-iii
[19] What’s Wrong in Java 8, Part IV: Monads: http://java.dzone.com/articles/whats-wrong-java-8-part-iv
[20] What’s wrong in Java 8, part V: Tuples: http://java.dzone.com/articles/whats-wrong-java-8-part-v
[21] What’s wrong in Java 8, part VI: Strictness: http://java.dzone.com/articles/whats-wrong-java-8-part-vi
[22] Жемчужины проектирования алгоритмов. Функциональный подход: http://www.ozon.ru/context/detail/id/19435989/
[23] docs.oracle.com: Annotations: http://docs.oracle.com/javase/tutorial/java/annotations/index.html
[24] Type Annotations Specification (JSR 308): http://types.cs.washington.edu/jsr308/specification/java-annotation-design.pdf
[25] The Checker Framework: http://types.cs.washington.edu/checker-framework/
[26] docs.oracle.com: Generics: http://docs.oracle.com/javase/tutorial/java/generics/index.html
[27] Adding Wildcards to the Java Programming Language: http://www-public.int-evry.fr/~gibson/Teaching/CSC7322/ReadingMaterial/TorgersenETAL04.pdf
[28] Making the future safe for the past: Adding Genericity to the JavaTM Programming Language: http://wwwold.cs.umd.edu/class/spring2001/cmsc433-0201/Lectures/gj-oopsla.pdf
[29] Generics in the Java Programming Language: http://www8.cs.umu.se/kurser/TDBB24/HT05/jem/download/generics-tutorial.pdf
[30] Adding Generics to the Java Programming Language: http://www.it-c.dk/people/kbilsted/kurser/aos2003f/session03/spec8.pdf
[31] Java Generics FAQs: http://www.angelikalanger.com/GenericsFAQ/JavaGenericsFAQ.html
[32] Java Generics and Collections: http://www.amazon.com/Java-Generics-Collections-Maurice-Naftalin/dp/0596527756/
[33] docs.oracle.com: The Reflection API: http://docs.oracle.com/javase/tutorial/reflect/
[34] Java Reflection in Action: http://www.amazon.com/Java-Reflection-Action-Ira-Forman/dp/1932394184/
[35] Mirrors: Design Principles for Meta-level Facilities of Object-Oriented Programming Languages: http://ftp.linux62.org/~glibersat/publis/p331-bracha.pdf
[36] Dynamic Class Loading in the Java Virtual Machine: http://148.206.49.174/coursdea/DynamicClassLoadingInTheJavaVirtualMachine.pdf
[37] Internals of Java Class Loading: http://www.onjava.com/pub/a/onjava/2005/01/26/classloading.html
[38] Inside Class Loaders: http://www.onjava.com/pub/a/onjava/2003/11/12/classloader.html
[39] Inside Class Loaders: Debugging: http://www.onjava.com/pub/a/onjava/2004/06/30/classloader2.html
[40] Java Lang Spec: Loading of Classes and Interfaces: http://docs.oracle.com/javase/specs/jls/se7/html/jls-12.html#jls-12.2
[41] Java Lang Spec: Linking of Classes and Interfaces: http://docs.oracle.com/javase/specs/jls/se7/html/jls-12.html#jls-12.3
[42] Java Lang Spec: Initialization of Classes and Interfaces: http://docs.oracle.com/javase/specs/jls/se7/html/jls-12.html#jls-12.4
[43] Java Lang Spec: Unloading of Classes and Interfaces: http://docs.oracle.com/javase/specs/jls/se7/html/jls-12.html#jls-12.7
[44] Источник: http://habrahabr.ru/post/228603/
Нажмите здесь для печати.