آموزش جاوای مدرن - با کدنویسی ویژگی های جاوا 8 را بیاموزید

Modern Java - Learn Java 8 features by coding it

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیوها:
توضیحات دوره: Lambdas، Streams، APIهای جدید Date، اختیاری و برنامه نویسی موازی را در جاوا 8 با کدگذاری آن بیاموزید. یادگیری برنامه نویسی تابعی در جاوا درک کامل Lambdas، Streams، اختیاری از طریق کد. دانش آموزان قادر خواهند بود مفاهیم جدید جاوا 8 را در زمان واقعی پیاده سازی کنند. کتابخانه های جدید تاریخ/زمان را در جاوا 8 بیاموزید استفاده از مرجع روش، نحو مرجع سازنده را بیاموزید. برنامه نویسی موازی را با استریم ها بیاموزید و درک کنید. دانش‌آموز می‌تواند دانش جاوا خود را با ویژگی‌های کاربردی جدید ارتقا دهد. این دوره به طور مداوم به روز خواهد شد. پیش نیازها:دانشجویان باید در مورد جاوا اطلاعات اولیه داشته باشند. دانش آموزان باید در مورد IDE مانند Eclipse، Intellij IDEA اطلاعات داشته باشند حداقل جاوا 8 برای این دوره مورد نیاز است. هر نسخه جاوا بزرگتر از جاوا 8 نیز کار می کند

ویژگی‌های جدید جاوا 8 را با کدگذاری آن بیاموزید. این یک دوره کد نویسی خالص است و با کدنویسی آن، درک کاملی از تمام ویژگی‌های جاوا 8 خواهید داشت.

چرا باید این دوره را بگذرانم؟

  • این دوره به توسعه دهندگان جاوا کمک می کند تا دانش خود را بر روی ویژگی های جدید جاوا 8 ایجاد کنند.

  • همه ویژگی‌های جدید مانند  Lambdas، Streams، گزینه‌ها، رابط‌های کاربردی و برنامه‌نویسی موازی از طریق کد توضیح داده می‌شوند.

  • این دوره به شما اعتماد به نفس در اجرای ویژگی‌های جدید جاوا 8 در پروژه‌های جاوا واقعی می‌دهد.

  • در پایان این دوره، درک کاملی از ویژگی‌های کاربردی جدید جاوا 8 خواهید داشت.

نمای کلی دوره: 

بخش 1 - شروع به کار:

  • این بخش در مورد آنچه در این دوره پوشش داده خواهد شد توضیح می دهد.

بخش 2 - چرا Java-8؟:

  • این بخش به این موضوع می‌پردازد که چرا جاوا 8 مهم است؟.

  • این بخش در مورد تفاوت بین برنامه نویسی ضروری و برنامه نویسی اعلامی توضیح می دهد.

بخش 3 - تنظیم فضای کاری - Mac/Windows:

  • این بخش نصب جاوا و IntelliJ در Mac و Windows را پوشش می‌دهد.

بخش 4: مقدمه ای بر لامبدا

  • این بخش به چرایی نیاز به لامبدا، نحو لامبدا و نحوه اجرای لامبدا می‌پردازد؟

  • رابط Runnable را با استفاده از Lambdas پیاده سازی کنید.

  • رابط مقایسه کننده را با استفاده از Lambdas پیاده سازی کنید.

بخش 5: لامبداها و رابط های کاربردی

  • این بخش رابط های کاربردی جدیدی را که به عنوان بخشی از جاوا 8 معرفی شده اند، پوشش می دهد.

    • رابط کاربری مصرف کننده

    • رابط عملکردی محمول

    • رابط عملکردی عملکرد

    • رابط عملکردی تامین کننده.

بخش 6: منابع سازنده و روش

  • این بخش مرجع روش جدید و مرجع سازنده را پوشش می دهد.

    • چگونه مرجع روش کد را ساده می کند.

    • نحوه استفاده از مرجع روش همراه با Lambdas.

    • نحوه استفاده از Constructor Reference برای ایجاد اشیاء جدید.

بخش 7 : متغیرهای لامبدا و محلی ( عملاً نهایی )

  • این بخش متغیر محلی و نحوه استفاده از آن در Lambdas را پوشش می‌دهد.

  • تعریف به طور موثر دامنه نهایی یک متغیر.

