یادگیری حرفهای لامبدا و استریم در جاوا با مثالهای کد فراوان
در این دوره جامع، به صورت کاملا کاربردی و با استفاده از کدهای نمونه فراوان، عبارات لامبدا و استریمها در زبان برنامهنویسی جاوا را فرا خواهید گرفت.
تمامی نمونه کدها در مخزن گیتهاب من موجود است.
مباحث کلیدی این دوره:
لامبدا (Lambdas) در جاوا
-
واسطهای تابعی (Functional Interfaces)
- معرفی واسطهای تابعی و ارتباط آنها با عبارات لامبدا.
- استفاده از لامبدا با واسطهای تابعی سفارشی.
- استفاده از لامبدا با واسطهای تابعی از پیش تعریف شده در API جاوا:
Predicate/BiPredicateSupplierConsumer/BiConsumerFunction/BiFunctionUnaryOperatorوBinaryOperator
- سینتکس کلاسهای درونی ناشناس (Anonymous Inner Classes) در مقابل عبارات لامبدا.
- مفهوم `final` و "به طور مؤثر نهایی" (effectively final).
-
ارجاع متد (Method References)
- ارتباط ارجاع متد با لامبداها.
- انواع مختلف ارجاع متد با مثالهای کد: محدود (bound)، نامحدود (unbound)، ایستا (static) و سازنده (constructor).
- چگونگی تاثیر زمینه (context) در درک بهتر ارجاع متدها.
-
تمرین
تمرینهایی برای تثبیت مطالب آموخته شده پیرامون لامبدا.
استریمها (Streams) در جاوا
-
مفاهیم پایه استریم
- استریمها چیستند و چه کاربردی دارند.
- خط لولههای استریم (stream pipelines) و تنبلی استریم (stream laziness).
- نحوه ایجاد استریم.
-
عملیات پایانی (Terminal Operations)
- عملیات پایانی مانند
reduce(). - عملیات
collect()با مثالهای کد:Collectors.toMap()Collectors.groupingBy()Collectors.partitioningBy()
- عملیات پایانی مانند
-
عملیات میانی (Intermediate Operations)
- عملیات میانی با مثالهای کد:
filter()،distinct()،limit()،map()،flatMap()وsorted(). - توضیح عملیات میانی حالتدار (stateful) و کوتاهکننده (short-circuiting).
- عملیات میانی با مثالهای کد:
-
استریمهای اولیه (Primitive Streams)
- نحوه ایجاد استریمهای اولیه.
- شکل ظاهری API آنها.
- نگاشت بین استریمهای اولیه.
- نگاشت بین استریمهای اولیه و استریمهای آبجکت (Object streams) و بالعکس.
-
Optional
Optionalچیست و چرا مفید است.- نمونه کدهایی که استفاده از
Optionalرا نشان میدهند.
-
استریمهای موازی (Parallel Streams)
- نحوه ایجاد استریمهای موازی.
- پردازش استریم به صورت ترتیبی (sequential) در مقابل موازی (parallel).
-
تمرین
تمرینهایی برای تثبیت مطالب آموخته شده پیرامون استریمها.
پیشنیازها:
سطح متوسط جاوا. در حالی که دوره "Java 8 OCA (1Z0-808) Course" من از پایه شروع میشود، این دوره فرض میکند که شما دانش متوسطی از زبان جاوا دارید.
برای درک بهتر لامبداها، آشنایی با کلاسهای درونی ناشناس (anonymous inner classes) مفید خواهد بود. با این حال، لامبداها در این دوره در مقابل سینتکس کلاسهای درونی ناشناس قرار گرفته و توضیح داده میشوند.
نکته مهم: دوره پیشرفته من با نام "Java 21, Java 17, Java 11, Java 8 (adv.) and Spring Boot 3" این دوره را به عنوان زیرمجموعهای شامل میشود. دوره پیشرفته من بیش از 31 ساعت محتوا دارد و توصیه میشود قبل از سرمایهگذاری در این دوره، نگاهی به آن بیندازید (چون به نظر من، ارزش پول بیشتری دارد).
نظرات نمونه دانشجویان:
- "دوره عالی در مورد لامبدا و استریمهای جاوا. دکتر Sean Kennedy تمام مفاهیم و تکنیکها را با حجم زیادی مثال به وضوح توضیح داد. تمرینها منعکسکننده آموختههای ما در دوره بود. از دکتر Sean Kennedy سپاسگزارم!" [Jing H]
- "این دوره دانش عملی در مورد نحوه کار با برنامهنویسی تابعی در جاوا را ارائه میدهد. از لامبدا تا Optional، روشی که API جاوا 8 این ویژگیهای جدید را اضافه میکند، عامل کلیدی برای بهرهوری و عملکرد است." [Calebe O]
- "مختصر، آسان برای دنبال کردن، بسیار مفید. مدرس بسیار با استعداد." [Luka K]
- "Sean لامبدا و استریمها را توضیح داد و تمام موضوعات را در سطح جزئی پوشش داد." [Kalpana M]
- "دوره بسیار خوبی است، چیزهای جدید زیادی یاد گرفتم. دکتر کندی باید دورههای بیشتری ارائه دهد." [Vasudha S.]
- "دوره بسیار خوب سازماندهی شده و به وضوح ارائه شده است. متشکرم، دکتر Seán Kennedy." [Ricardo R.]
- "دوره فوقالعاده، کمک بزرگی در این زمینه مهم برنامهنویسی جاوا." - David F.
- "دوره عالی و توضیحات مدرس." - E. A.
- "دوره فوقالعاده، بسیار جذاب و به شیوهای قابل فهم ارائه شده است." - Gary W.
- "دوره عالی، مفاهیم به صورت واضح و مختصر توضیح داده شدهاند و درک آنها را آسان میکنند." - Bv
- "محتوا به وضوح و به طور دقیق توضیح داده شده است. توصیه میشود." - Daniel M.
این دوره یک رویکرد سیستماتیک برای توضیح عبارات لامبدا و استریمها در جاوا، هم در قالب یادداشت و هم در قالب مثالهای کد، ارائه میدهد.
این دوره برای گواهینامههای جاوا طراحی شده است؛ به عنوان مثال، بخشهای لامبدای Predicate برای Java 8 OCA (1Z0-808) مناسب است. بخشهای باقیمانده لامبدا و بخشهای استریم برای هر نسخهای از Java OCP مناسب است. این دوره مفاهیم را از طریق مثالهای کد کوچک، ساده و هدفمند توضیح میدهد.
توجه داشته باشید که دو دوره دیگر من، یعنی "Java 8 OCA (1Z0-808) Certification - Master the Fundamentals" و "Java 21, Java 17, Java 11, Java 8 (advanced) and Spring Boot" هر دو برای سبد محصولات Udemy Business انتخاب شدهاند (تنها 3% از دورهها واجد شرایط هستند).
برای کسانی که من را نمیشناسند، من از سال 2002 مدرس هستم و از سال 2013 به نمایندگی از یک شرکت نرمافزاری معتبر، سرفصلهای Java OCA و OCP را تدریس کردهام. پس از اتمام دورهها با من، فارغالتحصیلان با آزمون داخلی صدور گواهینامه جاوا شرکت روبرو میشوند (شبیه به آزمون Oracle). من هیچ دیدی نسبت به سوالاتی که با آنها روبرو خواهند شد ندارم. این یک آزمون فشرده 3 ساعته است. شرکت از نرخ قبولی (100% از سال اول) بسیار خشنود است. من عاشق تدریس هستم و این دوره تمام تجربه من در توضیح لامبداها و استریمها در جاوا را در بر دارد.
Dr Seán Kennedy OCP
نمایش نظرات