شماره شانزده: رمزنگاری
بسته Apache Commons #Codec برای فرمتهای مختلف مانند #Base64 و Hexadecimal، رمزگذارها و رمزگشاهای (#encoder و #decoder) سادهای دارد.
این بسته علاوه بر رمزگذارها و رمزگشاهای پرکاربرد و مرسوم، شامل مجموعهای از امکانات رمزگذاریِ آوایی (phonetic) نیز میباشد.
#معرفی_کتابخانههای_مفید_جاوا
@JavaCupIR
بسته Apache Commons #Codec برای فرمتهای مختلف مانند #Base64 و Hexadecimal، رمزگذارها و رمزگشاهای (#encoder و #decoder) سادهای دارد.
این بسته علاوه بر رمزگذارها و رمزگشاهای پرکاربرد و مرسوم، شامل مجموعهای از امکانات رمزگذاریِ آوایی (phonetic) نیز میباشد.
#معرفی_کتابخانههای_مفید_جاوا
@JavaCupIR
شماره هفده: پایگاهداده تعبیهشده SQL
پایگاهدادههای داخل حافظهای مانند #H2 که در داخل برنامههای جاوایی میتوانند تعبیه (embed) شوند، واقعا دوستداشتنی و پرکاربرد هستند. این پایگاهدادهها، برای تست اسکریپتهای #SQL و اجرای تستهای واحدی که نیاز به #پایگاهداده دارند، عالیاند.
در کنار H2، گزینههای دیگری مانند Apache #Derby و #HSQL نیز وجود دارند و میتوانند انتخاب خوبی باشند.
#معرفی_کتابخانههای_مفید_جاوا
@JavacupIR
پایگاهدادههای داخل حافظهای مانند #H2 که در داخل برنامههای جاوایی میتوانند تعبیه (embed) شوند، واقعا دوستداشتنی و پرکاربرد هستند. این پایگاهدادهها، برای تست اسکریپتهای #SQL و اجرای تستهای واحدی که نیاز به #پایگاهداده دارند، عالیاند.
در کنار H2، گزینههای دیگری مانند Apache #Derby و #HSQL نیز وجود دارند و میتوانند انتخاب خوبی باشند.
#معرفی_کتابخانههای_مفید_جاوا
@JavacupIR
شماره هجده: عیبیابی JDBC
تعدادی کتابخانه خوب برای #JDBC وجود دارد که کار عیبیابی و رفع خطا را برای برنامهنویسان سادهتر میکنند.
یکی از این کتابخانهها، #P6spy است که بدون تغییر در کد برنامه، دادههای #پایگاهداده لاگ میزند.
به طور مثال اگر داخل کدتان از Prepared Statement یا Callable Statement استفاده کرده باشید، این کتابخانهها، به صورت دقیق، فراخوانی انجامشده به همراه پارامترها و مدت زمان اجرای فراخوانی را لاگ میزند.
#معرفی_کتابخانههای_مفید_جاوا
@JavaCupIR
تعدادی کتابخانه خوب برای #JDBC وجود دارد که کار عیبیابی و رفع خطا را برای برنامهنویسان سادهتر میکنند.
یکی از این کتابخانهها، #P6spy است که بدون تغییر در کد برنامه، دادههای #پایگاهداده لاگ میزند.
به طور مثال اگر داخل کدتان از Prepared Statement یا Callable Statement استفاده کرده باشید، این کتابخانهها، به صورت دقیق، فراخوانی انجامشده به همراه پارامترها و مدت زمان اجرای فراخوانی را لاگ میزند.
#معرفی_کتابخانههای_مفید_جاوا
@JavaCupIR
شماره نوزده: Serialization
استفاده از #GoogleProtocolBuffer یک راه کارآمد و قابل گسترش برای رمزگذاری (#encoding) دادههای ساختارمند است.
این کتابخانه، جایگزین بهتر و غنیتری برای Java #Serialization است.
به توسعهدهندگانِ باتجربهی جاوا، قویا توصیه میشود این کتابخانه (Google #ProtoBuf) را یاد بگیرند.
#معرفی_کتابخانههای_مفید_جاوا
@JavaCupIR
استفاده از #GoogleProtocolBuffer یک راه کارآمد و قابل گسترش برای رمزگذاری (#encoding) دادههای ساختارمند است.
این کتابخانه، جایگزین بهتر و غنیتری برای Java #Serialization است.
به توسعهدهندگانِ باتجربهی جاوا، قویا توصیه میشود این کتابخانه (Google #ProtoBuf) را یاد بگیرند.
#معرفی_کتابخانههای_مفید_جاوا
@JavaCupIR
شماره بیست: Networking
برخی از کتابخانههای مفید جاوا در زمینه #شبکه عبارتند از #Netty و Apache #MINA. اگر در حال نوشتن اپلیکیشنی هستید که نیاز به کارهای شبکهای سطح پایین دارید، میتوانید از این کتابخانهها استفاده کنید.
#معرفی_کتابخانههای_مفید_جاوا
@JavaCupIR
برخی از کتابخانههای مفید جاوا در زمینه #شبکه عبارتند از #Netty و Apache #MINA. اگر در حال نوشتن اپلیکیشنی هستید که نیاز به کارهای شبکهای سطح پایین دارید، میتوانید از این کتابخانهها استفاده کنید.
#معرفی_کتابخانههای_مفید_جاوا
@JavaCupIR
#مقاله
در این مقاله دو پیادهسازی مختلف از واسط Map یعنی HashMap و TreeMap با یکدیگر مقایسه میشوند.
هر دو پیادهسازی، بخش جداییناپذیری از چارچوب Java Collections هستند و دادهها را به صورت زوجهای کلید-مقدار ذخیره میکنند.
https://goo.gl/4hgnGq
@JavaCupIR
در این مقاله دو پیادهسازی مختلف از واسط Map یعنی HashMap و TreeMap با یکدیگر مقایسه میشوند.
هر دو پیادهسازی، بخش جداییناپذیری از چارچوب Java Collections هستند و دادهها را به صورت زوجهای کلید-مقدار ذخیره میکنند.
https://goo.gl/4hgnGq
@JavaCupIR
در کانال IGTV جاواکاپ ببینید:
نگاهی گذرا بر آنچه که در پنجمین دوره از مسابقات جاواکاپ گذشت
https://www.instagram.com/tv/BsAkWLzArG3
@JavaCupIR
نگاهی گذرا بر آنچه که در پنجمین دوره از مسابقات جاواکاپ گذشت
https://www.instagram.com/tv/BsAkWLzArG3
@JavaCupIR
#مقاله
به نظر شما، در پروژههای جاوایی از کدام سطح دسترسی بیش از سایرین استفاده میشود؟ public یا protected یا private و یا default؟ آیا هنگام کد زدن، به سطح دسترسی متدها و کلاسهایتان توجهی میکنید و برای انتخاب مناسبترین سطح دسترسی، فکر میکنید؟
در این مقاله ابتدا میبینیم که میزان استفاده از هر یک از این سطوح دسترسی در پروژههای جاوایی توسط توسعهدهندگان چقدر است و سپس با هم میبینیم که چرا توجه به سطوح دسترسی مهم است.
https://goo.gl/QgfTHU
@JavaCupIR
به نظر شما، در پروژههای جاوایی از کدام سطح دسترسی بیش از سایرین استفاده میشود؟ public یا protected یا private و یا default؟ آیا هنگام کد زدن، به سطح دسترسی متدها و کلاسهایتان توجهی میکنید و برای انتخاب مناسبترین سطح دسترسی، فکر میکنید؟
در این مقاله ابتدا میبینیم که میزان استفاده از هر یک از این سطوح دسترسی در پروژههای جاوایی توسط توسعهدهندگان چقدر است و سپس با هم میبینیم که چرا توجه به سطوح دسترسی مهم است.
https://goo.gl/QgfTHU
@JavaCupIR
انجمن جاواکاپ
#دستگرمی #جاوا۹
#پاسخ_دستگرمی
هر دوی #takeWhile و #dropWhile در واقع نوعی فیلتر برای #stream هستند با این تفاوت که باعث قطعشدن stream میشوند:
📌 متد takeWhile آیتمهای stream را به ترتیب بررسی میکند و تا زمانی که شرط ورودیاش برقرار باشد، آن آیتمها را بر میدارد (take میکند). به محضی که به آیتمی برسد که شرط ورودی را نقض کند، متوقف میشود. بنابراین آیتمهای بررسیشده از آن عبور میکنند.
📌 متد dropWhile آیتمهای stream را به ترتیب بررسی میکند و تا زمانی که شرط ورودیاش برقرار باشد، پیش رفته و آیتمهای بررسیشده را دور میریزد (drop میکند). به محضی که به آیتمی برسد که شرط را نقض کند، متوقف شده و آیتمهای باقیمانده (بررسینشده) از آن عبور میکنند.
🔸 و اما پاسخ دستگرمی
✔️ اولین stream نکتهی خاصی ندارد و طبق توضیحات بالا، خروجیاش برابر با 7 است.
✔️ دومین stream بر روی یک Set اجرا میشود و از آنجا که اعضای Set ترتیب ندارند، با هر بار اجرای برنامه ممکن است اعضای آن با ترتیبهای متفاوتی به stream داده شده و به همین دلیل، نتیجه متفاوتی هم گرفته شود. بنابراین برای مثال:
✔️✔️ اگر اعضای Set با ترتیب 89657 به stream داده شوند، خروجی برابر با 657 خواهد بود و
✔️✔️ اگر اعضای Set با ترتیب 56789 به stream داده شوند، خروجی برابر با 56789 خواهد بود.
به این ترتیب، از میان گزینههای دادهشده، گزینههای ۲ و ۶ از خروجیهای ممکن این برنامه هستند و در نهایت گزینه ۷ پاسخ صحیح این دستگرمی است.
@JavaCupIR
هر دوی #takeWhile و #dropWhile در واقع نوعی فیلتر برای #stream هستند با این تفاوت که باعث قطعشدن stream میشوند:
📌 متد takeWhile آیتمهای stream را به ترتیب بررسی میکند و تا زمانی که شرط ورودیاش برقرار باشد، آن آیتمها را بر میدارد (take میکند). به محضی که به آیتمی برسد که شرط ورودی را نقض کند، متوقف میشود. بنابراین آیتمهای بررسیشده از آن عبور میکنند.
📌 متد dropWhile آیتمهای stream را به ترتیب بررسی میکند و تا زمانی که شرط ورودیاش برقرار باشد، پیش رفته و آیتمهای بررسیشده را دور میریزد (drop میکند). به محضی که به آیتمی برسد که شرط را نقض کند، متوقف شده و آیتمهای باقیمانده (بررسینشده) از آن عبور میکنند.
🔸 و اما پاسخ دستگرمی
✔️ اولین stream نکتهی خاصی ندارد و طبق توضیحات بالا، خروجیاش برابر با 7 است.
✔️ دومین stream بر روی یک Set اجرا میشود و از آنجا که اعضای Set ترتیب ندارند، با هر بار اجرای برنامه ممکن است اعضای آن با ترتیبهای متفاوتی به stream داده شده و به همین دلیل، نتیجه متفاوتی هم گرفته شود. بنابراین برای مثال:
✔️✔️ اگر اعضای Set با ترتیب 89657 به stream داده شوند، خروجی برابر با 657 خواهد بود و
✔️✔️ اگر اعضای Set با ترتیب 56789 به stream داده شوند، خروجی برابر با 56789 خواهد بود.
به این ترتیب، از میان گزینههای دادهشده، گزینههای ۲ و ۶ از خروجیهای ممکن این برنامه هستند و در نهایت گزینه ۷ پاسخ صحیح این دستگرمی است.
@JavaCupIR
خوشحال میشیم زیر آخرین پست اینستاگرام، نظراتتون رو در خصوص آزمون کتبی جاواکاپ که مهرماه امسال برگزار شد، بشنویم.
قطعا نظرات، انتقادات و پیشنهادات شما برای دستاندرکاران جاواکاپ بسیار باارزشه و باعث رشد جاواکاپ میشه😊
https://www.instagram.com/p/BssrPDjg65V/?utm_source=ig_share_sheet&igshid=665s92wqczb6
@JavaCupIR
قطعا نظرات، انتقادات و پیشنهادات شما برای دستاندرکاران جاواکاپ بسیار باارزشه و باعث رشد جاواکاپ میشه😊
https://www.instagram.com/p/BssrPDjg65V/?utm_source=ig_share_sheet&igshid=665s92wqczb6
@JavaCupIR
#مقاله
«قرارداد برابری اشیا» (Object Equality Contract) بیان میکند، زمانی که دو شی با هم برابرند، کد درهمسازی (hash code) آن دو شی هم باید با هم برابر باشد.
این قرارداد، برای تمام اشیای جاوایی مورد استفاده در مجموعههای مبتنی بر درهمسازی (مانند HashMap و HashSet) صدق میکند و هدف اصلی آن، بهینهسازی کارایی هنگام کار با این مجموعهها است.
احتمالا شنیدهاید که توصیه میشود زمانی که متد ()equals را برای کلاس خود پیادهسازی میکنید، باید متد ()hashCode را هم پیادهسازی کنید.
این کار، یک رویکرد عملی برای پایبندی به «قرارداد برابری اشیا» است. اگر میخواهید بدانید که چرا پایبندی به این قرارداد مهم است، مطالعه این مقاله را از دست ندهید.
https://goo.gl/3jaJf1
@JavaCupIR
«قرارداد برابری اشیا» (Object Equality Contract) بیان میکند، زمانی که دو شی با هم برابرند، کد درهمسازی (hash code) آن دو شی هم باید با هم برابر باشد.
این قرارداد، برای تمام اشیای جاوایی مورد استفاده در مجموعههای مبتنی بر درهمسازی (مانند HashMap و HashSet) صدق میکند و هدف اصلی آن، بهینهسازی کارایی هنگام کار با این مجموعهها است.
احتمالا شنیدهاید که توصیه میشود زمانی که متد ()equals را برای کلاس خود پیادهسازی میکنید، باید متد ()hashCode را هم پیادهسازی کنید.
این کار، یک رویکرد عملی برای پایبندی به «قرارداد برابری اشیا» است. اگر میخواهید بدانید که چرا پایبندی به این قرارداد مهم است، مطالعه این مقاله را از دست ندهید.
https://goo.gl/3jaJf1
@JavaCupIR