بخش 8 : Streams API

  • این بخش Streams API را پوشش می‌دهد که یکی از ویژگی‌های مهمی است که به عنوان بخشی از Java8 معرفی شده است.

  • Stream API در داخل چگونه کار می‌کند؟

  • مجموعه‌ها چه تفاوتی با Streams دارند؟

  • چگونه یک جریان را اشکال زدایی کنیم؟

بخش 9: عملیات API جریانی

  • این بخش عملیات‌های مختلف API Streams را پوشش می‌دهد که می‌توانند در Streams برای دستیابی به یک هدف استفاده شوند.

  • عملیات جریانی مانند:

    • map()

    • flatMap()

    • distinct()

    • count()

    • filter()

    • reducer()

    • نقشه، فیلتر و کاهش الگو.

    • max()

    • min()

    • limit()

    • skip()

    • allMatch()، anyMatch() و noneMatch()

    • findAny() و findFirst()

  • توضیح عملیات جریان که عملیات اتصال کوتاه هستند.

بخش 10 : Streams API - Factory Methods

  • این بخش روش‌های مختلف کارخانه‌ای Streams API را پوشش می‌دهد که می‌توان از آن برای ایجاد جریان استفاده کرد.

بخش 11: جریان های عددی

  • این بخش مقدمه‌ای بر جریان‌های عددی را پوشش می‌دهد که می‌توان از آن برای انجام برخی عملیات مربوط به عددی استفاده کرد.

بخش 12: جریان های عملیات ترمینال

  • این بخش روش های مختلفی را برای جمع آوری داده ها از خط لوله جریان ها پوشش می دهد.

  • عملیات ترمینال مانند:

    • پیوستن ()

    • counting()

    • نقشه نگاری()

    • max()، min()

    • sum()

    • متوسط()

    • groupingBy()

    • partitioningBy()

بخش 12: Streams API - پردازش موازی

  • این بخش نحوه انجام پردازش موازی با استفاده از Streams را پوشش می‌دهد.

  • برنامه‌نویسی موازی چگونه از پردازنده‌های دستگاه شما برای انجام عملیات همزمان استفاده می‌کند؟

  • برنامه نویسی موازی چگونه در داخل کار می کند؟

  • چگونه عملکرد بین برنامه نویسی متوالی و موازی را بررسی کنیم؟

  • سناریوهایی که نباید از برنامه نویسی موازی استفاده کرد.

بخش 12: اختیاری

  • این بخش موارد اختیاری و مزایای اختیاری را پوشش می‌دهد.

  • چگونه اختیاری می تواند به شما کمک کند از استثنای اشاره گر تهی اجتناب کنید.

  • کاوش در عملیات های مختلف که بخشی از اختیاری هستند مانند :

    • خالی()

    • ofNullable()

    • از()

    • orElse()

    • orElseGet()

    • orElseThrow()

    • isPresent()

    • ifPresent()

    • map()

    • flatMap()

    • filter()

بخش 12: کتابخانه های جدید تاریخ/زمان

  • این بخش کتابخانه‌های جدید تاریخ/زمان مانند LocalDate، LocalTime، LocalDateTime را پوشش می‌دهد.

  • نحوه ایجاد/ویرایش نمونه‌های LocalDate، LocalTime و LocalDateTime با استفاده از رویکردهای مختلف.

  • نحوه پیدا کردن تفاوت بین LocalDate، LocalTime و LocalDateTime با استفاده از Period, Duration.

  • نحوه نمایش زمان در قالب قابل خواندن ماشین با استفاده از Instant.

  • نحوه استفاده از TimeZone با استفاده از ZonedDateTime.

  • نحوه قالب‌بندی تاریخ با استفاده از DateTimeFormatter.

در پایان این دوره، درک کاملی از تمام ویژگی‌های جاوا 8 خواهید داشت و آن را در پروژه‌های جاوا واقعی پیاده‌سازی خواهید کرد.


سرفصل ها و درس ها

شروع شدن Getting Started

  • درباره دوره About Course

اسلایدهای دوره Slides for the course

  • اسلایدها Slides

چرا جاوا 8؟ Why Java 8 ?

  • چرا جاوا 8 مهم است؟ Why Java 8 is important ?

  • برنامه نویسی امری در مقابل اعلامی - مثال 1 Imperative vs Declarative Programming - Example 1

  • برنامه نویسی امری در مقابل اعلامی - مثال 2 Imperative vs Declarative Programming - Example 2

