انجمن جاواکاپ
2.29K subscribers
825 photos
12 videos
17 files
152 links
کانال رسمی انجمن جاواکاپ

ادمین: @JavaCupAdmin

رسانه‌های جاواکاپ👇
سایت
javacup.ir

اینستاگرام
instagram.com/javacup.ir

لینکدین
shorturl.at/csty2
shorturl.at/atBN7

توییتر
twitter.com/javacupir
Download Telegram
#مقاله
#در_سایت_جاواکاپ_بخوانید

همواره به توسعه‌دهندگان جاوا توصیه می‌شود که JVM و بخش‌های مختلف آن را بشناسند.
یکی از این بخش‌ها که در عملکرد برنامه‌ جاوایی شما تاثیر زیادی دارد، just in time compiler یا به اختصار JIT است. به طور خلاصه JIT بخش‌های پرتکرار کد شما (hotspot) را در زمان اجرا کامپایل می‌کند تا لازم نباشد برای هر اجرا آن را تفسیر کند.
در این مقاله کمی با JIT کلنجار می‌رویم و بررسی می‌کنیم JIT در مقابل بهینه‌سازی‌های دستی ما چگونه عمل می‌کند.

https://javacup.ir/close-look-at-jit/

@JavaCupIR
#مقاله
#در_سایت_جاواکاپ_بخوانید
استثناها یا اکسپشن‌ها در بسیاری از زبان‌های برنامه‌نویسی برای مدیریت خطاها و مشکلات احتمالی وجود دارند. لازمه‌ٔ برنامه‌نویس خبره شدن آشنایی با استثناها و ساخت کلاس‌های استثنای جدید و دریافت (catch) کردن آن‌ها در جای مناسب است.
بسیاری از اوقات ما تنها به یادگیری سینتکس throw و catch و finally بسنده می‌کنیم اما چیزی که در نهایت اهمیت دارد، استفاده درست و «بِه‌روش»‌هاست.
در این مطلب می‌خواهیم تعدادی از کار‌های اشتباهی که بین برنامه‌نویسان جاوا رایج است را به همراه راه اصلاح آن‌ها با هم مرور کنیم.

https://javacup.ir/exception-best-practices/

@JavaCupIR
اگر اخیرا به منوی خواندنی‌های سایت جاواکاپ سر زده باشید، با عضو جدیدمون «میکروبلاگ»، آشنا شدید.
https://javacup.ir/microblogs/
تو هر میکروبلاگ، در چند خط در مورد یه چیزی مرتبط با جاوا باهاتون حرف می‌زنیم.
ممکنه یه سرنخ باشه تا اگر علاقه‌مند بودید، خودتون با لینک پیشنهادیمون برید پی‌اش رو بگیرید.
ممکنه یه نکته ساده باشه
ممکنه اشاره به یک مشکل یا یه ویژگی خاص باشه
ممکنه هر چیزی در مورد جاوا باشه
خیلی کوتاه و خودمونی

اگر شما هم چیزی برای گفتن داشتید، به دستمون برسونید تا با بقیه به اشتراک بذاریم. چطوری؟
کافیه توییتش کنید و از هشتگ #جاواتیپ استفاده کنید.

@JavaCupIR
#مقاله
#در_سایت_جاواکاپ_بخوانید

برای پروژه‌ درس برنامه‌نویسی پیشرفته داشتم روی مدل پروژه‌ام فکر می‌کردم که به فکرم رسید چه جالب می‌شد اگه به جای اینکه من یک فرمول برای محاسبه یک قسمت را به صورت hard code وارد کنم، کاربر بتواند در زمان اجرا این فرمول را تعیین کند.

راهی که برای پیاده‌سازی این موضوع به ذهنم رسید، ورودی گرفتن یک تکه کد از کاربر و ساخت کلاسی از روی آن و کامپایل کردن کلاس در زمان اجرا بود.

من بعد از اتمام پروژه تصمیم گرفتم بیشتر در مورد Runtime Compilation در جاوا مطالعه کنم و حالا اطلاعاتم را در این مقاله با دوست‌داران جاوا به اشتراک می‌گذارم.

https://javacup.ir/java-runtime-compiler/

@JavaCupIR
کلاس آنلاین(غیر حضوری) زبان برنامه نویسی جاوا

تعداد جلسات دوره: 12 جلسه
آخرین مهلت ثبت نام : 10 مرداد
شروع دوره : 11 مرداد
ظرفیت: محدود(45 نفر)
مدرس: مهندس علی پورمومن
قیمت دوره: 100 هزار تومان
قیمت دوره با کد تخفیف جاواپرو: 50 هزار تومان
کد تخفیف: javapro

تمامی مباحثی از جاوا که برای اندروید مورد نیاز است آموزش داده می شود.

همکاری مشترک جاواپرو با مرکز کارآفرینی دانشگاه خلیج فارس و سازمان فضای مجازی سراج

توضیحات بیشتر در لینک زیر:

https://bit.ly/2ZOUiaq
#انتشارات_جاواکاپ
#ویرگول

به تازگی، انتشارات جاواکاپ در سایت ویرگول فعالیت خود را آغاز کرده است.

