جاوای مدرن: تسلط به ویژگیهای جاوا 8 تا جاوا 25
✅ سرفصل و جزئیات آموزش
آنچه یاد خواهید گرفت:
- یادگیری ویژگیهای جاوا 8، جاوا 11، جاوا 17 و جاوا 21 از طریق کدنویسی.
- آموزش برنامهنویسی تابعی در جاوا
- درک کامل Lambdas ،Streams و Optional از طریق کد
- دانشجویان قادر خواهند بود مفاهیم جدید جاوا 8 را به صورت بلادرنگ پیادهسازی کنند.
- آموزش ساخت پایپ لاین پیچیده Streams
- یادگیری کتابخانههای جدید تاریخ و زمان در جاوا 8
- آموزش استفاده از سینتکس Method Reference و Constructor reference
- یادگیری و درک برنامهنویسی موازی با Streams
- دانشجو قادر خواهد بود دانش جاوای خود را با ویژگیهای تابعی جدید ارتقا دهد.
- این دوره به طور مداوم بروزرسانی خواهد شد.
- مباحث LVTI ،TextBlocks ،Enhanced Switch و کلاسهای Record
- یادگیری Pattern Matching برای نوشتن کدهای مختصر و ساختاریافته
- استفاده از کلاسهای Sealed برای اعمال وراثت کنترلشده
- سیستم ماژول پلتفرم جاوا (JPMS) و مزایای آن
- تمامی ویژگیهای جدید در جاوای مدرن
پیشنیازهای دوره
- دانشجویان باید دانش اولیه در مورد جاوا داشته باشند.
- دانشجویان باید با محیطهای توسعه مانند Eclipse یا IntelliJ IDEA آشنا باشند.
- حداقل جاوا 8 برای این دوره مورد نیاز است. هر نسخهای بالاتر از جاوا 8 نیز قابل استفاده است.
توضیحات دوره
ویژگیهای جدید جاوا 8، جاوا 11، جاوا 17، جاوا 21 و جاوا 25 را با کدنویسی بیاموزید. این یک دوره کاملاً مبتنی بر کدنویسی است و مدرس با تمرینات عملی، درک کاملی از تمام ویژگیهای این نسخهها به شما ارائه میدهد.
چرا باید این دوره را بگذرانید؟
- این دوره به توسعهدهندگان جاوا کمک میکند تا دانش خود را در مورد ویژگیهای جدید جاوا 8 ارتقا دهند.
- تمام ویژگیهای جدید مانند Lambdas ،Streams ،Optionals Functional Interfaces و برنامهنویسی موازی از طریق کد توضیح داده میشوند.
- این دوره به شما اعتماد به نفس لازم برای پیادهسازی ویژگیهای جدید جاوا 8 در پروژههای واقعی جاوا را میدهد.
- تا پایان این دوره، درک کاملی از ویژگیهای تابعی جدید جاوا 8 خواهید داشت.
بررسی دوره:
بخش 1 - شروع کار:
این بخش در مورد آنچه در این دوره پوشش داده خواهد شد توضیح میدهد.
بخش 2 - چرا جاوا 8؟:
- این بخش به اهمیت جاوا 8 میپردازد.
- مدرس در این بخش تفاوت بین برنامهنویسی دستوری و برنامهنویسی اعلامی را توضیح میدهد.
بخش 3 - راه اندازی محیط کار - مک/ویندوز:
این بخش شامل نصب جاوا و IntelliJ در مک و ویندوز است.
بخش 4: معرفی Lambda
- این بخش شامل چرایی نیاز به Lambda، سینتکس آن و چگونگی پیادهسازی آن است.
- پیادهسازی رابط Runnable با استفاده از Lambda
- پیادهسازی رابط Comparator با استفاده از Lambda
بخش 5: Lambdaها و رابطهای تابعی
- این بخش رابطهای تابعی جدیدی را که در جاوا 8 معرفی شدهاند پوشش میدهد:
- رابط تابعی Consumer
- رابط تابعی Predicate
- رابط تابعی Function
- رابط تابعی Supplier
بخش 6: مراجع متد و سازنده
این بخش شامل مراجع متد و سازنده جدید است:
- چگونه Method Reference کد را سادهتر میکند؟
- چگونه از Method Reference همراه با Lambdaها استفاده کنیم؟
- چگونه از Constructor Reference برای ایجاد آبجکت های جدید استفاده کنیم؟
بخش 7: Lambdaها و متغیرهای محلی
- این بخش متغیرهای محلی و چگونگی استفاده از آنها در Lambdaها را پوشش میدهد.
- تعریف محدوده Effectively Final برای یک متغیر.
بخش 8: API استریم
- این بخش Streams API را که یکی از مهمترین ویژگیهای معرفی شده در جاوا 8 است، پوشش میدهد.
- Stream API چگونه به صورت داخلی کار میکند؟
- تفاوت Collectionها با Streamها در چیست؟
- چگونه یک Stream را دیباگ کنیم؟
بخش 9: عملیات API استریم
- این بخش عملیاتهای مختلف Streams API را برای دستیابی به اهداف برنامهنویسی پوشش میدهد.
- عملیاتهایی مانند:
- ()map
- ()flatMap
- ()distinct
- ()count
- ()filter
- ()reducer
- الگوی Map ،Filter و Reduce
- ()max
- ()min
- ()limit
- ()skip
- ()allMatch() ،anyMatch و ()noneMatch
- ()findAny و ()findFirst
- توضیح عملیاتهای Short Circuit در استریم
بخش 10: متدهای کارخانهای در استریم
این بخش متدهای کارخانهای مختلف برای ایجاد استریمها را پوشش میدهد.
بخش 11: استریمهای عددی
- این بخش شامل مقدمهای بر استریمهای عددی است که میتوان از آنها برای انجام برخی عملیاتهای مرتبط با اعداد استفاده کرد.
بخش 12: عملیاتهای پایانی در استریمها
این بخش روشهای مختلف جمعآوری دادهها از پایپ لاین استریم را پوشش میدهد.
- عملیاتهای پایانی مانند:
- ()joining
- ()counting
- ()mapping
- ()max() ،min
- ()sum
- ()average
- ()groupingBy
- ()partitioningBy
بخش 13: API استریم - پردازش موازی
- این بخش چگونگی انجام پردازش موازی با استفاده از استریمها را پوشش میدهد.
- برنامهنویسی موازی چگونه از پردازندههای سیستم برای انجام عملیات همزمان استفاده میکند؟
- برنامهنویسی موازی چگونه به صورت داخلی کار میکند؟
- چگونه کارایی را بین برنامهنویسی ترتیبی و موازی مقایسه کنیم؟
- سناریوهایی که نباید از برنامهنویسی موازی استفاده کرد.
بخش 13: Optional
- این بخش به بررسی مفهوم Optional و مزایای استفاده از آن در برنامهنویسی میپردازد.
- چگونه Optional میتواند به شما در جلوگیری از خطای Null Pointer Exception کمک کند؟
- در این بخش، عملیاتهای مختلفی که بخشی از کلاس Optional هستند، بررسی میشوند؛ از جمله:
- ()empty
- ()ofNullable
- ()of
- ()orElse
- ()orElseGet
- ()orElseThrow
- ()isPresent
- ()ifPresent
- ()map
- ()flatMap
- ()filter
بخش 14: کتابخانههای جدید Date/Time
- این بخش به بررسی کتابخانههای جدید Date/Time در جاوا از جمله LocalDate ،LocalTime و LocalDateTime میپردازد.
- چگونگی یافتن تفاوت بین مقادیر LocalDate ،LocalTime و LocalDateTime با استفاده از کلاسهای Period و Duration
- چگونگی نمایش زمان در قالب قابل درک برای ماشین با استفاده از Instant
- چگونگی کار با منطقه زمانی با استفاده از ZonedDateTime
- چگونگی تغییر فرمت و نمایش دلخواه تاریخ با استفاده از DateTimeFormatter
بخش 15: استنتاج نوع متغیر محلی (LVTI) با استفاده از var
- در این بخش، مدرس به آموزش قابلیت LVTI میپردازد. دانشجویان با کدنویسی یاد میگیرند که چگونه با استفاده از استنتاج نوع، فرآیند تعریف متغیرهای محلی را سادهتر کنند.
بخش 16: بلوکهای متنی
- در این بخش، مدرس قابلیت Text Blocks را معرفی میکند که قدرت کار با رشتهها در جاوا را به شکل چشمگیری افزایش میدهد.
بخش 17: Switch ارتقا یافته
- در این بخش، مدرس به آموزش ساختار جدید Switch میپردازد که در نسخههای جدید جاوا به عنوان یک Expression عمل میکند.
- Switch به عنوان یک Expression
- عبارات Switch چندخطی
- Switch پیشرفته بهصورت Exhaustive
بخش 18: Records
- در این بخش، مدرس مفهوم کلاسهای Record را در جاوای مدرن بررسی و پیادهسازی میکند.
- کلاسهای Record
- سازندههای سفارشی و تایید اعتبار
- برابری آبجکت در Record Clases
بخش 19: تطبیق الگو
- در این بخش، مدرس به آموزش مفهوم Pattern Matching و کاربردهای آن در سادهسازی کدهای شرطی میپردازد.
- مقدمهای بر تطبیق الگو
- الگوهای Record – تطبیق الگو روی Recordها
- الگوهای نگهبان
بخش 20: اپلیکیشن CheckoutService [نمونه بلادرنگ ]
- در این بخش، یک اپلیکیشن بلادرنگ با استفاده از تمام مفاهیم مدرن جاوا که تا اینجای دوره آموزش داده شده است، پیادهسازی خواهد شد.
بخش 21: وبسرور ساده
- در این بخش، مدرس چگونگی کار با jwebserver را نمایش میدهد که این ابزار چگونه فایلها و پوشهها را به عنوان منابع در شبکه سرویسدهی میکند.
بخش 22: کلاینت جدید HTTP
- در این بخش، کلاینت جدید HTTP Client که از پروتکلهای HTTP2 و Websockets پشتیبانی میکند، بررسی و کدنویسی خواهد شد.
- HttpClient جدید: پیادهسازی درخواست GET برای بازیابی اطلاعات یک فیلم بر اساس ID
- تست JUnit: چگونگی نوشتن تستهای JUnit برای صحتسنجی عملکرد HTTP Client
- حالت ناهمزمان: ساخت و پیکربندی HttpClient در حالت Asynchronous
- بازیابی لیست کامل: ساخت HTTP Client برای ارسال درخواست GET جهت دریافت لیست تمام فیلمها
بخش 23: سیستم ماژول پلتفرم جاوا (JPMS)
- در این بخش، چگونگی ساخت اپلیکیشنهای جاوا با استفاده از سیستم JPMS یا همان ماژولها آموزش داده میشود.
- معرفی JPMS و ساخت یک اپلیکیشن جاوا با استفاده از JPMS
- کار با چندین ماژول
- کار با چندین ماژول بهصورت انتقالپذیر
- ماژولهای بدون نام و ماژولهای خودکار
تا پایان این دوره، شما درک کاملی از ویژگیهای جاوا 8، 11، 17 و 21 خواهید داشت و میتوانید آنها را در پروژههای واقعی پیادهسازی کنید.
این دوره برای چه کسانی مناسب است؟
- هر کسی که مایل به یادگیری ویژگیهای جدید جاوا مانند Lambdas ،Streams، برنامهنویسی موازی و غیره است.
- توسعهدهندگان جاوا که میخواهند دانش خود را برای نوشتن کدهای خواناتر و مختصرتر به سطح بعدی ارتقا دهند.
جاوای مدرن: تسلط به ویژگیهای جاوا 8 تا جاوا 25
-
معرفی دوره 03:02
-
پیشنیازها 01:54
-
مقدمهای بر جاوای مدرن: نگاه کلی 07:10
-
نصب جاوا 06:54
-
چرا جاوا 8 مهم است؟ 05:16
-
برنامهنویسی دستوری در مقابل اعلامی - مثال 1 06:24
-
برنامهنویسی دستوری در مقابل اعلامی - مثال 2 05:27
-
لامبدا چیست؟ 02:29
-
آزمایشگاه: پیادهسازی Runnable با استفاده از Lambda 14:01
-
آزمایشگاه: پیادهسازی Comparator با استفاده از Lambda 07:53
-
معرفی رابطهای تابعی 02:27
-
آزمایشگاه: رابط تابعی Consumer - بخش 1 04:30
-
آزمایشگاه: رابط تابعی Consumer - بخش 2 12:43
-
آزمایشگاه: رابط تابعی BiConsumer 09:44
-
آزمایشگاه: رابط تابعی Predicate - بخش 1 10:09
-
آزمایشگاه: رابط تابعی Predicate - بخش 2 10:17
-
آزمایشگاه: ترکیب Predicate و Consumer 06:52
-
آزمایشگاه: رابط BiPredicate 03:51
-
آزمایشگاه: رابط تابعی Function - بخش 1 09:31
-
آزمایشگاه: رابط تابعی Function - بخش 2 06:03
-
آزمایشگاه: رابط تابعی BiFunction 05:51
-
آزمایشگاه: رابطهای تابعی UnaryOperator و BinaryOperator 08:37
-
آزمایشگاه: رابط تابعی Supplier 04:21
-
مرجع متد 03:08
-
آزمایشگاه: مرجع متد در رابط Function 03:28
-
آزمایشگاه: مرجع متد در رابط Consumer 04:11
-
آزمایشگاه: بازنویسی عبارت لامبدا به مرجع متد 05:09
-
مرجع سازنده 04:50
-
آزمایشگاه: متغیرهای محلی در عبارت لامبدا 06:10
-
متغیرهای Effectively Final در لامبدا و مزایای آن 01:28
-
معرفی استریمها 10:53
-
API استریم چگونه کار میکند؟ 06:25
-
مقایسه استریمها در مقابل مجموعهها 06:58
-
آزمایشگاه: چگونه عملیاتهای استریم را دیباگ کنیم؟ 04:55
-
آزمایشگاه: عملیات استریم - ()map 08:21
-
آزمایشگاه: عملیات استریم - ()flatMap 06:27
-
آزمایشگاه: عملیات استریم - ()distinct() ،count و ()sorted 05:35
-
آزمایشگاه: مرتبسازی سفارشی با استفاده از Comparator 07:43
-
آزمایشگاه: عملیات استریم - ()filter 05:39
-
آزمایشگاه: عملیات استریم - ()reduce - بخش 1 12:39
-
آزمایشگاه: عملیات استریم - ()reduce - بخش 2 05:37
-
آزمایشگاه: الگوی Map + Filter + Reduce در استریم 08:52
-
آزمایشگاه: یافتن بیشینه با تابع ()reduce 10:13
-
آزمایشگاه: یافتن کمینه با تابع ()reduce 05:01
-
آزمایشگاه: عملیات استریم - ()limit و ()skip 07:07
-
آزمایشگاه: عملیاتهای تطبیق در استریم 06:25
-
آزمایشگاه: عملیاتهای ()findAny و ()findFirst 08:03
-
استریمها: عملیاتهای اتصال کوتاه 03:41
-
توابع بدون استیت در مقابل با استیت 08:10
-
آزمایشگاه: متدهای ()of() ،iterate و ()generate 07:44
-
معرفی استریمهای عددی 06:00
-
آزمایشگاه: کار با متدهای محدوده و تکرار در استریمهای عددی 06:20
-
آزمایشگاه: عملیات محاسباتی در استریمهای عددی 06:24
-
آزمایشگاه: مفاهیم Boxing ،Unboxing و mapToInt 06:42
-
آزمایشگاه: تبدیل استریمهای عددی به انواع دیگر 05:51
-
آزمایشگاه: عملیات ()joining 06:01
-
آزمایشگاه: عملیات ()counting 03:07
-
آزمایشگاه: عملیات ()mapping 03:49
-
آزمایشگاه: استفاده از minBy و maxBy در متد collect 04:28
-
آزمایشگاه: مجموع و میانگین با استفاده از collect 04:13
-
آزمایشگاه: دستهبندی با groupingBy - نوع 1 07:43
-
آزمایشگاه: دستهبندی با groupingBy - نوع 2 06:48
-
آزمایشگاه: دستهبندی با groupingBy - نوع 3 03:34
-
آزمایشگاه: groupingBy با استفاده از maxBy ،minBy و collectingAndThen 06:04
-
آزمایشگاه: افراز دادهها با partitioningBy 06:03
-
معرفی استریمهای موازی 03:33
-
آزمایشگاه: مقایسه کارایی استریمهای ترتیبی در مقابل موازی 05:43
-
استریم موازی چگونه کار میکند؟ 02:54
-
آزمایشگاه: ساخت یک پایپ لاین استریم موازی 04:36
-
آزمایشگاه: چه زمانی نباید از استریم موازی استفاده کرد - مثال 1 05:38
-
آزمایشگاه: چه زمانی نباید از استریم موازی استفاده کرد - بخش 2 04:48
-
معرفی کلاس Optional 12:18
-
آزمایشگاه: متدهای ()empty() ،ofNullable و ()Of 06:47
-
آزمایشگاه: متدهای ()orElse() ،orElseGet و () orElseThrow 09:43
-
آزمایشگاه: متدهای ()ifPresent و ()isPresent 04:03
-
آزمایشگاه: متدهای ()map() ،flatMap و ()filter - بخش 1 06:23
-
آزمایشگاه: متدهای ()map() ،flatMap و ()filter - بخش 2 08:47
-
معرفی متدهای پیشفرض و استاتیک 02:51
-
آزمایشگاه: متدهای پیشفرض 07:26
-
آزمایشگاه: بررسی عملیات مرتبسازی با Comparator - بخش 1 11:22
-
آزمایشگاه: بررسی عملیات مرتبسازی با Comparator - بخش 2 04:01
-
آزمایشگاه: ساخت یک رابط با متدهای پیشفرض و استاتیک 13:24
-
کلاسهای انتزاعی در مقابل رابط ها 01:06
-
آزمایشگاه: وراثت چندگانه 07:57
-
آزمایشگاه: وراثت چندگانه و رفع تداخلها 02:47
-
معرفی کتابخانههای جدید Data/Time 06:10
-
آزمایشگاه: LocalDate - ساخت و دریافت مقادیر 07:18
-
آزمایشگاه: LocalDate - اصلاح مقادیر 06:52
-
آزمایشگاه: توابع تکمیلی LocalDate 08:13
-
آزمایشگاه: کار با LocalTime 15:35
-
آزمایشگاه: ساخت و اصلاح LocalDateTime 09:39
-
آزمایشگاه: تبدیل انواع تاریخ و زمان به یکدیگر 05:11
-
آزمایشگاه: مقایسه تاریخها با کلاس Period 11:00
-
آزمایشگاه: مقایسه زمانها با کلاس Duration 07:51
-
آزمایشگاه: کار با کلاس Instant 06:15
-
آزمایشگاه: کار با مناطق زمانی در جاوا 15:51
-
آزمایشگاه: تبدیل زمان محلی به زمان همراه با منطقه زمانی 05:55
-
آزمایشگاه: تبدیل تاریخهای قدیمی جاوا به LocalDate 08:21
-
آزمایشگاه: فرمتبندی و پارس LocalDate 14:52
-
آزمایشگاه: فرمتبندی و پارس LocalTime 08:42
-
آزمایشگاه: فرمتبندی و پارس LocalDateTime 09:27
-
راهاندازی پروژه 04:45
-
راهاندازی دستیار Copilot 04:53
-
سادهسازی متد Main با استفاده از Compact Main 03:02
-
پیادهسازی Compact Main با کمک هوش مصنوعی 03:02
-
استنتاج نوع متغیر محلی چیست؟ 07:52
-
محدودیتهای استفاده از var 02:40
-
بلوکهای متنی - تقویت قدرت کار با رشتهها 08:46
-
سوئیچ به عنوان یک عبارت 08:36
-
عبارت سوئیچ چندخطی با استفاده از yield 02:53
-
بررسی ویژگی جامعیت در سوئیچ 02:58
-
کلاسهای Record 06:50
-
سازندههای سفارشی و اعتبارسنجی در رکوردها 07:46
-
بررسی برابری آبجکت در کلاسهای رکورد 03:32
-
معرفی کلاسها و انواع Sealed 06:38
-
زیرکلاسهای کلاسهای Sealed 03:56
-
استفاده از sealed در کلاسهای انتزاعی 02:53
-
استفاده از sealed در رابط ها 02:56
-
معرفی تطبیق الگو 08:53
-
الگوهای رکورد - تطبیق الگو روی رکوردها 05:37
-
الگوهای محافظت شده 03:14
-
متغیرهای بدون نام در جاوا: نادیده گرفتن تمیز با _ [AI Coding] 08:48
-
استفاده از متغیرهای بدون نام همراه با تطبیق الگو 06:12
-
نمای کلی اپلیکیشن 04:42
-
پیادهسازی سرویس پرداخت با استفاده از کلاسهای Sealed 13:58
-
معرفی Stream Gatherers 11:17
-
()Gatherers.windowFixed با کد Copilot محور 06:39
-
()Gatherers.windowFixed در کدنویسی با هوش مصنوعی 06:39
-
()Gatherers.windowSliding 05:09
-
()Gatherers.fold 08:52
-
()Gatherers.scan 03:40
-
()Gatherers.mapConcurrent 06:54
-
ترکیب Gathererها با کمک هوش مصنوعی 05:55
-
ساخت Gathererهای سفارشی: فیلتر و تبدیل 07:09
-
ساخت Gathererهای سفارشی: منطق خاص دامنه 09:54
-
وب سرور ساده در عمل 04:57
-
کلاینت HTTP جدید - درخواست GET برای دریافت فیلم با شناسه 10:18
-
تست JUnit برای کلاینت HTTP 03:13
-
ساخت کلاینت HTTP در حالت غیرهمزمان 05:28
-
ساخت کلاینت HTTP - درخواست GET برای دریافت تمامی فیلمها 04:11
-
معرفی سیستم ماژول پلتفرم جاوا (JPMS) 06:29
-
ساخت یک اپلیکیشن جاوا با استفاده از JPMS 05:51
-
کار با چندین ماژول 05:10
-
کار با چندین ماژول به صورت انتقالپذیر 03:59
-
ماژولهای بدون نام و ماژولهای خودکار 05:22
مشخصات آموزش
جاوای مدرن: تسلط به ویژگیهای جاوا 8 تا جاوا 25
- تاریخ به روز رسانی: 1404/12/10
- سطح دوره:همه سطوح
- تعداد درس:145
- مدت زمان :15:49:41
- حجم :9.09GB
- زبان:دوبله زبان فارسی
- دوره آموزشی:AI Academy