راه اندازی فضای کاری - مک WorkSpace Setup - Mac

  • راه اندازی IntelliJ Setting up IntelliJ

راه اندازی فضای کاری - ویندوز WorkSpace Setup - Windows

  • راه اندازی IntelliJ Setting up IntelliJ

کد منبع این دوره Source Code for this Course

  • کد منبع Source Code

آشنایی با لامبدا Introduction to Lambda

  • لامبدا چیست؟ What is Lambda ?

  • آزمایشگاه: اجرای Runnable با استفاده از Lambda Lab : Implement Runnable using Lambda

  • آزمایشگاه: مقایسه کننده را با استفاده از Lambda پیاده سازی کنید Lab : Implement Comparator using Lambda

لامبدا و رابط های کاربردی Lambdas and Functional Interfaces

  • مقدمه ای بر رابط های کاربردی Introduction to Functional Interfaces

  • آزمایشگاه: رابط عملکردی مصرف کننده - قسمت 1 Lab : Consumer Functional Interface - Part 1

  • آزمایشگاه: رابط عملکردی مصرف کننده - قسمت 2 Lab : Consumer Functional Interface - Part 2

  • آزمایشگاه: رابط کاربردی BiConsumer Lab : BiConsumer Functional Interface

  • آزمایشگاه: محمول - رابط عملکردی - قسمت 1 Lab : Predicate - Functional Interface - Part 1

  • آزمایشگاه: محمول - رابط عملکردی - قسمت 2 Lab : Predicate - Functional Interface - Part 2

  • آزمایشگاه: ترکیب محمول + مصرف کننده Lab : Combining Predicate + Consumer

  • آزمایشگاه: BiPredicate Lab : BiPredicate

  • آزمایشگاه: Function - Function Interface- قسمت 1 Lab : Function - Function Interface- Part 1

  • آزمایشگاه: تابع - رابط تابع - قسمت 2 Lab : Function - Function Interface- Part 2

  • آزمایشگاه: رابط عملکردی BiFunction Lab : BiFunction Functional Interface

  • آزمایشگاه: رابط عملکردی UnaryOperaror و BinaryOperator Lab : UnaryOperaror and BinaryOperator Functional Interface

  • آزمایشگاه: تامین کننده - رابط عملکردی Lab : Supplier - Functional Interface

منابع سازنده و روش Constructor and Method References

  • مرجع روش Method Reference

  • آزمایشگاه: مرجع روش - تابع Lab : Method Reference - Function

  • آزمایشگاه : مرجع روش - مصرف کننده Lab : Method Reference - Consumer

  • آزمایشگاه: Refactor بیان لامبدا به روش مرجع Lab : Refactor Lambda Expression to Method Reference

  • مرجع سازنده Constructor Reference

متغیرهای لامبدا و محلی (عملاً نهایی) Lambdas and Local variables ( Effectively Final )

  • آزمایشگاه: متغیرهای محلی در بیان لامبدا Lab : Local Variables in Lambda Expression

  • متغیرهای نهایی موثر در لامبدا و مزایای آن Effectively Final Variables in Lambda and its advantages

Streams API Streams API

  • مقدمه ای بر استریم ها Introduction to Streams

  • Stream API چگونه کار می کند؟ How Stream API works ?

  • مقایسه جریان ها با مجموعه ها Comparing Streams vs Collections

  • آزمایشگاه: چگونه عملیات جریان را اشکال زدایی کنیم؟ Lab : How to debug Stream Operations?

