✳️ آموزش مقدماتی جاوا (بخش دوم) — از صفر تا صد
در بخش قبلی این سری آموزش مقدماتی جاوا با برخی مفاهیم ابتدایی زبان برنامهنویسی جاوا آشنا شدیم. در این نوشته نیز برخی مفاهیم دیگر جاوا توضیح داده شدهاند.
══ فهرست مطالب ══
○ Immutable
○ String ،StringBuffer و StringBuilder
○ سریالسازی
○ Comparator و Comparable
○ Collection
○ Guava
○ نسخههای جاوا
🔸 Immutable
هر کلاسی که حالت شیء آن پس از ایجاد وهله نتواند تغییر یابد به نام Immutable شناخته میشود.
– رشته و همه کلاسهای پوششی آن و همچنین کلاس enum نمونههایی از کلاس Immutable محسوب میشوند.
– کلاسهای Immutable از نظر ارثبری، thread-safe هستند.
روش thread-safe ساختن یک کلاس به صورت زیر است:
– ابتدا مطمئن شوید که کلاس نمیتواند override شود. به این منظور کلاس را به صورت final دربیاورید.
– همه فیلدهای آن خصوصی باشند.
– هیچ متدی وجود نداشته باشد که بتواند حالت شیء را تغییر دهد. از این رو نباید از متدهای setter استفاده کرد.
– از یک کپی defensive یا کلون استفاده کنید.
BigDecimal نیز از نظر فنی Immutable محسوب نمیشود، زیرا یک کلاس final نیست.
🔸 String ،StringBuffer و StringBuilder
«رشته» (String) به صورت Immutable است، چون ما نمیتوانیم یک شیء رشته را تغییر دهیم. هر بار که مقدار جدیدی به یک رشته انتساب میدهید، در واقع یک شیء جدید رشته در پشته ایجاد میشود و اشارهگر به آن شیء جدید اشاره میکند.
Pool رشته یک ناحیه حافظه خاص در هیپ جاوا است. هنگامی که یک رشته ایجاد میشود، در صورتی که رشته از قبل در pool موجود باشد، به جای ایجاد یک شیء جدید و بازگشت دادن ارجاع آن، ارجاعی به رشته موجود بازگشت مییابد.
دلایل مختلفی برای این حالت وجود دارد که در ادامه به برخی از آنها اشاره میکنیم.
مطالعه ادامه مطلب 👇👇
🔗 آموزش مقدماتی جاوا (بخش دوم) — از صفر تا صد — کلیک کنید (+)
📌 کانال اختصاصی آموزشی برنامهنویسی جاوا
آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی برنامهنویسی جاوا را در کانال اختصاصی [@Fara_Java] دنبال کنید. 👇
@Fara_Java — مطالب و آموزشهای برنامهنویسی جاوا فرادرس
در بخش قبلی این سری آموزش مقدماتی جاوا با برخی مفاهیم ابتدایی زبان برنامهنویسی جاوا آشنا شدیم. در این نوشته نیز برخی مفاهیم دیگر جاوا توضیح داده شدهاند.
══ فهرست مطالب ══
○ Immutable
○ String ،StringBuffer و StringBuilder
○ سریالسازی
○ Comparator و Comparable
○ Collection
○ Guava
○ نسخههای جاوا
🔸 Immutable
هر کلاسی که حالت شیء آن پس از ایجاد وهله نتواند تغییر یابد به نام Immutable شناخته میشود.
– رشته و همه کلاسهای پوششی آن و همچنین کلاس enum نمونههایی از کلاس Immutable محسوب میشوند.
– کلاسهای Immutable از نظر ارثبری، thread-safe هستند.
روش thread-safe ساختن یک کلاس به صورت زیر است:
– ابتدا مطمئن شوید که کلاس نمیتواند override شود. به این منظور کلاس را به صورت final دربیاورید.
– همه فیلدهای آن خصوصی باشند.
– هیچ متدی وجود نداشته باشد که بتواند حالت شیء را تغییر دهد. از این رو نباید از متدهای setter استفاده کرد.
– از یک کپی defensive یا کلون استفاده کنید.
BigDecimal نیز از نظر فنی Immutable محسوب نمیشود، زیرا یک کلاس final نیست.
🔸 String ،StringBuffer و StringBuilder
«رشته» (String) به صورت Immutable است، چون ما نمیتوانیم یک شیء رشته را تغییر دهیم. هر بار که مقدار جدیدی به یک رشته انتساب میدهید، در واقع یک شیء جدید رشته در پشته ایجاد میشود و اشارهگر به آن شیء جدید اشاره میکند.
Pool رشته یک ناحیه حافظه خاص در هیپ جاوا است. هنگامی که یک رشته ایجاد میشود، در صورتی که رشته از قبل در pool موجود باشد، به جای ایجاد یک شیء جدید و بازگشت دادن ارجاع آن، ارجاعی به رشته موجود بازگشت مییابد.
دلایل مختلفی برای این حالت وجود دارد که در ادامه به برخی از آنها اشاره میکنیم.
مطالعه ادامه مطلب 👇👇
🔗 آموزش مقدماتی جاوا (بخش دوم) — از صفر تا صد — کلیک کنید (+)
📌 کانال اختصاصی آموزشی برنامهنویسی جاوا
آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی برنامهنویسی جاوا را در کانال اختصاصی [@Fara_Java] دنبال کنید. 👇
@Fara_Java — مطالب و آموزشهای برنامهنویسی جاوا فرادرس
✳️ فرصتهای شغلی برنامهنویسان جاوا
برای رسیدن به یک جایگاه ارزشمند در این حوزه، برنامهنویسان جاوا باید حداقل در مقطع کارشناسی رشتههای علوم کامپیوتر، IT، ریاضیات یا رشتههای مرتبط دیگر تحصیل کرده باشند. برخی از کارفرمایان فقط افراد با حداقل مدرک کارشناسی ارشد را استخدام میکنند. با برخورداری از توانایی برنامهنویسی جاوا، به دست آوردن شغل در شرکتهای رایانهای چندان سخت نخواهد بود. برخی از شرکتها، برنامهنویسانی را که از تجربه و تواناییهای فنی بالایی برخوردارند اما تحصیلات دانشگاهی ندارند، نیز استخدام میکنند. با این وجود هرچه فرد تحصیلات و تجربه بالاتری داشته باشد، شانس خود را برای استخدام شدن افزایش میدهد.
══ فهرست مطالب ══
○ سطح تحصیلات
○ مسیر شغلی
○ کاربردهای برنامهنویسی جاوا
🔸 سطح تحصیلات
برای رسیدن به یک جایگاه ارزشمند در این حوزه، برنامهنویسان جاوا باید حداقل در مقطع کارشناسی رشتههای علوم کامپیوتر، IT، ریاضیات یا رشتههای مرتبط دیگر تحصیل کرده باشند. برخی از کارفرمایان فقط افراد با حداقل مدرک کارشناسی ارشد را استخدام میکنند. با برخورداری از توانایی برنامهنویسی جاوا، به دست آوردن شغل در شرکتهای رایانهای چندان سخت نخواهد بود. برخی از شرکتها، برنامهنویسانی را که از تجربه و تواناییهای فنی بالایی برخوردارند اما تحصیلات دانشگاهی ندارند، نیز استخدام میکنند. با این وجود هرچه فرد تحصیلات و تجربه بالاتری داشته باشد، شانس خود را برای استخدام شدن افزایش میدهد.
🔸 مسیر شغلی
بسته به تجربه، حرفه شما به طور معمول در یکی از مسیرهای زیر ادامه خواهد یافت:
۱. برنامهنویس تازهکار: شما کارتان را بهعنوان برنامهنویس تازهکار شروع میکنید و حدود ۳ تا ۴ سال در این سطح باقی میمانید. وظایف شما شامل برنامهنویسی، اشکالزدایی، مشارکت در بررسی کدها و مستندسازی فنی است. در این مرحله، شما همچنین باید انرژی خود را برای به دست آوردن دانش بیشتر در محیط جاوا و تسلط در یک یا چند زمینهی دیگر متمرکز کنید.
۲. برنامهنویس ارشد: با افزایش تجربه، دانش و تخصص خود به سطح برنامهنویس ارشد ارتقا پیدا میکنید. در این سطح مسئولیتهای شما بیشتر میشود. باید بر کار برنامهنویسان تازهکار نظارت کنید و در طراحی و پیادهسازی نرمافزار مشارکت نمایید. در حین مشارکت در برنامهنویسی، ارتباط شما با مشتریان نیز افزایش پیدا میکند؛ زیرا ممکن است وظیفه آموزش نرمافزار به کاربران نیز بر عهده شما گذاشته شود. در این مرحله با تمرکز برافزایش سطح دانش، تحصیلات و تخصص میتوانید در مسیر رسیدن به سطوح مدیریتی قدم بردارید.
مطالعه ادامه مطلب 👇👇
🔗 فرصتهای شغلی برنامهنویسان جاوا — کلیک کنید (+)
📌 کانال اختصاصی آموزشی برنامهنویسی جاوا
آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی برنامهنویسی جاوا را در کانال اختصاصی [@Fara_Java] دنبال کنید. 👇
@Fara_Java — مطالب و آموزشهای برنامهنویسی جاوا فرادرس
برای رسیدن به یک جایگاه ارزشمند در این حوزه، برنامهنویسان جاوا باید حداقل در مقطع کارشناسی رشتههای علوم کامپیوتر، IT، ریاضیات یا رشتههای مرتبط دیگر تحصیل کرده باشند. برخی از کارفرمایان فقط افراد با حداقل مدرک کارشناسی ارشد را استخدام میکنند. با برخورداری از توانایی برنامهنویسی جاوا، به دست آوردن شغل در شرکتهای رایانهای چندان سخت نخواهد بود. برخی از شرکتها، برنامهنویسانی را که از تجربه و تواناییهای فنی بالایی برخوردارند اما تحصیلات دانشگاهی ندارند، نیز استخدام میکنند. با این وجود هرچه فرد تحصیلات و تجربه بالاتری داشته باشد، شانس خود را برای استخدام شدن افزایش میدهد.
══ فهرست مطالب ══
○ سطح تحصیلات
○ مسیر شغلی
○ کاربردهای برنامهنویسی جاوا
🔸 سطح تحصیلات
برای رسیدن به یک جایگاه ارزشمند در این حوزه، برنامهنویسان جاوا باید حداقل در مقطع کارشناسی رشتههای علوم کامپیوتر، IT، ریاضیات یا رشتههای مرتبط دیگر تحصیل کرده باشند. برخی از کارفرمایان فقط افراد با حداقل مدرک کارشناسی ارشد را استخدام میکنند. با برخورداری از توانایی برنامهنویسی جاوا، به دست آوردن شغل در شرکتهای رایانهای چندان سخت نخواهد بود. برخی از شرکتها، برنامهنویسانی را که از تجربه و تواناییهای فنی بالایی برخوردارند اما تحصیلات دانشگاهی ندارند، نیز استخدام میکنند. با این وجود هرچه فرد تحصیلات و تجربه بالاتری داشته باشد، شانس خود را برای استخدام شدن افزایش میدهد.
🔸 مسیر شغلی
بسته به تجربه، حرفه شما به طور معمول در یکی از مسیرهای زیر ادامه خواهد یافت:
۱. برنامهنویس تازهکار: شما کارتان را بهعنوان برنامهنویس تازهکار شروع میکنید و حدود ۳ تا ۴ سال در این سطح باقی میمانید. وظایف شما شامل برنامهنویسی، اشکالزدایی، مشارکت در بررسی کدها و مستندسازی فنی است. در این مرحله، شما همچنین باید انرژی خود را برای به دست آوردن دانش بیشتر در محیط جاوا و تسلط در یک یا چند زمینهی دیگر متمرکز کنید.
۲. برنامهنویس ارشد: با افزایش تجربه، دانش و تخصص خود به سطح برنامهنویس ارشد ارتقا پیدا میکنید. در این سطح مسئولیتهای شما بیشتر میشود. باید بر کار برنامهنویسان تازهکار نظارت کنید و در طراحی و پیادهسازی نرمافزار مشارکت نمایید. در حین مشارکت در برنامهنویسی، ارتباط شما با مشتریان نیز افزایش پیدا میکند؛ زیرا ممکن است وظیفه آموزش نرمافزار به کاربران نیز بر عهده شما گذاشته شود. در این مرحله با تمرکز برافزایش سطح دانش، تحصیلات و تخصص میتوانید در مسیر رسیدن به سطوح مدیریتی قدم بردارید.
مطالعه ادامه مطلب 👇👇
🔗 فرصتهای شغلی برنامهنویسان جاوا — کلیک کنید (+)
📌 کانال اختصاصی آموزشی برنامهنویسی جاوا
آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی برنامهنویسی جاوا را در کانال اختصاصی [@Fara_Java] دنبال کنید. 👇
@Fara_Java — مطالب و آموزشهای برنامهنویسی جاوا فرادرس
✳️ نمونه کد جاوا — نمونه کدهای کاربردی برای برنامه نویسان جاوا
جاوا یکی از محبوبترین زبانهای برنامهنویسی است و در حوزه وباپلیکیشن، اپلیکیشنهای ویندوزی، موبایل، شبکه، کالاهای مصرفی الکترونیک، دستگاههای گیرنده دیجیتال و تقریباً همه جا حضور دارد. جاوا اینک روی بیش از ۳ میلیارد دستگاه اجرا میشود. بر اساس گزارش اوراکل هم اینک بیش از ۵ میلیارد جاوا کارت در حال استفاده هستند. بیش از ۹ میلیون توسعهدهنده به زبان جاوا کدنویسی میکنند و محبوبیت زیادی میان توسعهدهندگان دارد و به یکی از رایجترین پلتفرمهای توسعه تبدیل شده است. در این مطلب به بررسی انواع مختلفی از نمونه کد جاوا و الگوریتمهای کاربردی این زبان برنامهنویسی میپردازیم.
══ فهرست مطالب ══
○ تاریخچه جاوا
○ اصطلاحات جاوا
○ ویژگیهای اصلی زبان جاوا
○ نکات، ترفندها و نمونه کد جاوا
○ الگوریتمها و برنامههای کاربردی جاوا
○ سخن پایانی
🔸 تاریخچه جاوا
جاوا از سوی شرکت «سان مایکروسیستمز» (Sun Microsystems) در سال ۱۹۹۱ توسعه یافت و متعاقباً از سوی شرکت «اوراکل» (Oracle) خریداری شد. این پلتفرم توسط «جیمز گاسلنیگ» (James Gosling) و «پاتریک ناتون» (Patrick Naughton) توسعه یافته است. جاوا یک زبان ساده برنامهنویسی است که موجب شده نوشتن، کامپایل کردن و دیباگ برنامهها آسان شود. با استفاده از جاوا میتوان کدهای با قابلیت استفاده مجدد و برنامههای ماژولار ساخت.
جاوا مبتنی بر کلاس و در واقع یک زبان شیءگرا است و طوری طراحی شده که تا حد امکان وابستگیهای پیادهسازی کمی داشته باشد. جاوا زبان برنامهنویسی چندمنظوره است و توسعهدهندگان با بهرهگیری از آن میتوانند یک بار کد بنویسند و آن را هر کجا اجرا کند. برنامههای جاوا کامپایل شده و روی همه پلتفرمهایی که از جاوا پشتیبانی کنند، اجرا میشوند. اپلیکیشنهای جاوا به «بایت کد» (Byte Code) کامپایل میشوند که میتواند روی هر ماشین مجازی جاوا اجرا شود. ساختار جاوا شبیه زبانهای ++c/c است.
در ۱۳ نوامبر سال ۲۰۰۶ شرکت سان اغلب کدهای ماشین مجازی جاوا را به صورت متن-باز و رایگان عرضه کرد. در ۹ می ۲۰۰۷ این شرکت این فرایند را تکمیل کرده و همه کد JVM را تحت شرایط توزیع متن-باز عرضه کرد.
🔸 اصطلاحات جاوا
برای این که شروع به یادگیری جاوا بکنید، قبلاً باید با برخی اصطلاحاتی که در این پلتفرم رواج دارند، آشنا شوید.
– ماشین مجازی جاوا (Java Virtual Machine | JVM): هر برنامه جاوا سه فاز دارد. این برنامه ابتدا نوشته میشود، سپس کامپایل میشود و در نهایت اجرا خواهد شد. مرحله نوشتن برنامه از سوی توسعهدهندگان جاوا انجام مییابد. فرایند کامپایل کد از سوی کامپایلر JAVAC اجرا میشود که کامپایلر اصلی جاوا است و شامل کیت توسعه جاوا (JDK) است. این کامپایلر برنامه جاوا را دریافت کرده و بایت کد را به عنوان خروجی تولید میکند.None
در مرحله اجرای یک برنامه جاوا، JVM بایت کد تولید شده از سوی کامپایلر را اجرا میکند. بدین ترتیب متوجه میشویم که وظیفه ماشین مجازی جاوا، اجرای بایت کد تولید شده از سوی کامپایلر است. هر سیستم عامل یک JVM متفاوت دارد، اما خروجی تولید شده پس از اجرای بایت کد روی همه سیستمهای عامل مختلف، یکسان است. به همین دلیل است که جاوا یک زبان مستقل از پلتفرم محسوب میشود.
– بایت کد (Bytecode): چنان که توضیح دادیم کامپایلر JAVAC سورس کد جاوا را به بایت کد کامپایل میکند، به طوری که JVM بتواند آن را اجرا کند. این بایت کد به صورت فایل class. ذخیره میشوند. برای مشاهده بایت کد باید از دیاسمبلرهایی مانند javap استفاده کنید.
– کیت توسعه جاوا (Java Development Kit | JDK): کیت توسعه جاوا چنان که از نامش برمیآید یک کیت توسعه کامل است که همه چیز از کامپایلر تا «محیط زمان اجرای جاوا» (JRE)، دیباگرهای جاوا، مستندات جاوا و غیره را شامل میشود. برای این که یک برنامه جاوا اجرا شود باید JDK را رویی رایانه نصب کنیم تا امکان نوشتن، کامپایل و اجرای برنامههای جاوا را بیابیم.
مطالعه ادامه مطلب 👇👇
🔗 نمونه کد جاوا — نمونه کدهای کاربردی برای برنامه نویسان جاوا — کلیک کنید (+)
📌 کانال اختصاصی آموزشی برنامهنویسی جاوا
آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی برنامهنویسی جاوا را در کانال اختصاصی [@Fara_Java] دنبال کنید. 👇
@Fara_Java — مطالب و آموزشهای برنامهنویسی جاوا فرادرس
جاوا یکی از محبوبترین زبانهای برنامهنویسی است و در حوزه وباپلیکیشن، اپلیکیشنهای ویندوزی، موبایل، شبکه، کالاهای مصرفی الکترونیک، دستگاههای گیرنده دیجیتال و تقریباً همه جا حضور دارد. جاوا اینک روی بیش از ۳ میلیارد دستگاه اجرا میشود. بر اساس گزارش اوراکل هم اینک بیش از ۵ میلیارد جاوا کارت در حال استفاده هستند. بیش از ۹ میلیون توسعهدهنده به زبان جاوا کدنویسی میکنند و محبوبیت زیادی میان توسعهدهندگان دارد و به یکی از رایجترین پلتفرمهای توسعه تبدیل شده است. در این مطلب به بررسی انواع مختلفی از نمونه کد جاوا و الگوریتمهای کاربردی این زبان برنامهنویسی میپردازیم.
══ فهرست مطالب ══
○ تاریخچه جاوا
○ اصطلاحات جاوا
○ ویژگیهای اصلی زبان جاوا
○ نکات، ترفندها و نمونه کد جاوا
○ الگوریتمها و برنامههای کاربردی جاوا
○ سخن پایانی
🔸 تاریخچه جاوا
جاوا از سوی شرکت «سان مایکروسیستمز» (Sun Microsystems) در سال ۱۹۹۱ توسعه یافت و متعاقباً از سوی شرکت «اوراکل» (Oracle) خریداری شد. این پلتفرم توسط «جیمز گاسلنیگ» (James Gosling) و «پاتریک ناتون» (Patrick Naughton) توسعه یافته است. جاوا یک زبان ساده برنامهنویسی است که موجب شده نوشتن، کامپایل کردن و دیباگ برنامهها آسان شود. با استفاده از جاوا میتوان کدهای با قابلیت استفاده مجدد و برنامههای ماژولار ساخت.
جاوا مبتنی بر کلاس و در واقع یک زبان شیءگرا است و طوری طراحی شده که تا حد امکان وابستگیهای پیادهسازی کمی داشته باشد. جاوا زبان برنامهنویسی چندمنظوره است و توسعهدهندگان با بهرهگیری از آن میتوانند یک بار کد بنویسند و آن را هر کجا اجرا کند. برنامههای جاوا کامپایل شده و روی همه پلتفرمهایی که از جاوا پشتیبانی کنند، اجرا میشوند. اپلیکیشنهای جاوا به «بایت کد» (Byte Code) کامپایل میشوند که میتواند روی هر ماشین مجازی جاوا اجرا شود. ساختار جاوا شبیه زبانهای ++c/c است.
در ۱۳ نوامبر سال ۲۰۰۶ شرکت سان اغلب کدهای ماشین مجازی جاوا را به صورت متن-باز و رایگان عرضه کرد. در ۹ می ۲۰۰۷ این شرکت این فرایند را تکمیل کرده و همه کد JVM را تحت شرایط توزیع متن-باز عرضه کرد.
🔸 اصطلاحات جاوا
برای این که شروع به یادگیری جاوا بکنید، قبلاً باید با برخی اصطلاحاتی که در این پلتفرم رواج دارند، آشنا شوید.
– ماشین مجازی جاوا (Java Virtual Machine | JVM): هر برنامه جاوا سه فاز دارد. این برنامه ابتدا نوشته میشود، سپس کامپایل میشود و در نهایت اجرا خواهد شد. مرحله نوشتن برنامه از سوی توسعهدهندگان جاوا انجام مییابد. فرایند کامپایل کد از سوی کامپایلر JAVAC اجرا میشود که کامپایلر اصلی جاوا است و شامل کیت توسعه جاوا (JDK) است. این کامپایلر برنامه جاوا را دریافت کرده و بایت کد را به عنوان خروجی تولید میکند.None
در مرحله اجرای یک برنامه جاوا، JVM بایت کد تولید شده از سوی کامپایلر را اجرا میکند. بدین ترتیب متوجه میشویم که وظیفه ماشین مجازی جاوا، اجرای بایت کد تولید شده از سوی کامپایلر است. هر سیستم عامل یک JVM متفاوت دارد، اما خروجی تولید شده پس از اجرای بایت کد روی همه سیستمهای عامل مختلف، یکسان است. به همین دلیل است که جاوا یک زبان مستقل از پلتفرم محسوب میشود.
– بایت کد (Bytecode): چنان که توضیح دادیم کامپایلر JAVAC سورس کد جاوا را به بایت کد کامپایل میکند، به طوری که JVM بتواند آن را اجرا کند. این بایت کد به صورت فایل class. ذخیره میشوند. برای مشاهده بایت کد باید از دیاسمبلرهایی مانند javap استفاده کنید.
– کیت توسعه جاوا (Java Development Kit | JDK): کیت توسعه جاوا چنان که از نامش برمیآید یک کیت توسعه کامل است که همه چیز از کامپایلر تا «محیط زمان اجرای جاوا» (JRE)، دیباگرهای جاوا، مستندات جاوا و غیره را شامل میشود. برای این که یک برنامه جاوا اجرا شود باید JDK را رویی رایانه نصب کنیم تا امکان نوشتن، کامپایل و اجرای برنامههای جاوا را بیابیم.
مطالعه ادامه مطلب 👇👇
🔗 نمونه کد جاوا — نمونه کدهای کاربردی برای برنامه نویسان جاوا — کلیک کنید (+)
📌 کانال اختصاصی آموزشی برنامهنویسی جاوا
آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی برنامهنویسی جاوا را در کانال اختصاصی [@Fara_Java] دنبال کنید. 👇
@Fara_Java — مطالب و آموزشهای برنامهنویسی جاوا فرادرس
✳️ سازنده Copy در جاوا — از صفر تا صد
منظور از سازنده Copy در جاوا یک کلاس «سازنده» (Constructor) است که شیئی را با استفاده از شیء دیگری از همان کلاس جاوا میسازد. این سازنده در مواردی مفید است که بخواهیم یک شیئ پیچیده را که چندین فیلد دارد، کپی کنیم یا این که بخواهیم یک «کپی عمیق» (Deep Copy) از یک شیئ موجود ایجاد کنیم.
══ فهرست مطالب ══
○ ایجاد یک سازنده Copy در جاوا
○ سازنده Copy یا Clone
○ مشکلات وراثتی
○ سخن پایانی
🔸 ایجاد یک سازنده Copy در جاوا
برای ایجاد یک سازنده Copy ابتدا باید یک سازنده اعلان کنیم که شیئی از همان نوع به صورت یک پارامتر میگیرد:
public class Employee {
private int id;
private String name;
public Employee(Employee employee) {
}
}
سپس هر فیلد از شیء ورودی را به وهله جدیدی کپی میکنیم:
public class Employee {
private int id;
private String name;
public Employee(Employee employee) {
this.id = employee.id;
this.name = employee.name;
}
}
تا به اینجا یک «کپی سطحی» (Shallow Copy) داریم که مناسب است، زیرا همه فیلدهای ما (در این مثال یک int و یک String) یا از نوع ابتدایی (Premitive) یا نوع «تغییرناپذیر» (Immutable) هستند. اگر کلاس جاوا دارای فیلدهای تغییرپذیر باشد، در این صورت میتوانیم به جای این کار یک کپی عمیق درون سازنده copy آن ایجاد کنیم. با بهرهگیری از یک کپی عمیق، شیء جدیداً ایجادشده، مستقل از شیء اصلی خواهد بود، زیرا یک کپی متمایز از هر شیء تغییرپذیر ایجاد میکنیم:
public class Employee {
private int id;
private String name;
private Date startDate;
public Employee(Employee employee) {
this.id = employee.id;
this.name = employee.name;
this.startDate = new Date(employee.startDate.getTime());
}
}
مطالعه ادامه مطلب 👇👇
🔗 سازنده Copy در جاوا — از صفر تا صد — کلیک کنید (+)
📌 کانال اختصاصی آموزشی برنامهنویسی جاوا
آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی برنامهنویسی جاوا را در کانال اختصاصی [@Fara_Java] دنبال کنید. 👇
@Fara_Java — مطالب و آموزشهای برنامهنویسی جاوا فرادرس
منظور از سازنده Copy در جاوا یک کلاس «سازنده» (Constructor) است که شیئی را با استفاده از شیء دیگری از همان کلاس جاوا میسازد. این سازنده در مواردی مفید است که بخواهیم یک شیئ پیچیده را که چندین فیلد دارد، کپی کنیم یا این که بخواهیم یک «کپی عمیق» (Deep Copy) از یک شیئ موجود ایجاد کنیم.
══ فهرست مطالب ══
○ ایجاد یک سازنده Copy در جاوا
○ سازنده Copy یا Clone
○ مشکلات وراثتی
○ سخن پایانی
🔸 ایجاد یک سازنده Copy در جاوا
برای ایجاد یک سازنده Copy ابتدا باید یک سازنده اعلان کنیم که شیئی از همان نوع به صورت یک پارامتر میگیرد:
public class Employee {
private int id;
private String name;
public Employee(Employee employee) {
}
}
سپس هر فیلد از شیء ورودی را به وهله جدیدی کپی میکنیم:
public class Employee {
private int id;
private String name;
public Employee(Employee employee) {
this.id = employee.id;
this.name = employee.name;
}
}
تا به اینجا یک «کپی سطحی» (Shallow Copy) داریم که مناسب است، زیرا همه فیلدهای ما (در این مثال یک int و یک String) یا از نوع ابتدایی (Premitive) یا نوع «تغییرناپذیر» (Immutable) هستند. اگر کلاس جاوا دارای فیلدهای تغییرپذیر باشد، در این صورت میتوانیم به جای این کار یک کپی عمیق درون سازنده copy آن ایجاد کنیم. با بهرهگیری از یک کپی عمیق، شیء جدیداً ایجادشده، مستقل از شیء اصلی خواهد بود، زیرا یک کپی متمایز از هر شیء تغییرپذیر ایجاد میکنیم:
public class Employee {
private int id;
private String name;
private Date startDate;
public Employee(Employee employee) {
this.id = employee.id;
this.name = employee.name;
this.startDate = new Date(employee.startDate.getTime());
}
}
مطالعه ادامه مطلب 👇👇
🔗 سازنده Copy در جاوا — از صفر تا صد — کلیک کنید (+)
📌 کانال اختصاصی آموزشی برنامهنویسی جاوا
آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی برنامهنویسی جاوا را در کانال اختصاصی [@Fara_Java] دنبال کنید. 👇
@Fara_Java — مطالب و آموزشهای برنامهنویسی جاوا فرادرس
✳️ نوع Void در جاوا — به زبان ساده
اگر با زبان جاوا آشنا باشید، حتماً تاکنون با نوع Void یا Void Type در بخشی از کدهای جاوا مواجه شدهاید و شاید کنجکاو بودهاید که منظور از این نوع Void در جاوا چیست؟ در این راهنما با این کلاس خاص آشنا میشویم و موارد استفاده و چگونگی استفاده از آن را خواهیم دید. همچنین توضیح میدهیم که چرا باید تا حد امکان از این نوع استفاده نکنیم.
══ فهرست مطالب ══
○ نوع Void در جاوا چیست؟
○ کاربردها
○ چگونه از Void استفاده نکنیم؟
○ سخن پایانی
🔸 نوع Void در جاوا چیست؟
نوع Void از JDK نسخه ۱.۱ به بعد عرضه شده است. هدف از این نوع این است که مقدار بازگشتی void را به صورت یک کلاس نمایندگی کند و شامل یک مقدار عمومی Class<Void> است. این کلاس قابل وهلهسازی نیست، زیرا تنها سازنده آن خصوصی است.
بنابراین تنها مقداری که میتوان به یک متغیر Void انتساب داد، مقدار تهی (null) است. در واقع ممکن است این کار کمی بیهوده به نظر برسد، اما در ادامه خواهید دید که چگونه میتوان از این نوع استفاده کرد.
🔸 کاربردها
برخی راهحلها وجود دارند که استفاده نوع Void میتواند در آنها جالب باشد.
ابتدا میتوانیم از نوع void در زمان بازتاب استفاده کنیم. در واقع نوع بازگشتی هر متد void با متغیر Void.TYPE که مقدار Class<Void> پیشگفته را نگهداری میکند، مطابقت خواهد داشت. یک کلاس ماشین حساب ساده مانند زیر را در نظر بگیرید:
public class Calculator {
private int result = 0;
public int add(int number) {
return result += number;
}
public int sub(int number) {
return result -= number;
}
public void clear() {
result = 0;
}
public void print() {
System.out.println(result);
}
}
مطالعه ادامه مطلب 👇👇
🔗 نوع Void در جاوا — به زبان ساده — کلیک کنید (+)
📌 کانال اختصاصی آموزشی برنامهنویسی جاوا
آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی برنامهنویسی جاوا را در کانال اختصاصی [@Fara_Java] دنبال کنید. 👇
@Fara_Java — مطالب و آموزشهای برنامهنویسی جاوا فرادرس
اگر با زبان جاوا آشنا باشید، حتماً تاکنون با نوع Void یا Void Type در بخشی از کدهای جاوا مواجه شدهاید و شاید کنجکاو بودهاید که منظور از این نوع Void در جاوا چیست؟ در این راهنما با این کلاس خاص آشنا میشویم و موارد استفاده و چگونگی استفاده از آن را خواهیم دید. همچنین توضیح میدهیم که چرا باید تا حد امکان از این نوع استفاده نکنیم.
══ فهرست مطالب ══
○ نوع Void در جاوا چیست؟
○ کاربردها
○ چگونه از Void استفاده نکنیم؟
○ سخن پایانی
🔸 نوع Void در جاوا چیست؟
نوع Void از JDK نسخه ۱.۱ به بعد عرضه شده است. هدف از این نوع این است که مقدار بازگشتی void را به صورت یک کلاس نمایندگی کند و شامل یک مقدار عمومی Class<Void> است. این کلاس قابل وهلهسازی نیست، زیرا تنها سازنده آن خصوصی است.
بنابراین تنها مقداری که میتوان به یک متغیر Void انتساب داد، مقدار تهی (null) است. در واقع ممکن است این کار کمی بیهوده به نظر برسد، اما در ادامه خواهید دید که چگونه میتوان از این نوع استفاده کرد.
🔸 کاربردها
برخی راهحلها وجود دارند که استفاده نوع Void میتواند در آنها جالب باشد.
ابتدا میتوانیم از نوع void در زمان بازتاب استفاده کنیم. در واقع نوع بازگشتی هر متد void با متغیر Void.TYPE که مقدار Class<Void> پیشگفته را نگهداری میکند، مطابقت خواهد داشت. یک کلاس ماشین حساب ساده مانند زیر را در نظر بگیرید:
public class Calculator {
private int result = 0;
public int add(int number) {
return result += number;
}
public int sub(int number) {
return result -= number;
}
public void clear() {
result = 0;
}
public void print() {
System.out.println(result);
}
}
مطالعه ادامه مطلب 👇👇
🔗 نوع Void در جاوا — به زبان ساده — کلیک کنید (+)
📌 کانال اختصاصی آموزشی برنامهنویسی جاوا
آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی برنامهنویسی جاوا را در کانال اختصاصی [@Fara_Java] دنبال کنید. 👇
@Fara_Java — مطالب و آموزشهای برنامهنویسی جاوا فرادرس
✳️ حذف یک عنصر از آرایه جاوا — به زبان ساده
در این راهنمای کوتاه با روشهای مختلف حذف یک عنصر از آرایه جاوا آشنا میشویم. به این منظور از کتابخانه Apache Commons Lang استفاده میکنیم.
══ فهرست مطالب ══
○ Maven
○ حذف یک عنصر از آرایه جاوا
○ استفاده از اندیس به عنوان ورودی
○ استفاده از عنصر به عنوان ورودی
○ سخن پایانی
🔸 Maven
در این مرحله وابستگی commons-lang۳ را به فایل pom.xml پروژه اضافه میکنیم:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.9</version>
</dependency>
🔸 حذف یک عنصر از آرایه جاوا
پیش از آغاز کار ابتدا بررسی میکنیم که وقتی یک عنصر از آرایهای بدون کلاس ArrayUtils از کتابخانه Apache Commons Lang حذف میشود، چه اتفاق رخ میدهد.
با فرض وجود آرایه زیر، عنصر در اندیس ۲ را حذف میکنیم.
یک روش ساده برای انجام این کار میتواند جایگزینی مقدار ذخیره شده در اندیس ۲ با مقدار ذخیره شده در اندیس ۳ باشد تا این که به انتهای آرایه برسیم:
مطالعه ادامه مطلب 👇👇
🔗 حذف یک عنصر از آرایه جاوا — به زبان ساده — کلیک کنید (+)
📌 کانال اختصاصی آموزشی برنامهنویسی جاوا
آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی برنامهنویسی جاوا را در کانال اختصاصی [@Fara_Java] دنبال کنید. 👇
@Fara_Java — مطالب و آموزشهای برنامهنویسی جاوا فرادرس
در این راهنمای کوتاه با روشهای مختلف حذف یک عنصر از آرایه جاوا آشنا میشویم. به این منظور از کتابخانه Apache Commons Lang استفاده میکنیم.
══ فهرست مطالب ══
○ Maven
○ حذف یک عنصر از آرایه جاوا
○ استفاده از اندیس به عنوان ورودی
○ استفاده از عنصر به عنوان ورودی
○ سخن پایانی
🔸 Maven
در این مرحله وابستگی commons-lang۳ را به فایل pom.xml پروژه اضافه میکنیم:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.9</version>
</dependency>
🔸 حذف یک عنصر از آرایه جاوا
پیش از آغاز کار ابتدا بررسی میکنیم که وقتی یک عنصر از آرایهای بدون کلاس ArrayUtils از کتابخانه Apache Commons Lang حذف میشود، چه اتفاق رخ میدهد.
با فرض وجود آرایه زیر، عنصر در اندیس ۲ را حذف میکنیم.
یک روش ساده برای انجام این کار میتواند جایگزینی مقدار ذخیره شده در اندیس ۲ با مقدار ذخیره شده در اندیس ۳ باشد تا این که به انتهای آرایه برسیم:
مطالعه ادامه مطلب 👇👇
🔗 حذف یک عنصر از آرایه جاوا — به زبان ساده — کلیک کنید (+)
📌 کانال اختصاصی آموزشی برنامهنویسی جاوا
آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی برنامهنویسی جاوا را در کانال اختصاصی [@Fara_Java] دنبال کنید. 👇
@Fara_Java — مطالب و آموزشهای برنامهنویسی جاوا فرادرس
✳️ پیکربندی استخر نخ برای وب سرورهای جاوا — راهنمای پیشرفته
در این راهنما به بررسی روش پیکربندی استخر نخ برای وب سرورهای جاوا مانند Apache Tomcat، Glassfish Server و Oracle Weblogic میپردازیم.
══ فهرست مطالب ══
○ استخرهای نخ سرور
○ آپاچی تامکت
○ Glassfish
○ سخن پایانی
🔸 استخرهای نخ سرور
استخرهای نخ سرور از سوی سرور وباپلیکیشن برای اپلیکیشنهای توزیعیافته استفاده و مدیریت میشوند. این استخرهای نخ خارج از کانتینر وب یا سرورلت قرار دارند و از این رو در معرض همان کران کانتکست قرار ندارند.
برخلاف نخهای اپلیکیشن، نخهای سرور حتی پس از توقف اپلیکیشن توزیعیافته نیز به حضور خود ادامه میدهند.
🔸 آپاچی تامکت
ابتدا میتوانیم استخر نخ سرور تامکت را از طریق کلاس پیکربندی Executor در فایل server.xml به صورت زیر پیکربندی کنیم:
minSpareThreads برابر با کوچکترین استخری است که در زمان آغاز به کار وجود خواهد داشت. maxThreads بزرگترین استخری است که پیش از آغاز صفبندی درخواستها از سوی سرور وجود خواهد داشت.
مقادیر پیشفرض تامکت برای این دو گزینه به ترتیب برابر با ۲۵ و ۲۰۰ است. در این پیکربندی ما استخر نخ را به طور پیشفرض کمی کوچکتر کردیم.
مطالعه ادامه مطلب 👇👇
🔗 پیکربندی استخر نخ برای وب سرورهای جاوا — راهنمای پیشرفته — کلیک کنید (+)
📌 کانال اختصاصی آموزشی برنامهنویسی جاوا
آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی برنامهنویسی جاوا را در کانال اختصاصی [@Fara_Java] دنبال کنید. 👇
@Fara_Java — مطالب و آموزشهای برنامهنویسی جاوا فرادرس
در این راهنما به بررسی روش پیکربندی استخر نخ برای وب سرورهای جاوا مانند Apache Tomcat، Glassfish Server و Oracle Weblogic میپردازیم.
══ فهرست مطالب ══
○ استخرهای نخ سرور
○ آپاچی تامکت
○ Glassfish
○ سخن پایانی
🔸 استخرهای نخ سرور
استخرهای نخ سرور از سوی سرور وباپلیکیشن برای اپلیکیشنهای توزیعیافته استفاده و مدیریت میشوند. این استخرهای نخ خارج از کانتینر وب یا سرورلت قرار دارند و از این رو در معرض همان کران کانتکست قرار ندارند.
برخلاف نخهای اپلیکیشن، نخهای سرور حتی پس از توقف اپلیکیشن توزیعیافته نیز به حضور خود ادامه میدهند.
🔸 آپاچی تامکت
ابتدا میتوانیم استخر نخ سرور تامکت را از طریق کلاس پیکربندی Executor در فایل server.xml به صورت زیر پیکربندی کنیم:
minSpareThreads برابر با کوچکترین استخری است که در زمان آغاز به کار وجود خواهد داشت. maxThreads بزرگترین استخری است که پیش از آغاز صفبندی درخواستها از سوی سرور وجود خواهد داشت.
مقادیر پیشفرض تامکت برای این دو گزینه به ترتیب برابر با ۲۵ و ۲۰۰ است. در این پیکربندی ما استخر نخ را به طور پیشفرض کمی کوچکتر کردیم.
مطالعه ادامه مطلب 👇👇
🔗 پیکربندی استخر نخ برای وب سرورهای جاوا — راهنمای پیشرفته — کلیک کنید (+)
📌 کانال اختصاصی آموزشی برنامهنویسی جاوا
آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی برنامهنویسی جاوا را در کانال اختصاصی [@Fara_Java] دنبال کنید. 👇
@Fara_Java — مطالب و آموزشهای برنامهنویسی جاوا فرادرس
✳️ چگونه از ArrayList در جاوا استفاده کنیم؟
══ فهرست مطالب ══
○ ایجاد یک ArrayList
○ اضافه کردن آیتم در انتهای ArrayList
○ اضافه کردن آیتم در خانه مشخص
🔸 ایجاد یک ArrayList
ایجاد این آرایه کار سادهای است و با یک دستور ساده امکانپذیر است که در ادامه خواهید دید:
ArrayList alist = new ArrayList();
اگر در ابتدا بدانید که لیست آرایه شما چند آیتم را در بر خواهد گرفت میتوانید ظرفیت اولیه را مشخص کنید. این ظرفیت اولیه تنها نشانهای برای تخصیص حافظه است وگرنه لیست آرایه محدودیتی در استفاده از آیتم ندارد. اگر شما ظرفیت اولیه را بدانید و آن را مشخص کنید ممکن است کمی در کارایی و سرعت پیشرفت کنید.
ArrayList alist = new ArrayList(20);
🔸 اضافه کردن آیتم در انتهای ArrayList
پرکردن لیست آرایه تقریبا کار سادهای است. تنها کافی است از ()add استفاده کنید تا یک آیتم را به انتهای لیست اضافه نمایید. به مثال زیر توجه نمایید:
ArrayList alist = new ArrayList();
alist.add("apple");
alist.add("banana");
alist.add("cantaloupe");
alist.add("orange");
System.out.println(alist);
# prints
[apple, banana, cantaloupe, orange]
برای یافتن اینکه چه تعداد آیتم در لیست دارید میتوانید از دستور ()size استفاده کنید.
System.out.println("Number of elements in the arraylist: " + alist.size());
# prints
Number of elements in the arraylist: 4
مطالعه ادامه مطلب 👇👇
🔗 چگونه از ArrayList در جاوا استفاده کنیم؟ — کلیک کنید (+)
📌 کانال اختصاصی آموزشی برنامهنویسی جاوا
آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی برنامهنویسی جاوا را در کانال اختصاصی [@Fara_Java] دنبال کنید. 👇
@Fara_Java — مطالب و آموزشهای برنامهنویسی جاوا فرادرس
══ فهرست مطالب ══
○ ایجاد یک ArrayList
○ اضافه کردن آیتم در انتهای ArrayList
○ اضافه کردن آیتم در خانه مشخص
🔸 ایجاد یک ArrayList
ایجاد این آرایه کار سادهای است و با یک دستور ساده امکانپذیر است که در ادامه خواهید دید:
ArrayList alist = new ArrayList();
اگر در ابتدا بدانید که لیست آرایه شما چند آیتم را در بر خواهد گرفت میتوانید ظرفیت اولیه را مشخص کنید. این ظرفیت اولیه تنها نشانهای برای تخصیص حافظه است وگرنه لیست آرایه محدودیتی در استفاده از آیتم ندارد. اگر شما ظرفیت اولیه را بدانید و آن را مشخص کنید ممکن است کمی در کارایی و سرعت پیشرفت کنید.
ArrayList alist = new ArrayList(20);
🔸 اضافه کردن آیتم در انتهای ArrayList
پرکردن لیست آرایه تقریبا کار سادهای است. تنها کافی است از ()add استفاده کنید تا یک آیتم را به انتهای لیست اضافه نمایید. به مثال زیر توجه نمایید:
ArrayList alist = new ArrayList();
alist.add("apple");
alist.add("banana");
alist.add("cantaloupe");
alist.add("orange");
System.out.println(alist);
# prints
[apple, banana, cantaloupe, orange]
برای یافتن اینکه چه تعداد آیتم در لیست دارید میتوانید از دستور ()size استفاده کنید.
System.out.println("Number of elements in the arraylist: " + alist.size());
# prints
Number of elements in the arraylist: 4
مطالعه ادامه مطلب 👇👇
🔗 چگونه از ArrayList در جاوا استفاده کنیم؟ — کلیک کنید (+)
📌 کانال اختصاصی آموزشی برنامهنویسی جاوا
آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی برنامهنویسی جاوا را در کانال اختصاصی [@Fara_Java] دنبال کنید. 👇
@Fara_Java — مطالب و آموزشهای برنامهنویسی جاوا فرادرس
Forwarded from FaraDars_Course
📣 معرفی «کانالهای موضوعی فرادرس» در رشتههای مختلف تحصیلی و تخصصی
🌟 برای دسترسی به مطالب و مقالات آموزشی رایگان فرادرس، عضو کانال مورد نظر خود شوید👇👇👇
📌کانال آموزش برنامهنویسی:
@FaraProg
📌کانال آموزش برنامهنویسی پایتون:
@FaraPython
📌کانال آموزش برنامهنویسی اندروید:
@FaraAnd
📌کانال آموزش برنامهنویسی جاوا:
@Fara_Java
📌کانال آموزش طراحی و توسعه وب:
@FaraWebDev
📌کانال آموزش متلب و سیمولینک:
@FaraMatlabSim
📌کانال آموزش رباتیک:
@FaraRobotics
📌کانال آموزش هوش مصنوعی:
@FaraAI
📌کانال آموزش علم داده:
@Fara_DS
📌کانال آموزش علوم مهندسی:
@FaraEng
📌کانال آموزش مهندسی مکانیک:
@FaraMechanical
📌کانال آموزش مهندسی برق:
@FaraElectrical
📌کانال آموزش مهندسی عمران:
@FaraCivil
📌کانال آموزش معماری:
@FaraArch
📌کانال آموزش شیمی:
@FaraChem
📌کانال آموزش مهندسی و علوم کامپیوتر:
@FaraCompEng
📌کانال آموزش طراحی گرافیک:
@FaraGraphDesign
📌کانال آموزش زبانهای خارجی:
@FaraLang
📌کانال آموزش زیستشناسی:
@FaraBio
📌کانال آموزش فیزیک:
@FaraPhys
📌کانال آموزش ریاضیات:
@FaraMathematic
📌کانال آموزش آمار و احتمالات:
@FaraStatistics
📌کانال آموزش نرم افزارهای آفیس:
@FaraOffice
📌کانال آموزش بورس و بازار سهام:
@FaraVest
📌کانال آموزش بازاریابی دیجیتال:
@Kaprila
@FaraDars — کانال اصلی فرادرس
📣 معرفی «کانالهای موضوعی فرادرس» در رشتههای مختلف تحصیلی و تخصصی
🌟 برای دسترسی به مطالب و مقالات آموزشی رایگان فرادرس، عضو کانال مورد نظر خود شوید👇👇👇
📌کانال آموزش برنامهنویسی:
@FaraProg
📌کانال آموزش برنامهنویسی پایتون:
@FaraPython
📌کانال آموزش برنامهنویسی اندروید:
@FaraAnd
📌کانال آموزش برنامهنویسی جاوا:
@Fara_Java
📌کانال آموزش طراحی و توسعه وب:
@FaraWebDev
📌کانال آموزش متلب و سیمولینک:
@FaraMatlabSim
📌کانال آموزش رباتیک:
@FaraRobotics
📌کانال آموزش هوش مصنوعی:
@FaraAI
📌کانال آموزش علم داده:
@Fara_DS
📌کانال آموزش علوم مهندسی:
@FaraEng
📌کانال آموزش مهندسی مکانیک:
@FaraMechanical
📌کانال آموزش مهندسی برق:
@FaraElectrical
📌کانال آموزش مهندسی عمران:
@FaraCivil
📌کانال آموزش معماری:
@FaraArch
📌کانال آموزش شیمی:
@FaraChem
📌کانال آموزش مهندسی و علوم کامپیوتر:
@FaraCompEng
📌کانال آموزش طراحی گرافیک:
@FaraGraphDesign
📌کانال آموزش زبانهای خارجی:
@FaraLang
📌کانال آموزش زیستشناسی:
@FaraBio
📌کانال آموزش فیزیک:
@FaraPhys
📌کانال آموزش ریاضیات:
@FaraMathematic
📌کانال آموزش آمار و احتمالات:
@FaraStatistics
📌کانال آموزش نرم افزارهای آفیس:
@FaraOffice
📌کانال آموزش بورس و بازار سهام:
@FaraVest
📌کانال آموزش بازاریابی دیجیتال:
@Kaprila
@FaraDars — کانال اصلی فرادرس
✳️ آشنایی مقدماتی با Java Phaser — به زبان ساده
در این مقاله به بررسی سازنده Phaser از پکیج java.util.concurrent خواهیم پرداخت. این سازنده شباهت زیادی به سازنده CountDownLatch دارد که به ما امکان میدهد اجرای نخها را هماهنگ کنیم. با این حال Java Phaser در قیاس با CountDownLatch کارکردهای بیشتری دارد.
══ فهرست مطالب ══
○ Phaser API
○ پیادهسازی منطق با استفاده از Phaser API
○ سخن پایانی
🔸 Phaser API
Phaser به ما امکان میدهد که یک منطق بسازیم که در آن نخها باید در مانع منتظر بمانند تا بتوانند وارد گام بعدی اجرا شوند.
به این ترتیب میتوانیم چند فاز اجرا را مدیریت کنیم و از وهله Phaser مجدداً برای هر فاز برنامه استفاده کنیم. هر فاز میتواند چند عدد نخ داشته باشد که منتظر پیشروی به فاز بعدی هستند. در ادامه یک مثال در مورد استفاده از فازها را برسی خواهیم کرد.
نخ برای مشارکت در هماهنگی باید خود را در وهله Phaser با استفاده از متد ()register ثبت کند. توجه کنید که این کار تنها تعداد طرفهای ثبت شده را افزایش میدهد و نمیتوانیم بررسی کنیم آیا نخ کنونی ثبت شده است یا نه. برای پشتیبانی از این امکان باید یک زیرکلاس از پیادهسازی تهیه کنیم.
🔸 پیادهسازی منطق با استفاده از Phaser API
فرض کنید که میخواهیم چند فاز اکشنها را با یکدیگر هماهنگ کنیم. سه نخ فاز نخست را پردازش میکند و دو نخ دیگر نیز به پردازش فاز دوم میپردازند. در ادامه کلاس LongRunningAction را ایجاد میکنیم که اینترفیس Runnable را پیادهسازی میکند:
class LongRunningAction implements Runnable {
private String threadName;
private Phaser ph;
LongRunningAction(String threadName, Phaser ph) {
this.threadName = threadName;
this.ph = ph;
ph.register();
}
@Override
public void run() {
ph.arriveAndAwaitAdvance();
try {
Thread.sleep(20);
} catch (InterruptedException e) {
e.printStackTrace();
}
ph.arriveAndDeregister();
}
}
زمانی که کلاس اکشن ما وهلهسازی شد، با استفاده از متد ()register در اینترفیس Phaser ثبت نام میکنیم. به این ترتیب تعداد نخهایی که از آن Phaser خاص استفاده میکنند، افزایش مییابد.
فراخوانی به ()arriveAndAwaitAdvance موجب خواهد شد که نخ کنونی منتظر مانع بماند. همان طور که قبلاً اشاره کردیم، زمانی که تعداد طرفهای رسیده به مانع برابر با تعداد طرفهای ثبت نام کرده شود، اجرا تداوم خواهد یافت. پس از این که کار پردازش پایان یافت، نخ کنونی از طریق فراخوانی متد ()arriveAndDeregister خود را از ثبت نام خارج میکند.
مطالعه ادامه مطلب 👇👇
🔗 آشنایی مقدماتی با Java Phaser — به زبان ساده — کلیک کنید (+)
📌 کانال اختصاصی آموزشی برنامهنویسی جاوا
آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی برنامهنویسی جاوا را در کانال اختصاصی [@Fara_Java] دنبال کنید. 👇
@Fara_Java — مطالب و آموزشهای برنامهنویسی جاوا فرادرس
در این مقاله به بررسی سازنده Phaser از پکیج java.util.concurrent خواهیم پرداخت. این سازنده شباهت زیادی به سازنده CountDownLatch دارد که به ما امکان میدهد اجرای نخها را هماهنگ کنیم. با این حال Java Phaser در قیاس با CountDownLatch کارکردهای بیشتری دارد.
══ فهرست مطالب ══
○ Phaser API
○ پیادهسازی منطق با استفاده از Phaser API
○ سخن پایانی
🔸 Phaser API
Phaser به ما امکان میدهد که یک منطق بسازیم که در آن نخها باید در مانع منتظر بمانند تا بتوانند وارد گام بعدی اجرا شوند.
به این ترتیب میتوانیم چند فاز اجرا را مدیریت کنیم و از وهله Phaser مجدداً برای هر فاز برنامه استفاده کنیم. هر فاز میتواند چند عدد نخ داشته باشد که منتظر پیشروی به فاز بعدی هستند. در ادامه یک مثال در مورد استفاده از فازها را برسی خواهیم کرد.
نخ برای مشارکت در هماهنگی باید خود را در وهله Phaser با استفاده از متد ()register ثبت کند. توجه کنید که این کار تنها تعداد طرفهای ثبت شده را افزایش میدهد و نمیتوانیم بررسی کنیم آیا نخ کنونی ثبت شده است یا نه. برای پشتیبانی از این امکان باید یک زیرکلاس از پیادهسازی تهیه کنیم.
🔸 پیادهسازی منطق با استفاده از Phaser API
فرض کنید که میخواهیم چند فاز اکشنها را با یکدیگر هماهنگ کنیم. سه نخ فاز نخست را پردازش میکند و دو نخ دیگر نیز به پردازش فاز دوم میپردازند. در ادامه کلاس LongRunningAction را ایجاد میکنیم که اینترفیس Runnable را پیادهسازی میکند:
class LongRunningAction implements Runnable {
private String threadName;
private Phaser ph;
LongRunningAction(String threadName, Phaser ph) {
this.threadName = threadName;
this.ph = ph;
ph.register();
}
@Override
public void run() {
ph.arriveAndAwaitAdvance();
try {
Thread.sleep(20);
} catch (InterruptedException e) {
e.printStackTrace();
}
ph.arriveAndDeregister();
}
}
زمانی که کلاس اکشن ما وهلهسازی شد، با استفاده از متد ()register در اینترفیس Phaser ثبت نام میکنیم. به این ترتیب تعداد نخهایی که از آن Phaser خاص استفاده میکنند، افزایش مییابد.
فراخوانی به ()arriveAndAwaitAdvance موجب خواهد شد که نخ کنونی منتظر مانع بماند. همان طور که قبلاً اشاره کردیم، زمانی که تعداد طرفهای رسیده به مانع برابر با تعداد طرفهای ثبت نام کرده شود، اجرا تداوم خواهد یافت. پس از این که کار پردازش پایان یافت، نخ کنونی از طریق فراخوانی متد ()arriveAndDeregister خود را از ثبت نام خارج میکند.
مطالعه ادامه مطلب 👇👇
🔗 آشنایی مقدماتی با Java Phaser — به زبان ساده — کلیک کنید (+)
📌 کانال اختصاصی آموزشی برنامهنویسی جاوا
آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی برنامهنویسی جاوا را در کانال اختصاصی [@Fara_Java] دنبال کنید. 👇
@Fara_Java — مطالب و آموزشهای برنامهنویسی جاوا فرادرس
✳️ کاردزدی (Work Stealing) در جاوا — از صفر تا صد
در این مقاله به بررسی مفهوم کاردزدی در جاوا خواهیم پرداخت. منظور از کاردزدی (Work Stealing) نوعی راهبرد زمانبندی برای برنامههای رایانهای چندنخی در محاسبات موازی است. به این ترتیب مشکل اجرای محاسبات چندنخی به روش دینامیکی حل میشود. در این روش محاسبات، فرد میتواند نخهای اجرایی جدیدی را روی یک رایانه چندنخی به روش استاتیک با تعداد ثابتی پردازنده یا هسته ایجاد کند. این راهبرد از نظر زمان اجرا، مصرف حافظه و ارتباط بین پردازندهای عملکرد بسیار بهینهای دارد.
══ فهرست مطالب ══
○ کار دزدی در جاوا
○ پیادهسازی فریمورک Fork/Join
○ استخرهای نخ همگام و ناهمگام
○ مثال عملی: یافتن اعداد اول
○ سخن پایانی
🔸 کار دزدی در جاوا
مفهوم کاردزدی با هدف کاهش تنازع در اپلیکیشنهای چندنخی در جاوا معرفی شده است. این کار با استفاده از فریمورک fork/join انجام مییابد.
در فریمورک fork/join، مسائل یا وظایف به طور بازگشتی به وظایف فرعی تجزیه میشوند. این در ادامه وظایف فرعی به صورت منفرد حل شده و نتایج هر یک با هم ترکیب میشوند تا نتیجه نهایی را تشکیل دهند:
Result solve(Problem problem) {
if (problem is small)
directly solve problem
else {
split problem into independent parts
fork new subtasks to solve each part
join all subtasks
compose result from subresults
}
}
وظیفهای که تجزیه شده است به کمک «نخهای کارگر» (worker threads) حل میشود که از سوی «استخر نخ» (thread pool) تأمین میشوند. هر نخ کارگر دارای برخی وظایف فرعی است که مسئولیتشان را بر عهده گرفته است. این موارد در «صفهای دوطرفه» (deques) ذخیره میشوند.
🔸 پیادهسازی فریمورک Fork/Join
ما میتوانیم یک استخر نخ کاردزدی با استفاده از یکی از کلاسهای ForkJoinPool یا Executors بسازیم:
ForkJoinPool commonPool = ForkJoinPool.commonPool();
ExecutorService workStealingPool = Executors.newWorkStealingPool();
کلاس Executors یک متد OVERLOAD-شده به نام newWorkStealingPool دارد که یک آرگومان عدد صحیح میگیرد که نماینده سطح «موازیسازی» (parallelism) است.
همچنین Executors.newWorkStealingPool یک تجرید از ForkJoinPool.commonPool است. تنها تفاوت در این است که Executors.newWorkStealingPool یک استخر در حالت ناهمگام میسازد که ForkJoinPool.commonPool این کار را انجام نمیدهد.
مطالعه ادامه مطلب 👇👇
🔗 کاردزدی (Work Stealing) در جاوا — از صفر تا صد — کلیک کنید (+)
📌 کانال اختصاصی آموزشی برنامهنویسی جاوا
آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی برنامهنویسی جاوا را در کانال اختصاصی [@Fara_Java] دنبال کنید. 👇
@Fara_Java — مطالب و آموزشهای برنامهنویسی جاوا فرادرس
در این مقاله به بررسی مفهوم کاردزدی در جاوا خواهیم پرداخت. منظور از کاردزدی (Work Stealing) نوعی راهبرد زمانبندی برای برنامههای رایانهای چندنخی در محاسبات موازی است. به این ترتیب مشکل اجرای محاسبات چندنخی به روش دینامیکی حل میشود. در این روش محاسبات، فرد میتواند نخهای اجرایی جدیدی را روی یک رایانه چندنخی به روش استاتیک با تعداد ثابتی پردازنده یا هسته ایجاد کند. این راهبرد از نظر زمان اجرا، مصرف حافظه و ارتباط بین پردازندهای عملکرد بسیار بهینهای دارد.
══ فهرست مطالب ══
○ کار دزدی در جاوا
○ پیادهسازی فریمورک Fork/Join
○ استخرهای نخ همگام و ناهمگام
○ مثال عملی: یافتن اعداد اول
○ سخن پایانی
🔸 کار دزدی در جاوا
مفهوم کاردزدی با هدف کاهش تنازع در اپلیکیشنهای چندنخی در جاوا معرفی شده است. این کار با استفاده از فریمورک fork/join انجام مییابد.
در فریمورک fork/join، مسائل یا وظایف به طور بازگشتی به وظایف فرعی تجزیه میشوند. این در ادامه وظایف فرعی به صورت منفرد حل شده و نتایج هر یک با هم ترکیب میشوند تا نتیجه نهایی را تشکیل دهند:
Result solve(Problem problem) {
if (problem is small)
directly solve problem
else {
split problem into independent parts
fork new subtasks to solve each part
join all subtasks
compose result from subresults
}
}
وظیفهای که تجزیه شده است به کمک «نخهای کارگر» (worker threads) حل میشود که از سوی «استخر نخ» (thread pool) تأمین میشوند. هر نخ کارگر دارای برخی وظایف فرعی است که مسئولیتشان را بر عهده گرفته است. این موارد در «صفهای دوطرفه» (deques) ذخیره میشوند.
🔸 پیادهسازی فریمورک Fork/Join
ما میتوانیم یک استخر نخ کاردزدی با استفاده از یکی از کلاسهای ForkJoinPool یا Executors بسازیم:
ForkJoinPool commonPool = ForkJoinPool.commonPool();
ExecutorService workStealingPool = Executors.newWorkStealingPool();
کلاس Executors یک متد OVERLOAD-شده به نام newWorkStealingPool دارد که یک آرگومان عدد صحیح میگیرد که نماینده سطح «موازیسازی» (parallelism) است.
همچنین Executors.newWorkStealingPool یک تجرید از ForkJoinPool.commonPool است. تنها تفاوت در این است که Executors.newWorkStealingPool یک استخر در حالت ناهمگام میسازد که ForkJoinPool.commonPool این کار را انجام نمیدهد.
مطالعه ادامه مطلب 👇👇
🔗 کاردزدی (Work Stealing) در جاوا — از صفر تا صد — کلیک کنید (+)
📌 کانال اختصاصی آموزشی برنامهنویسی جاوا
آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی برنامهنویسی جاوا را در کانال اختصاصی [@Fara_Java] دنبال کنید. 👇
@Fara_Java — مطالب و آموزشهای برنامهنویسی جاوا فرادرس
✳️ قابلیت های پیش نمایشی جاوا — به زبان ساده
در این مقاله قصد داریم به بررسی انگیزه ارائه قابلیت های پیش نمایشی جاوا بپردازیم و تفاوت آنها را با قابلیتهای آزمایشی بدانیم. همچنین شیوه فعالسازی «قابلیتهای پیشنمایشی» (Preview Features) را با ابزارهای مختلف مورد بررسی قرار میدهیم.
══ فهرست مطالب ══
○ علت ارائه قابلیت های پیش نمایشی جاوا چیست؟
○ قابلیتهای پیشنمایشی در برابر قابلیت های آزمایشی جاوا
○ استفاده از قابلیتهای پیشنمایشی جاوا
○ سخن پایانی
🔸 علت ارائه قابلیت های پیش نمایشی جاوا چیست؟
همچنان که احتمالاً اکنون برای هر کس روشن است، انتشار قابلیتهای جاوا هر شش ماه یک بار صورت میگیرد. اما در پارهای موارد این بازه ششماهه موجب میشود که فرصت کافی برای دریافت بازخورد در مورد قابلیتهای جدید وجود نداشته باشد. با توجه به این که جاوا برای توسعه تعداد بالایی از سیستمها مورد استفاده قرار گرفته است، حتی یک کارکرد نادرست کوچک در یک پیادهسازی یا طراحی ضعیف قابلیت میتواند هزینههای زیادی اعمال کند. باید روشی داشته باشیم که اطمینان حاصل کنیم قابلیتهای جدید پایدار هستند. مهمتر آن که باید با نیازهای جامعه توسعهدهندگان نیز سازگار باشد.
به لطف JEP-۱۲ (+) امکان درج مرور قابلیتهای زبان و VM در نسخههای انتشار فراهم شده است. بدین ترتیب جامعه توسعهدهندگان میتواند قابلیتهای جدید را در سناریوهای واقعی ولی مطمئناً در محیطهای غیر پروداکشن بررسی کند. بر اساس این بازخورد جامعه، یک قابلیت پیشنمایشی میتواند مورد بازنگری و اصلاح قرار گیرد و این اصلاح حتی ممکن است چند بار در چند انتشار رخ دهد. در نهایت قابلیتها به صورت دائمی درمیآیند. اما در برخی موارد مرورهای ارائه شده ممکن است منجر به حذف کلی یک قابلیت پیشنمایشی شوند.
🔸 قابلیتهای پیشنمایشی در برابر قابلیت های آزمایشی جاوا
قابلیتهای پیشنمایشی جاوا کاملاً تخصصی هستند و در معرض ارزیابی قرار میگیرند. از این رو هنوز به حالت نهایی خود نرسیدهاند. به دلیل کیفیت بالا، همه پیادهسازیهای متفاوت JDK باید شامل همه قابلیتهای پیشنمایشی هر نسخه عرضه شده جاوا باشند. با این حال یک نسخه جاوا همچنان نمیتواند قابلیتهای پیشنمایشی نسخههای قبلی را داشته باشد. قابلیتهای پیشنمایشی اساساً روشی برای تشویق جامعه به بررسی و ارائه بازخورد هستند. به علاوه همه قابلیتهای جاوا برای این که نهایی شوند، وارد مرحله پیشنمایش نمیشوند.
JEP-۱۲ در مورد قابلیتهای نمایشی چنین توضیح میدهد:
از سوی دیگر قابلیتهای آزمایشی هنوز فاصله زیادی با تکمیل شدن دارند. اثرات آنها به طور مشخص جدا از اثرات JDK است. قابلیتهای آزمایشی ناپایدار هستند و از این رو ریسکی را بر زبان تحمیل میکنند. در نتیجه پیادهسازیهای مختلف JDK ممکن است شامل مجموعه قابلیتهای آزمایشی متفاوتی باشند.
مطالعه ادامه مطلب 👇👇
🔗 قابلیت های پیش نمایشی جاوا — به زبان ساده — کلیک کنید (+)
📌 کانال اختصاصی آموزشی برنامهنویسی جاوا
آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی برنامهنویسی جاوا را در کانال اختصاصی [@Fara_Java] دنبال کنید. 👇
@Fara_Java — مطالب و آموزشهای برنامهنویسی جاوا فرادرس
در این مقاله قصد داریم به بررسی انگیزه ارائه قابلیت های پیش نمایشی جاوا بپردازیم و تفاوت آنها را با قابلیتهای آزمایشی بدانیم. همچنین شیوه فعالسازی «قابلیتهای پیشنمایشی» (Preview Features) را با ابزارهای مختلف مورد بررسی قرار میدهیم.
══ فهرست مطالب ══
○ علت ارائه قابلیت های پیش نمایشی جاوا چیست؟
○ قابلیتهای پیشنمایشی در برابر قابلیت های آزمایشی جاوا
○ استفاده از قابلیتهای پیشنمایشی جاوا
○ سخن پایانی
🔸 علت ارائه قابلیت های پیش نمایشی جاوا چیست؟
همچنان که احتمالاً اکنون برای هر کس روشن است، انتشار قابلیتهای جاوا هر شش ماه یک بار صورت میگیرد. اما در پارهای موارد این بازه ششماهه موجب میشود که فرصت کافی برای دریافت بازخورد در مورد قابلیتهای جدید وجود نداشته باشد. با توجه به این که جاوا برای توسعه تعداد بالایی از سیستمها مورد استفاده قرار گرفته است، حتی یک کارکرد نادرست کوچک در یک پیادهسازی یا طراحی ضعیف قابلیت میتواند هزینههای زیادی اعمال کند. باید روشی داشته باشیم که اطمینان حاصل کنیم قابلیتهای جدید پایدار هستند. مهمتر آن که باید با نیازهای جامعه توسعهدهندگان نیز سازگار باشد.
به لطف JEP-۱۲ (+) امکان درج مرور قابلیتهای زبان و VM در نسخههای انتشار فراهم شده است. بدین ترتیب جامعه توسعهدهندگان میتواند قابلیتهای جدید را در سناریوهای واقعی ولی مطمئناً در محیطهای غیر پروداکشن بررسی کند. بر اساس این بازخورد جامعه، یک قابلیت پیشنمایشی میتواند مورد بازنگری و اصلاح قرار گیرد و این اصلاح حتی ممکن است چند بار در چند انتشار رخ دهد. در نهایت قابلیتها به صورت دائمی درمیآیند. اما در برخی موارد مرورهای ارائه شده ممکن است منجر به حذف کلی یک قابلیت پیشنمایشی شوند.
🔸 قابلیتهای پیشنمایشی در برابر قابلیت های آزمایشی جاوا
قابلیتهای پیشنمایشی جاوا کاملاً تخصصی هستند و در معرض ارزیابی قرار میگیرند. از این رو هنوز به حالت نهایی خود نرسیدهاند. به دلیل کیفیت بالا، همه پیادهسازیهای متفاوت JDK باید شامل همه قابلیتهای پیشنمایشی هر نسخه عرضه شده جاوا باشند. با این حال یک نسخه جاوا همچنان نمیتواند قابلیتهای پیشنمایشی نسخههای قبلی را داشته باشد. قابلیتهای پیشنمایشی اساساً روشی برای تشویق جامعه به بررسی و ارائه بازخورد هستند. به علاوه همه قابلیتهای جاوا برای این که نهایی شوند، وارد مرحله پیشنمایش نمیشوند.
JEP-۱۲ در مورد قابلیتهای نمایشی چنین توضیح میدهد:
از سوی دیگر قابلیتهای آزمایشی هنوز فاصله زیادی با تکمیل شدن دارند. اثرات آنها به طور مشخص جدا از اثرات JDK است. قابلیتهای آزمایشی ناپایدار هستند و از این رو ریسکی را بر زبان تحمیل میکنند. در نتیجه پیادهسازیهای مختلف JDK ممکن است شامل مجموعه قابلیتهای آزمایشی متفاوتی باشند.
مطالعه ادامه مطلب 👇👇
🔗 قابلیت های پیش نمایشی جاوا — به زبان ساده — کلیک کنید (+)
📌 کانال اختصاصی آموزشی برنامهنویسی جاوا
آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی برنامهنویسی جاوا را در کانال اختصاصی [@Fara_Java] دنبال کنید. 👇
@Fara_Java — مطالب و آموزشهای برنامهنویسی جاوا فرادرس
✳️ زبان برنامه نویسی جاوا (Java) — از صفر تا صد
زبان برنامه نویسی جاوا (JAVA) در ۲۳ مه ۱۹۹۵ (برابر با ۲ خرداد ۱۳۷۴) از سوی جیمز گاسلینگ (James Gosling) طراحی شده است. جاوا به گواهی سایت معتبر Tiobe از سال ۲۰۰۱ همواره به عنوان اولین یا دومین زبان برنامهنویسی دنیا مطرح بوده است. در تصویر زیر درصد رتبه کسب شده این زبان را بین همه زبانهای برنامهنویسی در طی ۱۸ سال اخیر مشاهده میکنید. همچنین، زبان برنامه نویسی COBOL نیز یکی از زبانهای برتر در حوزه تجاری و Mainframe به حساب میآید.
══ فهرست مطالب ══
○ جاوا چیست؟
○ ریشههای پیدایش جاوا
○ مروری بر پلتفرم جاوا
○ چه زبانهایی از جاوا مشتق شدهاند؟
○ جاوا چه تفاوتی با جاوا اسکریپت دارد؟
○ فریمورکهای جاوا چه هستند؟
○ مزیتهای جاوا در چیست؟
○ معایب برنامهنویسی جاوا چیست ؟
○ جاوا چه کاربردهایی دارد ؟
○ موقعیتهای شغلی برای برنامهنویسان جاوا چطور است؟
○ جمعبندی زبان برنامهنویسی جاوا
○ یادگیری جاوا
○ سخن پایانی
🔸 جاوا چیست؟
جاوا یک زبان برنامهنویسی چندمنظوره و شیگرا است که تا حدودی زیادی به C و ++C شباهت دارد؛ اما استفاده از آن آسانتر است و امکان ساخت برنامههایی قدرتمند با آن وجود دارد. البته تعریفی که شرکت سان مایکروسیستمز در سال ۲۰۰۰ ارائه کرده است، شاید از تعریف فوق گویاتر باشد:
در ادامه هر یک از خصوصیات فوق را به طرز جداگانهای مورد بررسی قرار میدهیم:
– جاوا یک زبان ساده است
جاوا در ابتدا بر اساس زبانهای C و ++C و با حذف برخی ویژگیهایی که قابلیت سردرگم کننده داشتند مدلسازی شد. از جمله این ویژگیها میتوان به اشارهگرها، پیادهسازی چندباره وراثت و بارگذاری بیش از حد عملگرها اشاره کرد که در جاوا حذف شدند. یکی از ویژگیهایی که در C++/C وجود نداشت؛ اما جزو ویژگیهای اساسی جاوا به شمار میآید، امکان بازیافت حافظه (garbage-collection) است که به طور خودکار اشیا و آرایههای بی استفاده را حذف میکند.
🔸 ریشههای پیدایش جاوا
جاوا از سوی تیمی در شرکت سان مایکروسیستمز به رهبری جیمز گاسلینگ توسعه یافته و در سال ۱۹۹۵ منتشر شد. این زبان متعاقباً از سوی شرکت اوراکل خریداری شده است.
هدف اصلی خالقان جاوا این بوده که زبانی را ایجاد کنند که بتوانند آن را روی کاربردهای مصرفی اجرا کنند. این طراحان میتوانستهاند دنیایی را تصور کنند که در آن کدها روی یخچال یا دستگاه توستر اجرا میشوند، یعنی آن چه که امروز به نام اینترنت اشیا میشناسیم. ما تنها در طی سالهای اخیر دستگاههایی ساختهایم که چنین قابلیتهایی داشته باشند و از این رو باید گفت که این طراحان اولیه بسیار از زمان خود جلوتر بودهاند. هدف طراحی این زبان منجر به چنین معماری برای آن شده است. یکی از شعارهای مهم زبان برنامه جاوا چنین است: «یک بار بنویس، همه جا اجرا کن». به بیان دیگر شما با جاوا میتوانید کدی بنویسید که آن را برای اجرای روی هر نوع دستگاهی کامپایل کنید.
اما نکته جالب این است که جاوا به دلیل این ویژگی خود محبوب نشده است؛ بلکه از مزیت فناوری نوظهوری که در همان نیمههای دهه ۹۰ میلادی ظهور یافت و چهره دنیا را دگرگون ساخت بهره گرفت؛ منظور ما فناوری وب است. جاوا این قابلیت را داشت که با آن میشد برنامههایی به نام applet نوشت. این اپلتها برنامههای کوچکی بودند که میشد داخل مرورگرهای وب آنها را اجرا کرد. با رشد خیرهکننده وب جاوا نیز سوار این موج شد و به یک زبان برنامهنویسی بسیار محبوب تبدیل شد. بدین ترتیب علیرغم این که قصد اولیه طراحان این زبان چیز دیگری بود؛ اما بسیاری از وب اپلیکیشنها به زبان جاوا نوشته شدند.
مطالعه ادامه مطلب 👇👇
🔗 زبان برنامه نویسی جاوا (Java) — از صفر تا صد — کلیک کنید (+)
📌 کانال اختصاصی آموزشی برنامهنویسی جاوا
آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی برنامهنویسی جاوا را در کانال اختصاصی [@Fara_Java] دنبال کنید. 👇
@Fara_Java — مطالب و آموزشهای برنامهنویسی جاوا فرادرس
زبان برنامه نویسی جاوا (JAVA) در ۲۳ مه ۱۹۹۵ (برابر با ۲ خرداد ۱۳۷۴) از سوی جیمز گاسلینگ (James Gosling) طراحی شده است. جاوا به گواهی سایت معتبر Tiobe از سال ۲۰۰۱ همواره به عنوان اولین یا دومین زبان برنامهنویسی دنیا مطرح بوده است. در تصویر زیر درصد رتبه کسب شده این زبان را بین همه زبانهای برنامهنویسی در طی ۱۸ سال اخیر مشاهده میکنید. همچنین، زبان برنامه نویسی COBOL نیز یکی از زبانهای برتر در حوزه تجاری و Mainframe به حساب میآید.
══ فهرست مطالب ══
○ جاوا چیست؟
○ ریشههای پیدایش جاوا
○ مروری بر پلتفرم جاوا
○ چه زبانهایی از جاوا مشتق شدهاند؟
○ جاوا چه تفاوتی با جاوا اسکریپت دارد؟
○ فریمورکهای جاوا چه هستند؟
○ مزیتهای جاوا در چیست؟
○ معایب برنامهنویسی جاوا چیست ؟
○ جاوا چه کاربردهایی دارد ؟
○ موقعیتهای شغلی برای برنامهنویسان جاوا چطور است؟
○ جمعبندی زبان برنامهنویسی جاوا
○ یادگیری جاوا
○ سخن پایانی
🔸 جاوا چیست؟
جاوا یک زبان برنامهنویسی چندمنظوره و شیگرا است که تا حدودی زیادی به C و ++C شباهت دارد؛ اما استفاده از آن آسانتر است و امکان ساخت برنامههایی قدرتمند با آن وجود دارد. البته تعریفی که شرکت سان مایکروسیستمز در سال ۲۰۰۰ ارائه کرده است، شاید از تعریف فوق گویاتر باشد:
در ادامه هر یک از خصوصیات فوق را به طرز جداگانهای مورد بررسی قرار میدهیم:
– جاوا یک زبان ساده است
جاوا در ابتدا بر اساس زبانهای C و ++C و با حذف برخی ویژگیهایی که قابلیت سردرگم کننده داشتند مدلسازی شد. از جمله این ویژگیها میتوان به اشارهگرها، پیادهسازی چندباره وراثت و بارگذاری بیش از حد عملگرها اشاره کرد که در جاوا حذف شدند. یکی از ویژگیهایی که در C++/C وجود نداشت؛ اما جزو ویژگیهای اساسی جاوا به شمار میآید، امکان بازیافت حافظه (garbage-collection) است که به طور خودکار اشیا و آرایههای بی استفاده را حذف میکند.
🔸 ریشههای پیدایش جاوا
جاوا از سوی تیمی در شرکت سان مایکروسیستمز به رهبری جیمز گاسلینگ توسعه یافته و در سال ۱۹۹۵ منتشر شد. این زبان متعاقباً از سوی شرکت اوراکل خریداری شده است.
هدف اصلی خالقان جاوا این بوده که زبانی را ایجاد کنند که بتوانند آن را روی کاربردهای مصرفی اجرا کنند. این طراحان میتوانستهاند دنیایی را تصور کنند که در آن کدها روی یخچال یا دستگاه توستر اجرا میشوند، یعنی آن چه که امروز به نام اینترنت اشیا میشناسیم. ما تنها در طی سالهای اخیر دستگاههایی ساختهایم که چنین قابلیتهایی داشته باشند و از این رو باید گفت که این طراحان اولیه بسیار از زمان خود جلوتر بودهاند. هدف طراحی این زبان منجر به چنین معماری برای آن شده است. یکی از شعارهای مهم زبان برنامه جاوا چنین است: «یک بار بنویس، همه جا اجرا کن». به بیان دیگر شما با جاوا میتوانید کدی بنویسید که آن را برای اجرای روی هر نوع دستگاهی کامپایل کنید.
اما نکته جالب این است که جاوا به دلیل این ویژگی خود محبوب نشده است؛ بلکه از مزیت فناوری نوظهوری که در همان نیمههای دهه ۹۰ میلادی ظهور یافت و چهره دنیا را دگرگون ساخت بهره گرفت؛ منظور ما فناوری وب است. جاوا این قابلیت را داشت که با آن میشد برنامههایی به نام applet نوشت. این اپلتها برنامههای کوچکی بودند که میشد داخل مرورگرهای وب آنها را اجرا کرد. با رشد خیرهکننده وب جاوا نیز سوار این موج شد و به یک زبان برنامهنویسی بسیار محبوب تبدیل شد. بدین ترتیب علیرغم این که قصد اولیه طراحان این زبان چیز دیگری بود؛ اما بسیاری از وب اپلیکیشنها به زبان جاوا نوشته شدند.
مطالعه ادامه مطلب 👇👇
🔗 زبان برنامه نویسی جاوا (Java) — از صفر تا صد — کلیک کنید (+)
📌 کانال اختصاصی آموزشی برنامهنویسی جاوا
آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی برنامهنویسی جاوا را در کانال اختصاصی [@Fara_Java] دنبال کنید. 👇
@Fara_Java — مطالب و آموزشهای برنامهنویسی جاوا فرادرس
✳️ ۱۰ مفهوم اصلی زبان جاوا که هر فرد مبتدی باید بداند
«جاوا» (Java)، یک زبان برنامهنویسی است که به شما در ساخت نرمافزارهای مخصوص پلتفرمهای مختلف کمک میکند. اگر قصد نوشتن برنامهای با «رابط کاربری گرافیکی» (Graphical User Interface) یا اصطلاحاً «GUI» برای دسکتاپ را دارید یا میخواهید یک نرمافزار سمت سرور و یا یک اپلیکیشن تلفن همراه برای اندروید بسازید، زبان جاوا گزینه مناسبی برای شما خواهد بود. برای شروع یادگیری هر زبانی، ابتدا باید با مفاهیم اصلی آن آشنا شوید. در این مقاله، ۱۰ مفهوم کلیدی در زبان جاوا از جمله مفهوم کلاس در برنامه نویسی جاوا را به شما معرفی خواهیم کرد.
══ فهرست مطالب ══
○ چرخه توسعه (ساخت نرمافزار جاوا)
○ متغیر (Variable)
○ نوع (Type)
○ کلاس (Class)
○ شیء (Object)
○ سازنده (Constructor)
○ متد (Method)
○ فیلد (Field)
○ رابط (Interface)
○ پکیج (Package)
○ سخن آخر
🔸 چرخه توسعه (ساخت نرمافزار جاوا)
برای هر نوع برنامهای، کدهای جاوا در فایلهای متنی با پسوند «java.» نوشته میشوند که به آنها «سورس فایلهای جاوا» (Java Source Files) میگویند. این سورس فایلها، با استفاده از مترجم یا «کامپایلر» (Compiler) جاوا، به «فایلهای کلاس» (Class Files) در این زبان کامپایل میشوند. سپس، فایلهای کلاس، درون آرشیوهای «ZIP» کنار یکدیگر قرار میگیرند که به آنها، «فایلهای جار» (JAR Files) میگویند. در مرحله بعد، این فایلهای جار به ماشین مجازی جاوا داده شده و با استفاده از تابع «()main» در یک کلاس مشخص اجرا میشوند.
🔸 متغیر (Variable)
«متغیر» (Variable)، از اساسیترین مفاهیم هر برنامهای در هر زبانی محسوب میشود. متغیر، یک مکان نامگذاری شده در حافظه برنامه است که میتواند مقادیر را در خود ذخیره کند. موارد زیر را میتوان به عنوان خصوصیات یک متغیر در نظر گرفت:
– برای هر متغیر، شروع و پایانی در در چرخه عمر آن وجود دارد.
– متغیر را میتوان از یک حافظه خارجی ذخیره و یا بازیابی کرد.
– مقدار متغیر قابل تغییر است.
– متغیر در محاسبات مورد استفاده قرار میگیرد.
فرض کنید که میخواهید مساحت یک دایره را محاسبه کنید. برای این کار باید شعاع دایره را در یک متغیر (فرضاً با نام radius) ذخیره کرده و سپس با استفاده از آن، مساحت را به دست بیاورید (مانند کد زیر).
static private double computeArea(double radius) {
return Math.PI * radius * radius;
}
مطالعه ادامه مطلب 👇👇
🔗 ۱۰ مفهوم اصلی زبان جاوا که هر فرد مبتدی باید بداند — کلیک کنید (+)
📌 کانال اختصاصی آموزشی برنامهنویسی جاوا
آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی برنامهنویسی جاوا را در کانال اختصاصی [@Fara_Java] دنبال کنید. 👇
@Fara_Java — مطالب و آموزشهای برنامهنویسی جاوا فرادرس
«جاوا» (Java)، یک زبان برنامهنویسی است که به شما در ساخت نرمافزارهای مخصوص پلتفرمهای مختلف کمک میکند. اگر قصد نوشتن برنامهای با «رابط کاربری گرافیکی» (Graphical User Interface) یا اصطلاحاً «GUI» برای دسکتاپ را دارید یا میخواهید یک نرمافزار سمت سرور و یا یک اپلیکیشن تلفن همراه برای اندروید بسازید، زبان جاوا گزینه مناسبی برای شما خواهد بود. برای شروع یادگیری هر زبانی، ابتدا باید با مفاهیم اصلی آن آشنا شوید. در این مقاله، ۱۰ مفهوم کلیدی در زبان جاوا از جمله مفهوم کلاس در برنامه نویسی جاوا را به شما معرفی خواهیم کرد.
══ فهرست مطالب ══
○ چرخه توسعه (ساخت نرمافزار جاوا)
○ متغیر (Variable)
○ نوع (Type)
○ کلاس (Class)
○ شیء (Object)
○ سازنده (Constructor)
○ متد (Method)
○ فیلد (Field)
○ رابط (Interface)
○ پکیج (Package)
○ سخن آخر
🔸 چرخه توسعه (ساخت نرمافزار جاوا)
برای هر نوع برنامهای، کدهای جاوا در فایلهای متنی با پسوند «java.» نوشته میشوند که به آنها «سورس فایلهای جاوا» (Java Source Files) میگویند. این سورس فایلها، با استفاده از مترجم یا «کامپایلر» (Compiler) جاوا، به «فایلهای کلاس» (Class Files) در این زبان کامپایل میشوند. سپس، فایلهای کلاس، درون آرشیوهای «ZIP» کنار یکدیگر قرار میگیرند که به آنها، «فایلهای جار» (JAR Files) میگویند. در مرحله بعد، این فایلهای جار به ماشین مجازی جاوا داده شده و با استفاده از تابع «()main» در یک کلاس مشخص اجرا میشوند.
🔸 متغیر (Variable)
«متغیر» (Variable)، از اساسیترین مفاهیم هر برنامهای در هر زبانی محسوب میشود. متغیر، یک مکان نامگذاری شده در حافظه برنامه است که میتواند مقادیر را در خود ذخیره کند. موارد زیر را میتوان به عنوان خصوصیات یک متغیر در نظر گرفت:
– برای هر متغیر، شروع و پایانی در در چرخه عمر آن وجود دارد.
– متغیر را میتوان از یک حافظه خارجی ذخیره و یا بازیابی کرد.
– مقدار متغیر قابل تغییر است.
– متغیر در محاسبات مورد استفاده قرار میگیرد.
فرض کنید که میخواهید مساحت یک دایره را محاسبه کنید. برای این کار باید شعاع دایره را در یک متغیر (فرضاً با نام radius) ذخیره کرده و سپس با استفاده از آن، مساحت را به دست بیاورید (مانند کد زیر).
static private double computeArea(double radius) {
return Math.PI * radius * radius;
}
مطالعه ادامه مطلب 👇👇
🔗 ۱۰ مفهوم اصلی زبان جاوا که هر فرد مبتدی باید بداند — کلیک کنید (+)
📌 کانال اختصاصی آموزشی برنامهنویسی جاوا
آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی برنامهنویسی جاوا را در کانال اختصاصی [@Fara_Java] دنبال کنید. 👇
@Fara_Java — مطالب و آموزشهای برنامهنویسی جاوا فرادرس
🔴 رایگان آموزش ببینید و مهارت کسب کنید.
🌟 معرفی آموزشهای رایگان و پرطرفدار فرادرس
♨️ صدها عنوان آموزش رایگان فرادرس در دسترس هستند که در طول ماه، توسط دهها هزار دانشجو مورد مطالعه قرار میگیرند.
شما عزیزان نیز میتوانید با مراجعه به لینکهای زیر، آموزشهای پرمخاطب در دستهبندی مورد نظر خود را مشاهده کرده و رایگان دانلود کنید👇
✅ آموزشهای رایگان جاوا Java [+]
📚 تمامی آموزشهای رایگان و پرمخاطب [+]
@FaraDars - فرادرس
🔴 رایگان آموزش ببینید و مهارت کسب کنید.
🌟 معرفی آموزشهای رایگان و پرطرفدار فرادرس
♨️ صدها عنوان آموزش رایگان فرادرس در دسترس هستند که در طول ماه، توسط دهها هزار دانشجو مورد مطالعه قرار میگیرند.
شما عزیزان نیز میتوانید با مراجعه به لینکهای زیر، آموزشهای پرمخاطب در دستهبندی مورد نظر خود را مشاهده کرده و رایگان دانلود کنید👇
✅ آموزشهای رایگان جاوا Java [+]
📚 تمامی آموزشهای رایگان و پرمخاطب [+]
@FaraDars - فرادرس
✳️ چگونه بدون JRE برنامههای جاوا را روی سیستم اجرا کنیم؟
برنامههای بزرگی مانند دانلودکننده میزبانی فایل JDownloader یا فیدخوان RSSOwl برای اجرا به جاوا نیاز دارند. اگر کنترل کل سیستم در اختیار فرد باشد مشکلی پیش نمیآید اما اگر دسترسی کامل بر روی سیستمی که لازم است محیط اجرایی جاوا JRE روی آن نصب باشد، نداشته باشید، اجرای اینگونه برنامهها با مشکل مواجه خواهد شد. اگر میخواهید برنامههایی ازایندست را در هر سیستمی اجرا کنید باید راهی بیابید که بدون وجود JRE هم اجرا شوند.
══ فهرست مطالب ══
○ مراحل کار
○ راهحل دوم
🔸 مراحل کار
نخستین کاری که باید کرد دانلود فایل نصب این برنامه از وبسایت Portable Apps است. توجه داشته باشید که این برنامه یک نصب تحت وب است به این معنی که فایل برنامه را در حین نصب از اینترنت دانلود میکند. حجم کل بسته در حدود ۳۸ مگابایت است. فایل نصب همه فایلها را به پوشهای که قبلاً انتخاب کردهاید منتقل میکند. میتوان پوشهای بر روی درایو یواسبی یا فلش، یا هارددیسک رایانه انتخاب کرد.
نسخه پرتابل جاوا به طور پیشفرض در مسیر PortableAppsCommonFilesJava نصب میشود و به طور خودکار از سوی برنامههای دیگری که این وبسایت ارائه میدهد شناسایی میشود. البته میتوان از این مسیر برای برنامههایی که این وبسایت ارائه نمیدهد نیز استفاده کرد. برای نمونه در ادامه نشان میدهیم که چگونه میتوان کاری کرد که برنامه RSSOwl با نسخه پرتابل جاوا کار کند.
زمانی که نسخه پرتابل جاوا و RSSOwl نصب شدند باید پوشه جاوا را به پوشه RSSOwl کپی کنید. سپس نام پوشه جاوا را به jre تغییر دهید و برنامه RSSOwl را باز کنید. خواهید دید که این برنامه بدون نصب jre بهخوبی و بدون هیچ مشکلی کار میکند.
🔸 راهحل دوم
گزینه دیگری هم برای این کار وجود دارد که در صورت اصلاح مسیرهای تعریفشده سیستمی ممکن است. در جستجوی ویندوز عبارت Advanced system settings وارد کنید تا وارد تنظیمات پیشرفته ویندوز شوید. گزینه Environmental Variables را بیابید. در این بخش متغیرهای مربوط به کاربر و سیستم مشاهده میشود. در بخش system گزینه path را پیدا کنید و کلیک کنید تا آن را اصلاح کنید. کافی است که یک علامت; و سپس مسیر نسخه پرتابل جاوا را به مسیرهای موجود در آن اضافه کنید. بر روی OK کلیک کنید تا تنظیمات جدید ذخیره شود. همچنین میتوانید از خط فرمان ویندوز برای اجرای برنامههای جاوا استفاده کنید.
در برخی موقعیتهای خاص دسترسی به نسخه پرتابل جاوا میتواند کاملاً مفید باشد. البته باید به خاطر داشته باشید که هر بار که اوراکل بهروزرسانی جدیدی برای جاوا ارائه میدهد، این نسخه را نیز به طور دستی بروز کنید تا گرفتار مشکلات امنیتی یا مشکلات دیگری که در بهروزرسانیها رفع میشوند نشوید.
مطالعه ادامه مطلب 👇👇
🔗 چگونه بدون JRE برنامههای جاوا را روی سیستم اجرا کنیم؟ — کلیک کنید (+)
📌 کانال اختصاصی آموزشی برنامهنویسی جاوا
آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی برنامهنویسی جاوا را در کانال اختصاصی [@Fara_Java] دنبال کنید. 👇
@Fara_Java — مطالب و آموزشهای برنامهنویسی جاوا فرادرس
برنامههای بزرگی مانند دانلودکننده میزبانی فایل JDownloader یا فیدخوان RSSOwl برای اجرا به جاوا نیاز دارند. اگر کنترل کل سیستم در اختیار فرد باشد مشکلی پیش نمیآید اما اگر دسترسی کامل بر روی سیستمی که لازم است محیط اجرایی جاوا JRE روی آن نصب باشد، نداشته باشید، اجرای اینگونه برنامهها با مشکل مواجه خواهد شد. اگر میخواهید برنامههایی ازایندست را در هر سیستمی اجرا کنید باید راهی بیابید که بدون وجود JRE هم اجرا شوند.
══ فهرست مطالب ══
○ مراحل کار
○ راهحل دوم
🔸 مراحل کار
نخستین کاری که باید کرد دانلود فایل نصب این برنامه از وبسایت Portable Apps است. توجه داشته باشید که این برنامه یک نصب تحت وب است به این معنی که فایل برنامه را در حین نصب از اینترنت دانلود میکند. حجم کل بسته در حدود ۳۸ مگابایت است. فایل نصب همه فایلها را به پوشهای که قبلاً انتخاب کردهاید منتقل میکند. میتوان پوشهای بر روی درایو یواسبی یا فلش، یا هارددیسک رایانه انتخاب کرد.
نسخه پرتابل جاوا به طور پیشفرض در مسیر PortableAppsCommonFilesJava نصب میشود و به طور خودکار از سوی برنامههای دیگری که این وبسایت ارائه میدهد شناسایی میشود. البته میتوان از این مسیر برای برنامههایی که این وبسایت ارائه نمیدهد نیز استفاده کرد. برای نمونه در ادامه نشان میدهیم که چگونه میتوان کاری کرد که برنامه RSSOwl با نسخه پرتابل جاوا کار کند.
زمانی که نسخه پرتابل جاوا و RSSOwl نصب شدند باید پوشه جاوا را به پوشه RSSOwl کپی کنید. سپس نام پوشه جاوا را به jre تغییر دهید و برنامه RSSOwl را باز کنید. خواهید دید که این برنامه بدون نصب jre بهخوبی و بدون هیچ مشکلی کار میکند.
🔸 راهحل دوم
گزینه دیگری هم برای این کار وجود دارد که در صورت اصلاح مسیرهای تعریفشده سیستمی ممکن است. در جستجوی ویندوز عبارت Advanced system settings وارد کنید تا وارد تنظیمات پیشرفته ویندوز شوید. گزینه Environmental Variables را بیابید. در این بخش متغیرهای مربوط به کاربر و سیستم مشاهده میشود. در بخش system گزینه path را پیدا کنید و کلیک کنید تا آن را اصلاح کنید. کافی است که یک علامت; و سپس مسیر نسخه پرتابل جاوا را به مسیرهای موجود در آن اضافه کنید. بر روی OK کلیک کنید تا تنظیمات جدید ذخیره شود. همچنین میتوانید از خط فرمان ویندوز برای اجرای برنامههای جاوا استفاده کنید.
در برخی موقعیتهای خاص دسترسی به نسخه پرتابل جاوا میتواند کاملاً مفید باشد. البته باید به خاطر داشته باشید که هر بار که اوراکل بهروزرسانی جدیدی برای جاوا ارائه میدهد، این نسخه را نیز به طور دستی بروز کنید تا گرفتار مشکلات امنیتی یا مشکلات دیگری که در بهروزرسانیها رفع میشوند نشوید.
مطالعه ادامه مطلب 👇👇
🔗 چگونه بدون JRE برنامههای جاوا را روی سیستم اجرا کنیم؟ — کلیک کنید (+)
📌 کانال اختصاصی آموزشی برنامهنویسی جاوا
آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی برنامهنویسی جاوا را در کانال اختصاصی [@Fara_Java] دنبال کنید. 👇
@Fara_Java — مطالب و آموزشهای برنامهنویسی جاوا فرادرس
Forwarded from FaraProg | فرا پروگ: آموزشهای برنامهنویسی
✳️ برنامه نویسی شی گرا (OOP) چیست؟ — به زبان ساده
اگر تاکنون هر گونه برنامه نویسی انجام داده باشید و یا حتی صرفاً زبانهای مختلف نظیر زبان برنامه نویسی COBOL را بررسی کرده باشید، احتمالاً تاکنون با عبارت «برنامه نویسی شیءگرا» و «مفهوم کلاس در برنامه نویسی» مواجه شدهاید. توضیحات فنی مختلفی در خصوص مفهوم برنامه نویسی شیءگرا وجود دارد؛ اما در این نوشته قصد داریم تعریف این مفهوم برنامه نویسی را به روشی ساده بیان کنیم.
══ فهرست مطالب ══
○ سرآغاز: زبانهای رویهای
○ هدف از برنامه نویسی شیءگرا
○ اصول برنامه نویسی شیء گرا
○ برنامه نویسی شیءگرا به صورت خلاصه
🔸 سرآغاز: زبانهای رویهای
برای این که بدانیم برنامه نویسی شیءگرا چیست، ابتدا باید نقیض آن را بشناسیم. زبانهای برنامه نویسی اولیه به صورت رویهای بودند. دلیل این نامگذاری آن بود که در این زبانها، برنامهنویس باید مجموعه خاصی از رویهها را تعریف مینمود که رایانه آنها را به ترتیب اجرا میکرد.
در زمانهای نخست برنامه نویسی، رویهها بر روی کارتهای پانچ نوشته میشدند. رایانهها بدین ترتیب دادهها را گرفته، یک توالی از اقدامات را بر روی دادهها انجام داده و سپس دادههای جدید را در خروجی ارائه میکردند.
زبانهای رویهای تا مدتها به خوبی کار میکردند و برخی از آنها نیز همچنان مورد استفاده قرار میگیرند. اما زمانی که قرار بود برنامهنویس کاری را خارج از ترتیب مقدماتی مراحل انجام دهد، مدیریت زبانهای برنامه نویسی دشوار میشد. بدین ترتیب زبانهای برنامه نویسی شیءگرا وارد عرصه شدند.
🔸 هدف از برنامه نویسی شیءگرا
سؤالی که در این جا مطرح میشود، این است که برنامه نویسی شیءگرا چیست؟ نخستین زبان برنامه نویسی شیءگرا (که عموماً اعتقاد بر این است Simula بوده است) ایده اشیا را معرفی کرد. اشیا مجموعهای از اطلاعات هستند که به عنوان واحدی منفرد با آنها رفتار میشود.
این مفهوم را با ارائه مثالی در ادامه بیشتر توضیح میدهیم؛ اما نخست در مورد کلاسها صحبت میکنیم. کلاسها نوعی از اشیای مقدماتی هستند. آنها فهرستی از خصوصیات دارند که وقتی تعریف میشوند، تبدیل به یک شیء میگردند.
برای مثال به یک بازی شطرنج اشاره میکنیم. در بازی شطرنج میتوانیم کلاسی به نام «مهره» (Piece) داشته باشیم. درون این کلاس مهره، فهرستی از خصوصیات را به صورت زیر داریم:
مطالعه ادامه مطلب 👇👇
🔗 برنامه نویسی شی گرا (OOP) چیست؟ — به زبان ساده — کلیک کنید (+)
📌 کانال اختصاصی آموزشی برنامهنویسی
آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی برنامهنویسی را در کانال اختصاصی [@FaraProg] دنبال کنید. 👇
@FaraProg — مطالب و آموزشهای برنامهنویسی فرادرس
اگر تاکنون هر گونه برنامه نویسی انجام داده باشید و یا حتی صرفاً زبانهای مختلف نظیر زبان برنامه نویسی COBOL را بررسی کرده باشید، احتمالاً تاکنون با عبارت «برنامه نویسی شیءگرا» و «مفهوم کلاس در برنامه نویسی» مواجه شدهاید. توضیحات فنی مختلفی در خصوص مفهوم برنامه نویسی شیءگرا وجود دارد؛ اما در این نوشته قصد داریم تعریف این مفهوم برنامه نویسی را به روشی ساده بیان کنیم.
══ فهرست مطالب ══
○ سرآغاز: زبانهای رویهای
○ هدف از برنامه نویسی شیءگرا
○ اصول برنامه نویسی شیء گرا
○ برنامه نویسی شیءگرا به صورت خلاصه
🔸 سرآغاز: زبانهای رویهای
برای این که بدانیم برنامه نویسی شیءگرا چیست، ابتدا باید نقیض آن را بشناسیم. زبانهای برنامه نویسی اولیه به صورت رویهای بودند. دلیل این نامگذاری آن بود که در این زبانها، برنامهنویس باید مجموعه خاصی از رویهها را تعریف مینمود که رایانه آنها را به ترتیب اجرا میکرد.
در زمانهای نخست برنامه نویسی، رویهها بر روی کارتهای پانچ نوشته میشدند. رایانهها بدین ترتیب دادهها را گرفته، یک توالی از اقدامات را بر روی دادهها انجام داده و سپس دادههای جدید را در خروجی ارائه میکردند.
زبانهای رویهای تا مدتها به خوبی کار میکردند و برخی از آنها نیز همچنان مورد استفاده قرار میگیرند. اما زمانی که قرار بود برنامهنویس کاری را خارج از ترتیب مقدماتی مراحل انجام دهد، مدیریت زبانهای برنامه نویسی دشوار میشد. بدین ترتیب زبانهای برنامه نویسی شیءگرا وارد عرصه شدند.
🔸 هدف از برنامه نویسی شیءگرا
سؤالی که در این جا مطرح میشود، این است که برنامه نویسی شیءگرا چیست؟ نخستین زبان برنامه نویسی شیءگرا (که عموماً اعتقاد بر این است Simula بوده است) ایده اشیا را معرفی کرد. اشیا مجموعهای از اطلاعات هستند که به عنوان واحدی منفرد با آنها رفتار میشود.
این مفهوم را با ارائه مثالی در ادامه بیشتر توضیح میدهیم؛ اما نخست در مورد کلاسها صحبت میکنیم. کلاسها نوعی از اشیای مقدماتی هستند. آنها فهرستی از خصوصیات دارند که وقتی تعریف میشوند، تبدیل به یک شیء میگردند.
برای مثال به یک بازی شطرنج اشاره میکنیم. در بازی شطرنج میتوانیم کلاسی به نام «مهره» (Piece) داشته باشیم. درون این کلاس مهره، فهرستی از خصوصیات را به صورت زیر داریم:
مطالعه ادامه مطلب 👇👇
🔗 برنامه نویسی شی گرا (OOP) چیست؟ — به زبان ساده — کلیک کنید (+)
📌 کانال اختصاصی آموزشی برنامهنویسی
آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی برنامهنویسی را در کانال اختصاصی [@FaraProg] دنبال کنید. 👇
@FaraProg — مطالب و آموزشهای برنامهنویسی فرادرس
✳️ ۱۹ سوال رایج در مصاحبههای شغلی جاوا
وقتی صحبت از مصاحبه شغلی برای برنامهنویسی جاوا میشود، چند سوال وجود دارد که در بسیاری از موارد تکرار میشوند. اکثر این سوالها راجع به «Multi-threading»، «collection»، «serialization»، کدنویسی و اصول برنامهنویسی شیء گرا است. در هر مصاحبه حداقل یک یا دو سوال مربوط به کدنویسی میآید. در این مقاله ۱۹ مورد از مهمترین سوالات به همراه پاسخهای آنها آمده است تا شما را برای مصاحبههای کاری آماده کند.
مطالعه ادامه مطلب 👇👇
🔗 ۱۹ سوال رایج در مصاحبههای شغلی جاوا — کلیک کنید (+)
📌 کانال اختصاصی آموزشی برنامهنویسی جاوا
آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی برنامهنویسی جاوا را در کانال اختصاصی [@Fara_Java] دنبال کنید. 👇
@Fara_Java — مطالب و آموزشهای برنامهنویسی جاوا فرادرس
وقتی صحبت از مصاحبه شغلی برای برنامهنویسی جاوا میشود، چند سوال وجود دارد که در بسیاری از موارد تکرار میشوند. اکثر این سوالها راجع به «Multi-threading»، «collection»، «serialization»، کدنویسی و اصول برنامهنویسی شیء گرا است. در هر مصاحبه حداقل یک یا دو سوال مربوط به کدنویسی میآید. در این مقاله ۱۹ مورد از مهمترین سوالات به همراه پاسخهای آنها آمده است تا شما را برای مصاحبههای کاری آماده کند.
مطالعه ادامه مطلب 👇👇
🔗 ۱۹ سوال رایج در مصاحبههای شغلی جاوا — کلیک کنید (+)
📌 کانال اختصاصی آموزشی برنامهنویسی جاوا
آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی برنامهنویسی جاوا را در کانال اختصاصی [@Fara_Java] دنبال کنید. 👇
@Fara_Java — مطالب و آموزشهای برنامهنویسی جاوا فرادرس
✳️ پایتون یا جاوا کدام بهتر است؟ — راهنمای جامع
زبانهای برنامهنویسی، یکی از اساسیترین بخشهای «علم کامپیوتر» (Computer Science) محسوب میشوند. به عبارت دیگر، زبانهای برنامهنویسی، یکی از مهمترین ابزارهای در دسترس برنامهنویسان برای پیشبرد اهداف خود و ابزاری حیاتی جهت تمامی فعالیتهای برنامهنویسی محسوب میشوند. انتخاب بهترین زبان برنامهنویسی برای افراد مختلف، معمولا فرایندی بسیار گیجکننده است؛ حال فرض کنید که بخواهید چنین انتخابی را بین محبوبترین زبانهای برنامهنویسی موجود در جهان انجام دهید. انتخاب پایتون یا جاوا به عنوان زبان برنامهنویسی مقصد (برای تازهواردان به عرصه برنامهنویسی)، سؤالی است که ذهن بسیاری از فعالان و علاقهمندان به حوزه برنامهنویسی را به خود معطوف کرده است.
══ فهرست مطالب ══
○ زبان برنامهنویسی پایتون
○ زبان برنامهنویسی جاوا
○ پایتون یا جاوا: تفاوتهای کلیدی
○ پایتون یا جاوا: موقعیت شغلی و درآمد
○ پایتون یا جاوا: محبوبیت زبانهای پایتون و جاوا
○ پایتون یا جاوا: تفاوتهای ساختاری پایتون و جاوا
○ پایتون یا جاوا: مقایسه عملکرد
○ جمعبندی
🔸 زبان برنامهنویسی پایتون
«زبان برنامهنویسی پایتون» (Python programming Language)، یک زبان برنامهنویسی با نوعهای دادهای پویا است، یعنی، نوع دادهای متغیرها، بر حسب مقادیر آنها و در زمان اجرا به طور خودکار توسط «مفسر» (Interpreter) مشخص میشوند. زبان برنامه نویسی پایتون، جزء زبانهای برنامهنویسی همه منظوره محسوب میشود. توسعه ابتدایی زبان پایتون، در یک مؤسسه تحقیقاتی در کشور هلند آغاز شد.
انگیزه اصلی توسعهدهندگان، ساختن یک زبان برنامهنویسی «سطح بالا» (High Level) بود که قادر باشد شکاف میان زبانهای C و «محیطهای اسکریپتینگ» (Scripting Environment) نظیر Shell را بپوشاند. همانطور که یکی از نویسندگان اصلی زبان برنامهنویسی پایتون اظهار کرده است، ساختن «ابزارهای مدیریت سیستم» (System Administration Utilities) توسط زبان C کار بسیار دشواری بود و از بین بردن چنین نقیصهای، یکی از انگیزههای اصلی توسعه زبان برنامهنویسی پایتون بود.
«قواعد دستوری» (Syntax) زبان پایتون نیز با الهام از زبانهایی نظیر Algol۶۸، پاسکال و ABC شکل گرفته است و هدف توسعهدهندگان، ایجاد بیشترین خوانایی ممکن در«قواعد دستوری» (Syntax) زبان پایتون بود.
🔸 زبان برنامهنویسی جاوا
زبان برنامهنویسی جاوا، یک زبان برنامهنویسی با نوعهای دادهای «استاتیک یا ایستا» (Static) است، یعنی، نوع دادهای متغیرها، باید هنگام تعریف آنها در برنامه مشخص شوند. زبان برنامهنویسی جاوا نیز، همانند زبان برنامه نویسی پایتون، جزء زبانهای برنامهنویسی همه منظوره محسوب میشود.
«برنامهنویسی شیءگرا» (Object-Oriented programming | OOP)، به بهترین شکل ممکن در زبان برنامهنویسی جاوا نمود پیدا کرده است. همچنین، زبان جاوا در زمره زبانهای برنامهنویسی «همزمان یا همروند» (Concurrent) قرار میگیرد.
زبان برنامهنویسی جاوا، از ابتدا به شکلی توسعه داده شد که یک زبان برنامهنویسی WORA یا Write Once Run Anywhere باشد؛ یعنی زبانی که در آن، برنامهها یکبار نوشته شوند و پس از آن در هر سیستمی قابل اجرا باشند. به عبارت دیگر، از همان ابتدا و در چشمانداز آینده زبان برنامهنویسی جاوا مشخص شده بود که برنامههای نوشته شده به این زبان باید قادر باشند به کمک «ماشین مجازی جاوا» (Java Virtual Machine | JVM) و بدون کمترین «وابستگیهای برنامهنویسی» (Programming Dependencies) ممکن، روی هر پلتفرمی اجرا شوند.
مطالعه ادامه مطلب 👇👇
🔗 پایتون یا جاوا کدام بهتر است؟ — راهنمای جامع — کلیک کنید (+)
📌 کانال اختصاصی آموزشی برنامهنویسی جاوا
آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی برنامهنویسی جاوا را در کانال اختصاصی [@Fara_Java] دنبال کنید. 👇
@Fara_Java — مطالب و آموزشهای برنامهنویسی جاوا فرادرس
✳️ پایتون یا جاوا کدام بهتر است؟ — راهنمای جامع
زبانهای برنامهنویسی، یکی از اساسیترین بخشهای «علم کامپیوتر» (Computer Science) محسوب میشوند. به عبارت دیگر، زبانهای برنامهنویسی، یکی از مهمترین ابزارهای در دسترس برنامهنویسان برای پیشبرد اهداف خود و ابزاری حیاتی جهت تمامی فعالیتهای برنامهنویسی محسوب میشوند. انتخاب بهترین زبان برنامهنویسی برای افراد مختلف، معمولا فرایندی بسیار گیجکننده است؛ حال فرض کنید که بخواهید چنین انتخابی را بین محبوبترین زبانهای برنامهنویسی موجود در جهان انجام دهید. انتخاب پایتون یا جاوا به عنوان زبان برنامهنویسی مقصد (برای تازهواردان به عرصه برنامهنویسی)، سؤالی است که ذهن بسیاری از فعالان و علاقهمندان به حوزه برنامهنویسی را به خود معطوف کرده است.
══ فهرست مطالب ══
○ زبان برنامهنویسی پایتون
○ زبان برنامهنویسی جاوا
○ پایتون یا جاوا: تفاوتهای کلیدی
○ پایتون یا جاوا: موقعیت شغلی و درآمد
○ پایتون یا جاوا: محبوبیت زبانهای پایتون و جاوا
○ پایتون یا جاوا: تفاوتهای ساختاری پایتون و جاوا
○ پایتون یا جاوا: مقایسه عملکرد
○ جمعبندی
🔸 زبان برنامهنویسی پایتون
«زبان برنامهنویسی پایتون» (Python programming Language)، یک زبان برنامهنویسی با نوعهای دادهای پویا است، یعنی، نوع دادهای متغیرها، بر حسب مقادیر آنها و در زمان اجرا به طور خودکار توسط «مفسر» (Interpreter) مشخص میشوند. زبان برنامه نویسی پایتون، جزء زبانهای برنامهنویسی همه منظوره محسوب میشود. توسعه ابتدایی زبان پایتون، در یک مؤسسه تحقیقاتی در کشور هلند آغاز شد.
انگیزه اصلی توسعهدهندگان، ساختن یک زبان برنامهنویسی «سطح بالا» (High Level) بود که قادر باشد شکاف میان زبانهای C و «محیطهای اسکریپتینگ» (Scripting Environment) نظیر Shell را بپوشاند. همانطور که یکی از نویسندگان اصلی زبان برنامهنویسی پایتون اظهار کرده است، ساختن «ابزارهای مدیریت سیستم» (System Administration Utilities) توسط زبان C کار بسیار دشواری بود و از بین بردن چنین نقیصهای، یکی از انگیزههای اصلی توسعه زبان برنامهنویسی پایتون بود.
«قواعد دستوری» (Syntax) زبان پایتون نیز با الهام از زبانهایی نظیر Algol۶۸، پاسکال و ABC شکل گرفته است و هدف توسعهدهندگان، ایجاد بیشترین خوانایی ممکن در«قواعد دستوری» (Syntax) زبان پایتون بود.
🔸 زبان برنامهنویسی جاوا
زبان برنامهنویسی جاوا، یک زبان برنامهنویسی با نوعهای دادهای «استاتیک یا ایستا» (Static) است، یعنی، نوع دادهای متغیرها، باید هنگام تعریف آنها در برنامه مشخص شوند. زبان برنامهنویسی جاوا نیز، همانند زبان برنامه نویسی پایتون، جزء زبانهای برنامهنویسی همه منظوره محسوب میشود.
«برنامهنویسی شیءگرا» (Object-Oriented programming | OOP)، به بهترین شکل ممکن در زبان برنامهنویسی جاوا نمود پیدا کرده است. همچنین، زبان جاوا در زمره زبانهای برنامهنویسی «همزمان یا همروند» (Concurrent) قرار میگیرد.
زبان برنامهنویسی جاوا، از ابتدا به شکلی توسعه داده شد که یک زبان برنامهنویسی WORA یا Write Once Run Anywhere باشد؛ یعنی زبانی که در آن، برنامهها یکبار نوشته شوند و پس از آن در هر سیستمی قابل اجرا باشند. به عبارت دیگر، از همان ابتدا و در چشمانداز آینده زبان برنامهنویسی جاوا مشخص شده بود که برنامههای نوشته شده به این زبان باید قادر باشند به کمک «ماشین مجازی جاوا» (Java Virtual Machine | JVM) و بدون کمترین «وابستگیهای برنامهنویسی» (Programming Dependencies) ممکن، روی هر پلتفرمی اجرا شوند.
مطالعه ادامه مطلب 👇👇
🔗 پایتون یا جاوا کدام بهتر است؟ — راهنمای جامع — کلیک کنید (+)
📌 کانال اختصاصی آموزشی برنامهنویسی جاوا
آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی برنامهنویسی جاوا را در کانال اختصاصی [@Fara_Java] دنبال کنید. 👇
@Fara_Java — مطالب و آموزشهای برنامهنویسی جاوا فرادرس
Forwarded from FaraDars | فرادرس
📱 در شبکههای اجتماعی فرادرس چه مطالبی منتشر میشود؟
✔️ اطلاعرسانی فرصتهای ویژه و جشنوارههای تخفیف
✔️ اطلاعرسانی جدیدترین آموزشهای منتشر شده همراه با تخفیف ویژه انتشار
✔️ انتشار مطالب، مقالات و ویدئوهای آموزشی رایگان
✔️ اطلاعرسانی آخرین رویدادها و وبینارها
✔️ برگزاری مسابقات و طرحهای تخفیف همراه با هدایای آموزشی
☸️ فرادرس را در شبکههای اجتماعی و کانالهای ارتباطی مختلف دنبال کنید.👇👇👇
📌 اینستاگرام
🔗 instagram.com/FaraDars
📌 یوتیوب
🔗 youtube.com/c/FaraDarsCourses
📌 لینکدین
🔗 linkedin.com/company/FaraDars
📌 توئیتر
🔗 twitter.com/FaraDars
📌 کانال رسمی تلگرام
🔗 t.me/FaraDars
📌 کانال فرصتهای ویژه (فراپُن)
🔗 t.me/FaraPon
📌 کانال تازههای نشر
🔗 t.me/FDPub
📌 کانالهای موضوعی و تخصصی
🔗 t.me/faradars/5006
_______________
📚 فرادرس
دانش در دسترس همه
همیشه و همه جا
@FaraDars — فرادرس
📱 در شبکههای اجتماعی فرادرس چه مطالبی منتشر میشود؟
✔️ اطلاعرسانی فرصتهای ویژه و جشنوارههای تخفیف
✔️ اطلاعرسانی جدیدترین آموزشهای منتشر شده همراه با تخفیف ویژه انتشار
✔️ انتشار مطالب، مقالات و ویدئوهای آموزشی رایگان
✔️ اطلاعرسانی آخرین رویدادها و وبینارها
✔️ برگزاری مسابقات و طرحهای تخفیف همراه با هدایای آموزشی
☸️ فرادرس را در شبکههای اجتماعی و کانالهای ارتباطی مختلف دنبال کنید.👇👇👇
📌 اینستاگرام
🔗 instagram.com/FaraDars
📌 یوتیوب
🔗 youtube.com/c/FaraDarsCourses
📌 لینکدین
🔗 linkedin.com/company/FaraDars
📌 توئیتر
🔗 twitter.com/FaraDars
📌 کانال رسمی تلگرام
🔗 t.me/FaraDars
📌 کانال فرصتهای ویژه (فراپُن)
🔗 t.me/FaraPon
📌 کانال تازههای نشر
🔗 t.me/FDPub
📌 کانالهای موضوعی و تخصصی
🔗 t.me/faradars/5006
_______________
📚 فرادرس
دانش در دسترس همه
همیشه و همه جا
@FaraDars — فرادرس
✳️ کدنویسی جاوا در پلتفرم اندروید — بخش اول
سیستمعامل اندروید (Android)، یکی از محبوبترین سیستمعاملهای تلفن همراه است. برای برنامهنویسی برنامههای اندرویدی میتوان از تعداد زیادی از زبانهای برنامهنویسی استفاده کرد. با این حال، گوگل (Google) توسعهدهندگان را به استفاده از زبان جاوا تشویق میکند. اگرچه، زبان برنامهنویسی جاوا مورد بحث در این مقاله، دقیقاً مشابه با زبان جاوا در دیگر پلتفرمها نیست. در اینجا، یک سری تفاوتهای ظریف و ویژگیهای متفاوتی وجود دارد که یادگیری آنها برای یک توسعهدهنده اندروید بسیار مهم است.
══ فهرست مطالب ══
○ جاوا و اندروید
○ کدنویسی جاوا برای پلتفرم اندروید متفاوت است
○ مقدمهای بر کاربرد زبان جاوا در اندروید
🔸 جاوا و اندروید
نکته جالب در مورد اندروید این است که این پلتفرم از «جاوای محض» استفاده نمیکند. شاید این موضوع کمی عجیب به نظر برسد زیرا اگر شما کدهای یک برنامه قدیمی جاوا را با یک برنامه مشابه اندرویدی مقایسه کنید، پیدا کردن تفاوتهای بین این دو دشوار خواهد بود. با اینکه کدنویسی و توسعه یک برنامه اندرویدی به نحوی مشابه با توسعه جاوا است، شباهتهای موجود، در هنگام «کامپایل» (Compile) و اجرای برنامه ناگهان از بین خواهد رفت. از اینرو، دلیل اصلی مواجه با یک محیط ناشناخته در هنگام کار با اندروید، نحوه مدیریت برنامههای اندرویدی در حین فرآیند کامپایل کردن است.
ویژگی جذاب و اصلی جاوا، قابلیت «یک بار کدنویسی کنید، همهجا اجرا کنید» در آن است. این زبان برنامهنویسی، به عنوان راهحلی برای فرآیند هزینهبر تبدیل نرمافزارهای مختلف از یک پلتفرم به پلتفرم دیگر ارائه شده است. این قابلیت شگفتانگیز در مهندسی نرمافزار، به لطف نحوه فرآیند کامپایل یک برنامه جاوا امکانپذیر شد است.
در حین فرآیند کامپایل در بسیاری از زبانهای برنامهنویسی، کامپایلر (Compiler) به برنامه متصل شده و آن را بهینه میکند. سپس، برنامه به کد ماشین تبدیل میشود. کد ماشین، به مجموعهای از فرمانهایی گفته میشود که یک کامپیوتر قادر به فهم و اجرای آنها در هنگام اجرای برنامه است. اجرای کد ماشین سرعت بالایی دارد اما به دلیل مد نظر قرار دادن پلتفرم اجرای برنامه، دارای محدودیت است. اگر تا به حال فکر کردهاید که چرا یک برنامه نوشتهشده برای پلتفرم IOS در سیستمعامل ویندوز اجرا نمیشود، این امر یکی از دلایل آن است.
🔸 کدنویسی جاوا برای پلتفرم اندروید متفاوت است
کامپایل کردن یک برنامه برای اندروید، مسیری مشابه با تبدیل فایلهای جاوا به بایتکد را دنبال میکند. زمانی که برنامه (متشکل از بایتکد) بر روی یک دستگاه نصب میشود، مرحله دوم کامپایل در حین فرآیند نصب رخ میدهد. بایتکد برنامه به کد ماشین بهینهشده برای دستگاه اندرویدی تبدیل میشود و عملکرد زمان اجرای برنامه را بهبود میبخشد. این فرایند با عنوان «کامپایل جلوتر از زمان» یا (Ahead of Time – AOT) شناخته و امکان آن توسط «ماشین مجازی اندروید» (Android Runtime) فراهم شده است. مفهوم AOT، در بسیاری از زبانهای برنامهنویسی مورد استفاده قرار میگیرد.
کامپایل AOT، تنها در اندروید KitKat (نسخه ۴.۴) و نسخههای بالاتر قابل مشاهده است اما قابلیت سازگاری با نسخههای پیشین را نیز ارائه میکند. نسخههای ابتدایی اندروید از یک ماشین مجازی دیگر با عنوان «Dalvik» استفاده میکردند. Dalvik نیز مانند ART، با ایجاد تغییر و تبدیل بایتکد جاوا، آنها را به شکل خاصی تبدیل میکرد. این تغییرات متعدد بهرهوری، به منظور بهینهسازی برنامه (برنامههای دستگاههای اندرویدی کم قدرتی که برای Dalvik طراحی شده بودند) صورت میگرفت.
مطالعه ادامه مطلب 👇👇
🔗 کدنویسی جاوا در پلتفرم اندروید — بخش اول — کلیک کنید (+)
📌 کانال اختصاصی آموزشی برنامهنویسی جاوا
آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی برنامهنویسی جاوا را در کانال اختصاصی [@Fara_Java] دنبال کنید. 👇
@Fara_Java — مطالب و آموزشهای برنامهنویسی جاوا فرادرس
✳️ کدنویسی جاوا در پلتفرم اندروید — بخش اول
سیستمعامل اندروید (Android)، یکی از محبوبترین سیستمعاملهای تلفن همراه است. برای برنامهنویسی برنامههای اندرویدی میتوان از تعداد زیادی از زبانهای برنامهنویسی استفاده کرد. با این حال، گوگل (Google) توسعهدهندگان را به استفاده از زبان جاوا تشویق میکند. اگرچه، زبان برنامهنویسی جاوا مورد بحث در این مقاله، دقیقاً مشابه با زبان جاوا در دیگر پلتفرمها نیست. در اینجا، یک سری تفاوتهای ظریف و ویژگیهای متفاوتی وجود دارد که یادگیری آنها برای یک توسعهدهنده اندروید بسیار مهم است.
══ فهرست مطالب ══
○ جاوا و اندروید
○ کدنویسی جاوا برای پلتفرم اندروید متفاوت است
○ مقدمهای بر کاربرد زبان جاوا در اندروید
🔸 جاوا و اندروید
نکته جالب در مورد اندروید این است که این پلتفرم از «جاوای محض» استفاده نمیکند. شاید این موضوع کمی عجیب به نظر برسد زیرا اگر شما کدهای یک برنامه قدیمی جاوا را با یک برنامه مشابه اندرویدی مقایسه کنید، پیدا کردن تفاوتهای بین این دو دشوار خواهد بود. با اینکه کدنویسی و توسعه یک برنامه اندرویدی به نحوی مشابه با توسعه جاوا است، شباهتهای موجود، در هنگام «کامپایل» (Compile) و اجرای برنامه ناگهان از بین خواهد رفت. از اینرو، دلیل اصلی مواجه با یک محیط ناشناخته در هنگام کار با اندروید، نحوه مدیریت برنامههای اندرویدی در حین فرآیند کامپایل کردن است.
ویژگی جذاب و اصلی جاوا، قابلیت «یک بار کدنویسی کنید، همهجا اجرا کنید» در آن است. این زبان برنامهنویسی، به عنوان راهحلی برای فرآیند هزینهبر تبدیل نرمافزارهای مختلف از یک پلتفرم به پلتفرم دیگر ارائه شده است. این قابلیت شگفتانگیز در مهندسی نرمافزار، به لطف نحوه فرآیند کامپایل یک برنامه جاوا امکانپذیر شد است.
در حین فرآیند کامپایل در بسیاری از زبانهای برنامهنویسی، کامپایلر (Compiler) به برنامه متصل شده و آن را بهینه میکند. سپس، برنامه به کد ماشین تبدیل میشود. کد ماشین، به مجموعهای از فرمانهایی گفته میشود که یک کامپیوتر قادر به فهم و اجرای آنها در هنگام اجرای برنامه است. اجرای کد ماشین سرعت بالایی دارد اما به دلیل مد نظر قرار دادن پلتفرم اجرای برنامه، دارای محدودیت است. اگر تا به حال فکر کردهاید که چرا یک برنامه نوشتهشده برای پلتفرم IOS در سیستمعامل ویندوز اجرا نمیشود، این امر یکی از دلایل آن است.
🔸 کدنویسی جاوا برای پلتفرم اندروید متفاوت است
کامپایل کردن یک برنامه برای اندروید، مسیری مشابه با تبدیل فایلهای جاوا به بایتکد را دنبال میکند. زمانی که برنامه (متشکل از بایتکد) بر روی یک دستگاه نصب میشود، مرحله دوم کامپایل در حین فرآیند نصب رخ میدهد. بایتکد برنامه به کد ماشین بهینهشده برای دستگاه اندرویدی تبدیل میشود و عملکرد زمان اجرای برنامه را بهبود میبخشد. این فرایند با عنوان «کامپایل جلوتر از زمان» یا (Ahead of Time – AOT) شناخته و امکان آن توسط «ماشین مجازی اندروید» (Android Runtime) فراهم شده است. مفهوم AOT، در بسیاری از زبانهای برنامهنویسی مورد استفاده قرار میگیرد.
کامپایل AOT، تنها در اندروید KitKat (نسخه ۴.۴) و نسخههای بالاتر قابل مشاهده است اما قابلیت سازگاری با نسخههای پیشین را نیز ارائه میکند. نسخههای ابتدایی اندروید از یک ماشین مجازی دیگر با عنوان «Dalvik» استفاده میکردند. Dalvik نیز مانند ART، با ایجاد تغییر و تبدیل بایتکد جاوا، آنها را به شکل خاصی تبدیل میکرد. این تغییرات متعدد بهرهوری، به منظور بهینهسازی برنامه (برنامههای دستگاههای اندرویدی کم قدرتی که برای Dalvik طراحی شده بودند) صورت میگرفت.
مطالعه ادامه مطلب 👇👇
🔗 کدنویسی جاوا در پلتفرم اندروید — بخش اول — کلیک کنید (+)
📌 کانال اختصاصی آموزشی برنامهنویسی جاوا
آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی برنامهنویسی جاوا را در کانال اختصاصی [@Fara_Java] دنبال کنید. 👇
@Fara_Java — مطالب و آموزشهای برنامهنویسی جاوا فرادرس