|
所在平台: Udemy |
课程主页: https://www.udemy.com/course/modern-java-learn-java-8-features-by-coding-it/
课程评论:没有评论
课程名称:现代Java:掌握Java 8到Java 21的特性 课程概述:本课程于2024年12月进行了全面更新,学习Java 8、Java 11、Java 17和Java 21的新特性,课程以编码为主,帮助开发者深入理解这些版本的Java特性。通过本课程,Java开发者将能够增强对新特性的认识,并在实际项目中自信地应用它们。 为什么选择本课程?课程将重点介绍Java 8的新特性,包括Lambda、Streams、Optional、函数式接口以及并行编程等。所有内容都通过编码实例进行解释,确保学员在实际开发中能够有效使用这些新功能。 课程大纲: 1. 入门:介绍课程内容。 2. 为什么选择Java 8:讨论Java 8的重要性,以及命令式编程与声明式编程的区别。 3. 工作环境设置:Mac和Windows上的Java与IntelliJ安装。 4. Lambda简介:解释Lambda的必要性、语法及实现方法。 5. Lambda与函数式接口:介绍Java 8中引入的新函数式接口。 6. 构造器和方法引用:讲解如何使用方法和构造器引用简化代码。 7. Lambda与局部变量(有效最终变量):局部变量在Lambda中的使用。 8. Streams API:深入了解Streams API的工作原理。 9. Streams API操作:介绍如何利用Streams执行各种操作。 10. Streams API工厂方法:创建Streams的不同工厂方法。 11. 数字流:介绍用于执行数字相关操作的数字流。 12. 终端操作流:如何从Streams管道中收集数据。 13. Streams API - 并行处理:使用Streams进行并行处理的技巧。 14. Optional:避免空指针异常的Optional的使用与优点。 15. 新的日期/时间库:LocalDate、LocalTime、LocalDateTime等的使用方法。 16. 局部变量类型推断(LVTI):如何使用var简化局部变量声明。 17. 文本块:增强Java中的字符串操作。 18. 增强的Switch:作为表达式的Switch,支持多行。 19. 记录类:探索Java中的记录类概念及特点。 20. 模式匹配:了解模式匹配的基础和使用。 21. 结账服务应用(实时案例):实现一个实际应用。 22. 简单Web服务器演示:展示jwebserver的工作原理。 23. 新HTTP客户端:使用支持HTTP2/Websockets的新HTTP客户端。 课程结束时,您将全面了解Java 8、Java 11、Java 17和Java 21的所有新特性,并能够在实际Java项目中应用这些知识。
[ Major Update: Complete Course updated on December 2024 ]Learn the new Java 8, Java ll, Java 17, Java 21 Features by coding it,This is a pure coding course and you will get a complete understanding of all the Java 8, Java ll, Java 17, Java 21 features by coding itWhy Should I take this course ?This course will help the Java developers to build their knowledge on the new Java 8 featuresAll the new features such as Lambdas, Streams , Optionals, Functional Interfaces and Parallel Programming will be explained via codeThis course will give you the confidence on implementing new Java 8 features in real Java projectsBy the end of this course you will have a complete understanding of new Java 8 functional featuresCourse Overview:Section 1 - Getting Started:This section explains about what will be covered in this courseSection 2 - Why Java-8 ?:This section covers Why Java 8 is important?This section explains about difference between Imperative Programming and Declarative ProgrammingSection 3 - WorkSpace Setup - Mac/Windows:This section covers the installation of Java and IntelliJ in Mac and WindowsSection 4: Introduction to LambdaThis section covers the Why Lambda is needed , Lambdas Syntax and How to implement Lambdas ?Implement the Runnable interface using LambdasImplement the Comparator interface using LambdasSection 5: Lambdas and Functional InterfacesThis section covers the new Functional Interfaces that got introduced as part of Java 8Consumer Functional InterfacePredicate Functional InterfaceFunction Functional InterfaceSupplier Functional InterfaceSection 6: Constructor and Method ReferencesThis section covers the new Method Reference and the Constructor ReferenceHow Method Reference simplifies the codeHow to use Method reference along with LambdasHow to use Constructor Reference to create new objectsSection 7: Lambdas and Local variables ( Effectively Final )This section covers the local variable and how it should used in LambdasDefinition of Effectively Final scope of a variableSection 8: Streams APIThis section covers the Streams API which is one of the important feature that got introduced as part of Java8How the Stream API Works Internally ?How Collections are different from Streams ?How to debug a Stream ?Section 9: Streams API OperationsThis section covers different Streams API operations that can be used in Streams to achieve an objectiveStreams Operations such as:map()flatMap()distinct()count()filter()reducer()Map, Filter and Reduce patternmax()min()limit()skip()allMatch(), anyMatch() and noneMatch()findAny() and findFirst()Explanation of Stream operations that are Short Circuit operationsSection 10: Streams API - Factory MethodsThis section covers different Streams API factory method that can be used to create StreamsSection 11: Numeric StreamsThis section covers the Introduction to Numeric Streams which can be used to perform some numeric related operationsSection 12: Terminal Operations StreamsThis section covers different way to collect the data from the Streams PipelineTerminal Operations such as:joining()counting()mapping()max(), min()sum()average()groupingBy()partitioningBy()Section 13: Streams API - Parallel ProcessingThis section covers how to perform the Parallel processing using StreamsHow Parallel Programming makes use of the processors in your machine to perform concurrency operations?How Parallel Programming works internally ?How to check the performance between the sequential and parallel programming ?Scenarios when not to use parallel programmingSection 14: OptionalThis section covers What is Optional and the benefits of OptionalHow Optional can help you avoid Null Pointer exceptionExploring the different operations that are part of Optional such as:empty()ofNullable()of()orElse()orElseGet()orElseThrow()isPresent()ifPresent()map()flatMap()filter()Section 12: Streams API - Parallel ProcessingThis section covers how to perform the Parallel processing using StreamsHow Parallel Programming makes use of the processors in your machine to perform concurrency operations?How Parallel Programming works internally ?How to check the performance between the sequential and parallel programming ?Scenarios when not to use parallel programmingSection 13: OptionalThis section covers What is Optional and the benefits of OptionalHow Optional can help you avoid Null Pointer exceptionExploring the different operations that are part of Optional such as:empty()ofNullable()of()orElse()orElseGet()orElseThrow()isPresent()ifPresent()map()flatMap()filter()Section 14: New Date/Time LibrariesThis section covers new Date/Time Libraries such as LocalDate, LocalTime, LocalDateTimeHow to find the difference between the LocalDate, LocalTime and LocalDateTime using Period, DurationHow to represent the time in the Machine Readable Format using InstantHow to use the TimeZone using the ZonedDateTimeHow to Format the Date using the DateTimeFormatterSection 15: Local Variable Type Inference (LVTI) using varIn this section, we will code and learn about the LVTI feauture to simply local variable declaration using type inference.Section 16: Text Blocks In this section, we will code and learn about the TextBlocks which enhances the power of String in Java.Section 17: Enhanced SwitchIn this section, we will code and learn about the new Switch which is an expression.Switch - as an ExpressionMultiline switch expression using "yield"Enhanced Switch are exhaustiveSection 18: RecordsIn this section, we will code and explore the record classes concept in Modern Java.Records ClassesCustom Constructors and Validations in Record ClassesObject Equality in Record ClasesSection 19 : Pattern MatchingIn this section, we will code and learn about pattern matching.Introduction to Pattern MatchingRecord Patterns - Pattern Matching on RecordsGuarded PatternsSection 20: ChekoutService Application [ Real Time Usecase]In this section, we will implement a realtime application using all the modern java concepts that we have learned so far.Section 21: Simple Web ServerIn this section, I will give you a demonstration of jwebserver and how it serves the files and folders as resources.Section 22: New Http ClientIn this section, we will code and explore the new HTTP Client that has support for HTTP2/Websockets.New HttpClient - GET Request to retrieve movie by IDJUnit test for the HTTP ClientBuild HTTPClient in Asynchronous modeBuild HTTP Client - GET Request to Retrieve AllMoviesSection 23: Java Platform Module System (JPMS)In this section, we will code and learn about how to build java application using JPMS or modules.Introduction to JPMSBuild a Java app using JPMSWorking with Multiple ModulesWorking with Multiple Modules - TransitivelyUnnamed Modules and Automatic ModulesBy the end of this course you will have a complete understanding of all the Java 8, Java ll, Java 17, Java 21 features and implement it in real Java projects