انتشارات جاواکاپ را دنبال کنید و از مقالات جدید و مفیدی که منتشر می‌شود بهره ببرید.

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

به اینجا سر بزنید 👇
virgool.io/javacup


@JavaCupIR
#مقاله
#در_سایت_جاواکاپ_بخوانید

معمولا، عملیات پرتاب و مدیریت استثنا با استفاده از کلاس‌های استثنای خود جاوا امکان‌پذیر است. نوع کلاس استثنا، نوع رخداد پیش‌‌آمده را مشخص می‌کند و پیام داخل استثنا، اطلاعات بیشتری به ما می‌دهد اما می‌توان یک مرحله فراتر رفت و یک کلاس استثنای شخصی‌سازی‌شده (CustomException) طراحی کرد.

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

در این مقاله، توصیه‌ها و به‌روش‌های مفید در طراحی و استفاده از استثنا‌های شخصی را با شما به اشتراک می‌گذاریم.

با عمل به این توصیه‌ها، کد و API شما بهتر فهمیده می‌شود و میزان داکیومنت موردنیاز هم کمتر می‌شود.
اثر این کار، در زمانی که برنامه‌نویس‌ جدید به تیم اضافه‌ شود و بخواهد از APIهای شما استفاده کند، محسوس‌تر می‌شود.
javacup.ir/exception-class-best-practice

@JavaCupIR
#مقاله
#در_سایت_جاواکاپ_بخوانید

در این مقاله به مفهوم ارجاع ضعیف (weak reference) در جاوا می‌پردازیم.

همانطور که می‌دانید، چهار نوع ارجاع متفاوت در جاوا وجود دارد:

1- ارجاع قوی (Strong reference)
2- ارجاع ضعیف (Weak reference)
3- ارجاع نرم (Soft reference)
4- ارجاع شبح (Phantom reference)

ارجاع ضعیف، ارتباط تنگاتنگی با زباله‌روب جاوا دارد. عملیات زباله‌روبی (Garbage collection) به بیان ساده، عملیات آزادسازی خودکار حافظه‌ای است که به آن هیچ ارجاعی وجود ندارد.

ارجاع ضعیف، ارجاعی است که به اندازه کافی قوی نیست تا باعث شود شی‌ای که به آن اشاره می‌کند، در حافظه باقی بماند. به بیان دیگر، تصمیم اینکه شی مورد بحث قابل زباله‌روبی هست یا نه را به خود زباله‌روب واگذار می‌کنند.

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

https://javacup.ir/weak-reference/

روزبه شریف‌نسب
@JavaCupIR
#هفتمین_آزمون_جاواکاپ

جزییات بیشتر از جمله تاریخ، جوایز و نحوه ثبت‌نام، به زودی اعلام می‌شود.

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

از هر جای ایران به راحتی می‌تونید در مسابقه شرکت کنید و به جمع جاواکاپی‌ها بپیوندید.
جوایز نقدی و فرصت شغلی هم که پای ثابت آزمون‌های جاواکاپ هستند.


آماده‌اید؟

@JavaCupIR
#در_سایت_جاواکاپ_بخوانید #مقاله

گشتی در بایت‌کد جاوا

اگر ربط عنوان و تصویر را نمی‌دانید، این مقاله را مطالعه کنید.

از ابتدای یادگیری جاوا آموخته‌ایم که سورس‌کد جاوا را در ادیتور به صورت فایل متنی می‌نویسیم و به وسیله کامپایلر جاوا، تبدیل به بایت‌کد می‌‌کنیم که یک نوع کد میانی مخصوص زبان‌های جاوایی است و در فایل class. ذخیره می‌شود. همچنین می‌دانیم که این زبان میانی مستقل از سکو است و روی هر ماشینی که ماشین مجازی جاوا (JVM) روی آن نصب باشد، قابل اجراست.

جالب است بدانید که امکان ساخت یک ماشین که به صورت بومی، بایت‌کد جاوا را اجرا کند هم وجود دارد. حتی مواردی هم به مرحله تولید و فروش رسیده‌اند (به ویکیپدیا مراجعه کنید). یک مثال جالب از این دسته، Jazelle است، قسمتی از پردازنده‌های ARM که (بخشی از) مجموعه دستورات بایت‌کد جاوا را اجرا می‌کرد.

حالا در این مقاله می‌خواهیم ساختار بایت‌کدها را بررسی کنیم، ببینیم به چه شکل ذخیره شده‌اند، مجموعه دستوراتشان چگونه است و چگونه اجرا می‌شوند و در آخر هم با ابزار‌ی آشنا می‌شویم که می‌تواند این بایت‌کدها را بسازد یا تغییر دهد.
javacup.ir/bytecode
روزبه شریف‌نسب
@JavaCupIR
انجمن جاواکاپ، هر سال بزرگترین همایش، آزمون و مسابقه تخصصی در زمینه جاوا در کشور را برگزار می‌کند.
هفتمین آزمون و مسابقه عمومی جاواکاپ در آبان‌ماه ۱۳۹۹ به صورت مجازی برگزار می‌شود.
شرکت‌ها و سازمان‌های مختلف می‌توانند به جمع حامیان برگزاری این مسابقه و همایش بپیوندند. برخی از دستاوردهای برگزاری این همایش، برای شرکت‌کنندگان و حامیان این آزمون عبارتند از:

📌تبلیغ جایگاه شرکت موردنظر در میان نخبگان علمی و صنعتی کشور
📌امکان کشف و استخدام برنامه‌نویسان مستعد در این مسابقه
📌ایجاد هیجان و تلاش علمی در میان نخبگان کشور در حوزه تولید نرم‌افزار

🛑توجه: شرایط ویژه‌ای برای اسپانسرشیپ شرکت‌های مستقر در شهری غیر از تهران در نظر گرفته شده است.

لازم به ذکر است فعالیت‌های عام‌المنفعه علمی انجمن علمی جاواکاپ، که با علاقه توسط نخبگان، فعالان صنعت نرم‌افزار و دانشگاهیان پیگیری می‌شود، با پشتیبانی حامیان مالی این انجمن شکل گرفته است و ادامه خواهد یافت. از شما دعوت می‌کنیم به عنوان حامی، انجمن جاواکاپ را در برگزاری این همایش یاری نمایید.

کسب اطلاعات بیشتر:
javacup.ir/sponsorship

@JavaCupIR
#مقاله
#در_سایت_جاواکاپ_بخوانید

روش دستوری (imperative) و روش اعلانی (declarative) دو روش کاملا متفاوت برای توصیف الگوریتم هستند. در دهه‌های ۸۰ و ۹۰ میلادی تصور می‌شد این طرز فکرها، کلا جدا از هم و تطبیق‌ناپذیر هستند. به طوری که ما شاهد کشمکش‌هایی هم بین برنامه‌نویسی شی‌گرا و فانکشنال بودیم. Smalltalk و ++C قهرمانان شی‌گرا، و هسکل قهرمان تابعی بود.
بعدها ++C شی‌گرایی خالص را کنار گذاشت و خود را به عنوان یک زبان چندپارادایمی مطرح کرد. از آن به بعد جاوا به عنوان سردمدار زبان‌های شی‌گرا ادامه‌داد تا نهایتا با جاوا ۸، این زبان هم تبدیل به یک زبان چندپارادایمی شد.

مطالعه کامل مقاله:
javacup.ir/multiparadigm-jvm/

روزبه شریف‌نسب
@JavaCupIR
هفتمین مسابقه جاواکاپ، جمعه همین هفته، ۲ آبان در کوئرا برگزار می‌شود.

🔸برای اولین‌بار به صورت کاملا رایگان و غیرحضوری
🔸همراه با فرصت‌های شغلی و دوره تخصصی کارآموزی
🔸۱۴ میلیون جایزه نقدی

📢 تعدادی از فینالست‌ها به دوره کارآموزی تخصصی جاواکاپ راه پیدا می‌کنند.

📌تاریخ: جمعه ۲ آبان
📌مکان: شهر شما، خانه شما

کسب اطلاعات بیشتر و ثبت‌نام:
javacup.ir/contest
quera.ir/events/javacup

@JavaCupIR
#مقاله
#در_سایت_جاواکاپ_بخوانید
در یکی از مقاله‌هایی که اخیرا در جاواکاپ منتشر شد، در مورد چندپارادایمی بودن ماشین مجازی جاوا صحبت کردیم، به طور خلاصه گفته شد که به خاطر کامپایل شدن تمام زبان‌های اسکالا، Groovy، کلوژر و کاتلین به بایت‌کد و اجرا توسط ماشین مجازی جاوا، این امکان وجود دارد که برای قسمت‌های مختلف فضای مسئله خود، از زبان‌های مختلف استفاده کنیم. یکی از مطرح‌ترین و پرکاربردترین زبان‌های بر پایه ماشین مجازی جاوا، اسکالا است. در این مقاله، با اسکالا آشنا شده و مزایا و معایب آن را بررسی می‌کنیم.

اسکالا به عنوان یک زبان بر پایه ماشین مجازی جاوا و نوع داده ایستا در ژانویه سال ۲۰۰۴ میلادی توسط مارتین اردرسکی معرفی شد. اسکالا هم برنامه‌نویسی شی‌گرا و هم تابعی را پشتیبانی می‌کند. از معروف‌ترین پروژه‌های توسعه‌ داده‌شده با این زبان می‌توان به آپاچی اسپارک، آپاچی کافکا و آپاچی فلینک اشاره کرد. در لیست محبوبیت زبان‌ها هم اسکالا جایگاه خوبی دارد. (رتبه ۱۳ ام)

برای مطالعه کامل این مقاله و آشنایی با ویژگی‌های اصلی اسکالا، به سایت جاواکاپ رجوع کنید:
https://javacup.ir/scala-tutor

روزبه شریف‌نسب
@JavaCupIR
ثبت‌نام رایگان:
javacup.ir/contest

@JavaCupIR
ثبت‌نام رایگان:
javacup.ir/contest

@JavaCupIR
ثبت‌نام رایگان:
javacup.ir/contest

@JavaCupIR