Stream API - عملیات Stream API - Operations

  • آزمایشگاه: عملیات جریان - map() Lab : Stream Operation - map()

  • آزمایشگاه: عملیات جریان - flatMap() Lab : Stream Operation - flatMap()

  • آزمایشگاه: عملیات جریان - distinct() , count(), sorted() Lab : Stream Operation - distinct() , count(), sorted()

  • آزمایشگاه: عملیات جریان - مرتب سازی سفارشی با استفاده از مقایسه کننده Lab : Stream Operation - Customized sort using Comparator

  • آزمایشگاه: عملیات جریان - filter() Lab : Stream Operation - filter()

  • Lab: Stream Operation - reduce() - Part 1 Lab : Stream Operation - reduce() - Part 1

  • Lab: Stream Operation - reduce() - Part 2 Lab : Stream Operation - reduce() - Part 2

  • آزمایشگاه: عملیات جریان - نقشه + فیلتر + الگوی کاهش Lab : Stream Operations - Map + Filter + Reduce Pattern

  • آزمایشگاه: عملیات جریان: حداکثر با استفاده از تابع ()reduce Lab : Stream Operation : max using reduce() function

  • آزمایشگاه: عملیات جریان - min() با استفاده از تابع کاهش. Lab : Stream Operation - min() using reduce function.

  • آزمایشگاه: عملیات جریان - limit() و skip() Lab : Stream Operation - limit() and skip()

  • آزمایشگاه: عملیات جریان allMatch()، anyMatch() و noneMatch() Lab : Stream Operation allMatch(), anyMatch() and noneMatch()

  • آزمایشگاه: عملیات جریان - findAny() و findFirst() Lab : Stream Operation - findAny() and findFirst()

  • جریان: عملیات اتصال کوتاه Streams: Short Circuiting Operations

Streams API - Factory Methods Streams API - Factory Methods

  • آزمایشگاه: عملیات جریان - of(), iterate(),gene() Lab : Streams Operation - of(), iterate(), generate()

Streams API - جریان های عددی Streams API - Numeric Streams

  • مقدمه ای بر جریان های عددی Introduction to Numeric Streams

  • آزمایشگاه: NumericStream - range() , rangeClosed(), count(), foreach() Lab : NumericStream - range() , rangeClosed(), count(), foreach()

  • آزمایشگاه: NumericStream - sum() , max(), min(), average() Lab : NumericStream - sum() , max(), min(), average()

  • آزمایشگاه: NumericStream - Boxing، Unboxing، mapToInt() Lab : NumericStream - Boxing ,Unboxing, mapToInt()

  • آزمایشگاه: NumericStream - mapToObj()، mapToDouble()، maptoLong() Lab : NumericStream - mapToObj(), mapToDouble(), maptoLong()

Streams API - عملیات ترمینال Streams API - Terminal Operations

  • آزمایشگاه: joining() Lab : joining()

  • آزمایشگاه: counting() Lab : counting()

  • آزمایشگاه: نقشه برداری () Lab : mapping()

  • آزمایشگاه: minBy() , maxBy() با استفاده از collect() Lab : minBy() , maxBy() using collect()

  • آزمایشگاه: sum() , avg() با استفاده از collect() Lab : sum() , avg() using collect()

  • آزمایشگاه: groupingBy() - نوع 1 Lab : groupingBy() - Type 1

  • آزمایشگاه: groupingBy() - نوع 2 Lab : groupingBy() - Type 2

  • آزمایشگاه: groupingBy() - نوع 3 Lab : groupingBy() - Type 3

  • آزمایشگاه: groupingBy() - maxBy()، minBy()، collectingAndThen() Lab : groupingBy() - maxBy(), minBy(), collectingAndThen()

  • آزمایشگاه: partitioningBy() Lab : partitioningBy()

Streams API - پردازش موازی Streams API - Parallel Processing

  • مقدمه ای بر جریان های موازی Introduction to Parallel Streams

  • آزمایشگاه: مقایسه عملکرد جریان های متوالی و موازی Lab : Comparing Performance of Sequential vs Parallel Streams

  • جریان موازی چگونه کار می کند؟ How Parallel Stream works ?

  • آزمایشگاه: ساخت یک خط لوله جریان موازی Lab : Build a Parallel Stream Pipeline

  • آزمایشگاه: چه زمانی نباید از جریان موازی استفاده کرد - مثال 1 Lab : When not to use Parallel Stream - Example 1

  • آزمایشگاه: چه زمانی از جریان موازی استفاده نکنیم؟ - قسمت 2 Lab : When not to use Parallel Stream ? - Part 2

اختیاری Optional

  • مقدمه ای بر اختیاری Introduction to Optional

  • آزمایشگاه : اختیاری : خالی()، ofNullable()، Of() Lab : Optional : empty(), ofNullable(), Of()

  • آزمایشگاه: orElse()، orElseGet() ,orElseThrow() Lab : orElse(), orElseGet() ,orElseThrow()

  • آزمایشگاه: ifPresent()، isPresent() Lab : ifPresent(), isPresent()

  • آزمایشگاه: map()، flatMap()، filter() - Part1 Lab : map(), flatMap(), filter() - Part1

  • آزمایشگاه: map()، flatMap()، filter() - Part2 Lab : map(), flatMap(), filter() - Part2

