نکته:
آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیویی برای نمایش وجود ندارد.
توضیحات دوره:
این دوره الگوهای جدید معرفی شده در Java 8 را بر اساس عبارات lambda ، رابط های عملکردی ، Collection Framework و Stream API نشان می دهد. Java 8 الگوهای جدید زیادی را برای ساخت برنامه های کارآمد و تمیز به ارمغان آورد. در این دوره ، ما یک مهمترین چیز جدید را پوشش می دهیم: عبارات لامبدا. Lambdas چیز خوبی است ، اما بدون الگوهای جدید برای پردازش داده ها بی فایده است. این الگوهای جدید به مجموعه چارچوب ، و به یک API جریان جدید اضافه شده است. این دوره به سرعت توضیح می دهد که الگوی نقشه/فیلتر/کاهش چیست و چرا به Stream API اضافه شده است. این API جدید دقیقاً شرح داده شده است: چگونگی استفاده از آن برای پردازش موثر داده ها و نحوه استفاده موازی آن. غارنوردی و موارد گوشه ای نیز نشان داده شده است.
سرفصل ها و درس ها
عبارات Lambda و رابط های عملکردی
Lambda Expressions and Functional Interfaces
-
مقدمه ای بر دوره
Introduction to the Course
-
در این دوره می خواهید چه چیزهایی یاد بگیرید؟
What Are You Going to Learn in This Course?
-
دستور کار دوره
Agenda of the Course
-
شما کی هستید؟ برای پیگیری این دوره چه باید بدانید؟
Who Are You? What Should You Know to Follow This Course?
-
دستور کار این ماژول
Agenda of This Module
-
بیان لامبدا: مقدمه ، نمونه هایی از کلاس های ناشناس
Lambda Expression: Introduction, Instances of Anonymous Classes
-
Lambda Expression: کد عبور به عنوان یک پارامتر
Lambda Expression: Passing Code as a Parameter
-
اجازه دهید اولین عبارات ساده و ساده لامبدا را بنویسیم
Let Us Write Our First, Simple Lambda Expressions
-
بیان لامبدا: سخنان و دقت ها
Lambda Expression: Remarks and Precisions
-
مراجع روش: اولین مثال با متد نمونه
Method References: A First Example with an Instance Method
-
مراجع روش: مثال دوم با روش استاتیک
Method References: A Second Example with a Static Method
-
مراجع روش: الگوی System.out.println
Method References: The System.out.println Pattern
-
نحوه ایجاد API جدید: روشهای پیش فرض و استاتیک در رابط ها
How to Create New API: Default and Static Methods in Interfaces
-
مقدمه کدگذاری زنده: مثال مقایسه کننده
Live Coding Introduction: The Comparator Example
-
پیاده سازی یک مقایسه کننده با عبارات Lambda
Implementing a Comparator with Lambda Expressions
-
مقایسه بر اساس سن ، نام خانوادگی و نام خانوادگی
Comparing by Age, Last Name, and First Name
-
Refactoring مقایسه با یک Key Extractor
Refactoring the Comparison with a Key Extractor
-
پیاده سازی روش مقایسه استاتیک Comparator.com
Implementing the Comparator.comparing Static Method
-
ساخت کلید اصلی استخراج کننده ، بازگشت اشیا قابل مقایسه
Making the Key Extractor Generic, Returning Comparable Objects
-
Chaining Comparators با روش thenComparating Default
Chaining Comparators with the thenComparing Default Method
-
نوشتن مقایسه. سپس مقایسه عملکرد
Writing the Comparator.thenComparing Implementation
-
نوشتن الگوی ایجاد و زنجیر مقایسه نهایی
Writing the Final Comparator Creation and Chaining Pattern
-
بسته بندی ماژول
Wrap-up of the Module
نوشتن توابع پردازش داده با Lambdas در جاوا 8
Writing Data Processing Functions with Lambdas in Java 8
-
معرفی ماژول
Introduction to the Module
-
رابط کاربری چیست؟ مثال اخباری
What Is a Functional Interface? The Predicate Example
-
نحوه پیاده سازی یک رابط کاربری با عبارت Lambda
How to Implement a Functional Interface with a Lambda Expression
-
چگونه کامپایلر نوع عبارت Lambda را تشخیص می دهد؟
How Does the Compiler Recognize the Type of a Lambda Expression?
-
لامبدا هنوز یک رابط با روش های قابل استفاده است
A Lambda Is Still an Interface with Usable Methods
-
رابط کاربری: تعریف کامل و دقیق
Functional Interface: The Complete and Exact Definition
-
نحوه استفاده از حاشیه نویسیFunctionalInterface
How to Use the @FunctionalInterface Annotation
-
چهار دسته بسته java.util.function
The Four Categories of the java.util.function Package
-
دسته اول: مصرف کنندگان
First Category: The Consumers
-
دسته دوم: تأمین کننده
Second Category: The Supplier
-
دسته سوم: توابع
Third Category: The Functions
-
دسته چهارم: پیش بینی ها
Fourth Category: The Predicates
-
رابط های کاربردی برای انواع اولیه جاوا
Functional Interfaces for Java Primitive Types
-
مقدمه ای بر قسمت برنامه نویسی زنده: مثال قید
Introduction to the Live Coding Section: The Predicate Example
-
نوشتن و استفاده از یک عبارت ساده و پیشگو Lambda
Writing and Using a First, Simple Predicate Lambda Expression
-
پیش بینی های زنجیره ای با عملیات AND Boolean
Chaining Predicates with the AND Boolean Operation
-
افزودن متد a و () بر روی رابط کاربری predictate
Adding a and() Method on the Predicate Functional Interface
-
پیاده سازی روش (و) پیش فرض بر روی رابط predict
Implementing the and() Default method on the Predicate Interface
-
افزودن روش پیش فرض یا () بر روی رابط predict
Adding a or() Default Method on the Predicate Interface
-
ایجاد پیش بینی ها با تماس استاتیک با یک رابط کاربری
Creating Predicates with a Static Call on a Functional Interface
-
ساخت روش isEqualsTo () Generic از رابط predict
Making the isEqualsTo() Method Generic of the Predicate Interface
-
بسته بندی کامل برنامه نویسی
Live Coding Wrap-up
-
بسته بندی ماژول ، ارائه ماژول بعدی
Module Wrap-up, Presentation of the Next Module
پردازش داده ها با استفاده از Lambdas و چارچوب مجموعه
Data Processing Using Lambdas and the Collection Framework
-
معرفی ماژول
Introduction to the Module
-
اولین روشهای تکرارپذیری ، جمع آوری و لیست
First Methods on Iterable, Collection and List
-
روش اول روی نقشه: forEach ()
First Method on Map: forEach()
-
روش های بیشتر روی نقشه: getOrDefault ()
More Methods on Map: getOrDefault()
-
روش های بیشتر روی نقشه: putIfAbsent ()
More Methods on Map: putIfAbsent()
-
روشهای بیشتر روی نقشه: جایگزین کردن () و جایگزین کردن همه ()
More Methods on Map: replace() and replaceAll()
-
الگوی جدید روی نقشه: remove ()
New Pattern on Map: remove()
-
New Patterns on Map: روش محاسبه ()
New Patterns on Map: The compute() method
-
الگوهای جدید روی نقشه: computeIfAbsent () ، computeIfPresent ()
New Patterns on Map: computeIfAbsent(), computeIfPresent()
-
ساخت نقشه های نقشه ها و نقشه های لیست ها با computeIfAbsent ()
Building Maps of Maps and Maps of Lists with computeIfAbsent()
-
New Pattern on Map: روش Merge ()
New Pattern on Map: The merge() method
-
استفاده از merge () برای ادغام دو نقشه با هم
Using merge() to Merge Two Maps Together
-
مقدمه جلسه برنامه نویسی زنده ، forEach () در عمل
Live Coding Session Introduction, forEach() in Action
-
روش های removeIf () ، alternativeAll () ، مرتب سازی () در عمل
Methods removeIf(), replaceAll(), sort() in Action
-
تنظیم مقدار پیش فرض برای map.get (): getOrDefault ()
Setting Default Value for map.get(): getOrDefault()
-
افزودن جفت کلید/مقدار پیش فرض: putIfAbsent ، computeIfAbsent
Adding Default key / value pairs: putIfAbsent, computeIfAbsent
-
ادغام نقشه ها با روش map.merge ()
Merging Maps with the map.merge() Method
-
ادغام نقشه ها: تجزیه و تحلیل نتیجه
Merging Maps: Analysis of the Result
-
کدگذاری زنده و بسته بندی ماژول
Live Coding and Module Wrap-up
اجرای فیلتر فیلتر با استفاده از Lambdas و مجموعه ها کاهش می یابد
Implementing Map Filter Reduce Using Lambdas and Collections
-
معرفی ماژول
Introduction to the Module
-
محاسبه میانگین افراد مسن تر از 20 سال ، برگرفته از یک لیست
Computing the Average of People Older than 20, Taken From a List
-
نقشه/فیلتر/کاهش: توضیح دقیق
Map / filter / reduce: A Precise Explaination
-
اولین اجرای ، به روش JDK7
A First Implementation, in the JDK7 Way
-
نگاه دقیق تر به مرحله کاهش: چگونه کار می کند؟
A Closer Look at the Reduction Step: How Does it Work?
-
اجرای موازی مرحله کاهش
Parallel Implementation of the Reduction Step
-
First Caveat: عملیات کاهش غیر مشارکتی
First Caveat: Non-associative Reduction Operations
-
چگونه می توان عملیات کاهش غیر مشارکتی را تشخیص داد
How to Detect Non-associative Reduction Operations
-
Caveat Second: کاهش Singleton
Second Caveat: Reduction of a Singleton
-
Caveat Second: کاهش مجموعه ای با چندین عنصر
Second Caveat: Reduction of a Set with Several Elements
-
هشدار دوم: کاهش که دارای عنصر هویت نیستند
Second Caveat: Reduction That Do Not Have Identity Element
-
برنامه نویسی زنده: تنظیم محیط
Live Coding: Setting up the Environment
-
شبیه سازی محاسبه موازی کاهش غیر تداعی
Simulating Parallel Computation of a Non-associative Reduction
-
کاهش غیر تداعی: عملکرد متوسط کاهش
Non-associative Reduction: The Average Reduction Operation
-
محاسبه حداکثر: کاهش بدون هیچ عنصر هویتی
Computing a Max: Reduction with No Identity Element
-
بسته بندی کامل برنامه نویسی
Live Coding Wrap-up
-
استفاده از گزینه های اختیاری برای کنترل کاهش ها بدون هیچ عنصر هویتی
Using Optionals to Handle Reductions with No Identity Element
-
در مرحله کاهش قرار دهید
Wrap-up on the Reduction Step
-
پیاده سازی به روش JDK7: نگاه دقیق تر
Implementation in the JDK7 Way: a Closer Look
-
ارزیابی CPU Load و Memory Footprint
CPU Load and Memory Footprint Evaluations
-
نمونه ای از عملیات کاهش AllMatch: بهینه سازی های از دست رفته
Example of an allMatch Reduction Operation: Lost Optimizations
-
چرا این اول است ، باید از اجرای ساده لوحانه خودداری شود
Why Is this First, Naive Implementation Should be Avoided
-
نگاهی اجمالی به اولین بار در API جریان
A First Glimpse at the Stream API
-
بسته بندی ماژول
Module Wrap-up
API جریان ، نحوه ایجاد جریان ، اولین الگوها
The Stream API, How to Build Streams, First Patterns
-
معرفی ماژول
Introduction to the Module
-
اولین تعریف فنی از رابط جریان
A First Technical Definition of the Stream Interface
-
اولین تعاریف مفهوم جریان
First Definitions of the Concept of Stream
-
مفهوم جریان نامحدود
The Notion of Unbounded Stream
-
چگونه می توان جریان ها را ایجاد کرد: جریان های خالی ، Singletons ، Varargs
How to Build Streams: Empty Streams, Singletons, varargs
-
نحوه ایجاد جریان ها: الگوی تولید کننده و تکرار کننده
How to Build Streams: The Generator and Iterator Pattern
-
نحوه ایجاد جریان در رشته ها ، عبارات منظم و پرونده های متنی
How to Build Streams on Strings, Regular Expressions, and Text Files
-
جریان. الگوی سازنده
The Stream.Builder Pattern
-
نقشه/فیلتر/الگوی نوشته شده با جریان را کاهش دهید
The map / filter / reduce Pattern Written with a Stream
-
مثال دوم از ap/فیلتر/کاهش الگو در جریان ها
A Second Example of the ap / filter / reduce Pattern on Streams
-
تماس های میانی و پایانی در جریان ها: peek () و forEach ()
Intermediate and Terminal Calls on Streams: peek() and forEach()
-
چگونه می توان تماس تلفنی را از طریق تماس ترمینال تشخیص داد
How to Tell an Intermediate Call from a Terminal Call
-
انتخاب دامنه داده ها در جریان ها: جست و خیز () و محدودیت ()
Selecting Ranges of Data in Streams: skip() and limit()
-
کاهش ساده: مسابقات ، کاهش اتصال کوتاه
Simple Reductions: Matchers, Short-circuiting Reductions
-
کاهش یاب ، استفاده از گزینه های اختیاری
Finder Reductions, Use of Optionals
-
نمونه ای از کاهش های یاب: findFirst ()، findAny ()
Example of Finder Reductions: findFirst(), findAny()
-
کاهش عمومی: استفاده از روش کاهش ()
General Reductions: Use of the reduce() Method
-
مقدمه جلسه برنامه نویسی زنده
Live Coding Session Introduction
-
نمونه ای از اولین جریان ساده ساخته شده در vararg
Example of a First Simple Stream Built on a vararg
-
ایجاد یک جریان: الگوی تولید ، استفاده از حد ()
Building a Stream: The Generate Pattern, Use of Limit()
-
ایجاد جریان: الگوی تکرار نشدنی
Building a Stream: The Iterate Pattern
-
ایجاد جریانهای اعداد تصادفی با استفاده از موارد تصادفی ()
Bulding Streams of Random Numbers Using Random.ints()
-
جمع بندی جلسه برنامه نویسی زنده
Live Coding Session Wrap-up
-
بسته بندی ماژول و دوره
Module and Course Wrap-up
نمایش نظرات