روش‌های پیش‌فرض/استاتیک در رابط‌ها Default/Static Methods in Interfaces

  • مقدمه ای بر روش های پیش فرض/استاتیک Introduction to Default/static Methods

  • آزمایشگاه: روش‌های پیش‌فرض Lab : Default Methods

  • آزمایشگاه: کاوش عملیات sort() با استفاده از Comparator - Part 1 Lab : Exploring sort() operations using Comparator - Part 1

  • آزمایشگاه: کاوش عملیات sort() با استفاده از Comparator - Part 2 Lab : Exploring sort() operations using Comparator - Part 2

  • آزمایشگاه: ایجاد یک رابط با روش های پیش فرض/ایستا Lab : Creating an Interface with Default/Static methods

  • کلاس های انتزاعی در مقابل رابط ها Abstract Classes vs Interfaces

  • آزمایشگاه: ارث چندگانه Lab : Multiple Inheritance

  • آزمایشگاه: ارث چندگانه - حل تعارض Lab : Multiple Inheritance - Resolving Conflicts

APIهای جدید تاریخ/زمان New Date/Time APIs

  • مقدمه ای بر کتابخانه های داده/زمان جدید Introduction to the new Data/Time Libraries

  • آزمایشگاه: LocalDate - ایجاد، مقادیر LocalDate را دریافت کنید Lab : LocalDate - Create, Get the LocalDate values

  • آزمایشگاه: LocalDate - LocalDate را تغییر دهید Lab : LocalDate - Modify the LocalDate

  • آزمایشگاه: LocalDate - توابع اضافی LocalDate Lab : LocalDate - Additional LocalDate functions

  • آزمایشگاه: زمان محلی Lab : LocalTime

  • آزمایشگاه: LocalDateTime - ایجاد/تغییر LocalDateTime Lab : LocalDateTime - Create/Modify LocalDateTime

  • آزمایشگاه: تبدیل از LocalDate/LocalTime به LocalDateTime Lab : Converting from LocalDate/LocalTime to LocalDateTime

  • آزمایشگاه: مقایسه تاریخ - دوره Lab : Comparing Dates - Period

  • آزمایشگاه: مقایسه زمان - مدت Lab : Comparing Times - Duration

  • آزمایشگاه: فوری Lab : Instant

  • آزمایشگاه: TimeZones - ZonedDateTime، ZoneId، ZoneOffset Lab : TimeZones - ZonedDateTime, ZoneId , ZoneOffset

  • آزمایشگاه: Time Zones - تبدیل Instant، LocalDateTime به ZonedDateTime Lab : TimeZones - Converting Instant,LocalDateTime to ZonedDateTime

  • آزمایشگاه: تبدیل java.util.Date/java.sql.date به LocalDate Lab : Converting java.util.Date/java.sql.date to LocalDate

  • آزمایشگاه: LocalDate را با استفاده از DateTimeFormatter قالب‌بندی/تجزیه کنید Lab : Format/parse LocalDate using DateTimeFormatter

  • آزمایشگاه: LocalTime را با استفاده از DateTimeFormatter قالب‌بندی/تجزیه کنید Lab : Format/parse LocalTime using DateTimeFormatter

  • آزمایشگاه: LocalDateTime را با استفاده از DateTimeFormatter قالب‌بندی/تجزیه کنید Lab : Format/parse LocalDateTime using DateTimeFormatter

بعد چی؟ What's Next ?

  • بعد چه می شود؟ - آموزش برنامه نویسی موازی و ناهمزمان با استفاده از API های کاربردی What's Next? - Learn Parallel and Asynchronous Programming using Functional APIs

نمایش نظرات

آموزش جاوای مدرن - با کدنویسی ویژگی های جاوا 8 را بیاموزید
جزییات دوره
11 hours
102
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
37,179
4.5 از 5
دارد
دارد
دارد
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Pragmatic Code School Pragmatic Code School

علاقه مندان به فناوری، مدرس آنلاین