Fara_Java | فرا جاوا: آموزش برنامه‌نویسی جاوا
541 subscribers
52 photos
5 videos
226 links
🧑‍💻 فرا جاوا — آموزش برنامه‌نویسی جاوا

🔸 آموزش زبان Java
🔸 کار با IntelliJ IDEA
🔸 کار با فریمورک Spring
🔸 ساخت رابط گرافیکی با JavaFX
🔸 و صدها ساعت آموزش جذاب

🚀 برای مشاهده تمام آموزش‌های ویدیویی، روی لینک زیر بزنید:👇
fdrs.ir/tc/java
Download Telegram
✳️ حذف یک عنصر از آرایه جاوا — به زبان ساده

‏در این راهنمای کوتاه با روش‌های مختلف حذف یک عنصر از آرایه جاوا آشنا می‌شویم. به این منظور از کتابخانه 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 — مطالب و آموزش‌های برنامه‌نویسی جاوا فرادرس

✳️ چگونه از 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 — مطالب و آموزش‌های برنامه‌نویسی جاوا فرادرس

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 — کانال اصلی فرادرس
✳️ آشنایی مقدماتی با 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 — مطالب و آموزش‌های برنامه‌نویسی جاوا فرادرس

✳️ کاردزدی (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 — مطالب و آموزش‌های برنامه‌نویسی جاوا فرادرس

✳️ قابلیت های پیش نمایشی جاوا — به زبان ساده

‏در این مقاله قصد داریم به بررسی انگیزه ارائه قابلیت های پیش نمایشی جاوا بپردازیم و تفاوت آن‌ها را با قابلیت‌های آزمایشی بدانیم. همچنین شیوه فعال‌سازی «قابلیت‌های پیش‌نمایشی» (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)، یک زبان برنامه‌نویسی است که به شما در ساخت نرم‌افزارهای مخصوص پلتفرم‌های مختلف کمک می‌کند. اگر قصد نوشتن برنامه‌ای با «رابط کاربری گرافیکی» (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 - فرادرس
✳️ چگونه بدون 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 — مطالب و آموزش‌های برنامه‌نویسی جاوا فرادرس

✳️ برنامه نویسی شی‌ گرا (OOP) چیست؟ — به زبان ساده

‏اگر تاکنون هر گونه برنامه نویسی انجام داده باشید و یا حتی صرفاً زبان‌های مختلف نظیر زبان برنامه نویسی COBOL را بررسی کرده باشید، احتمالاً تاکنون با عبارت «برنامه نویسی شی‌ءگرا» و «مفهوم کلاس در برنامه نویسی» مواجه شده‌اید. توضیحات فنی مختلفی در خصوص مفهوم برنامه نویسی شی‌ءگرا وجود دارد؛ اما در این نوشته قصد داریم تعریف این مفهوم برنامه نویسی را به روشی ساده بیان کنیم.

══ فهرست مطالب ══

‏ ○ سرآغاز: زبان‌های رویه‌ای
‏ ○ هدف از برنامه نویسی شی‌ءگرا
‏ ○ اصول برنامه نویسی شیء گرا
‏ ○ برنامه نویسی شی‌ءگرا به صورت خلاصه


🔸 سرآغاز: زبان‌های رویه‌ای

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

‏در زمان‌های نخست برنامه نویسی، رویه‌ها بر روی کارت‌های پانچ نوشته می‌شدند. رایانه‌ها بدین ترتیب داده‌ها را گرفته، یک توالی از اقدامات را بر روی داده‌ها انجام داده و سپس داده‌های جدید را در خروجی ارائه می‌کردند.

‏زبان‌های رویه‌ای تا مدت‌ها به خوبی کار می‌کردند و برخی از آن‌ها نیز همچنان مورد استفاده قرار می‌گیرند. اما زمانی که قرار بود برنامه‌نویس کاری را خارج از ترتیب مقدماتی مراحل انجام دهد، مدیریت زبان‌های برنامه نویسی دشوار می‌شد. بدین ترتیب زبان‌های برنامه نویسی شی‌ءگرا وارد عرصه شدند.


🔸 هدف از برنامه نویسی شی‌ءگرا

‏سؤالی که در این جا مطرح می‌شود، این است که برنامه نویسی شی‌ءگرا چیست؟ نخستین زبان برنامه نویسی شی‌ءگرا (که عموماً اعتقاد بر این است Simula بوده است) ایده اشیا را معرفی کرد. اشیا مجموعه‌ای از اطلاعات هستند که به عنوان واحدی منفرد با آن‌ها رفتار می‌شود.

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

‏برای مثال به یک بازی شطرنج اشاره می‌کنیم. در بازی شطرنج می‌توانیم کلاسی به نام «مهره» (Piece) داشته باشیم. درون این کلاس مهره، فهرستی از خصوصیات را به صورت زیر داریم:



مطالعه ادامه مطلب 👇👇

🔗 برنامه نویسی شی‌ گرا (OOP) چیست؟ — به زبان ساده — کلیک کنید (+)


📌 کانال اختصاصی آموزشی برنامه‌نویسی

آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی برنامه‌نویسی را در کانال اختصاصی [@FaraProg] دنبال کنید. 👇

@FaraProg — مطالب و آموزش‌های برنامه‌نویسی فرادرس

✳️ ۱۹ سوال رایج در مصاحبه‌های شغلی جاوا

‏وقتی صحبت از مصاحبه‌ شغلی برای برنامه‌نویسی جاوا می‌شود، چند سوال وجود دارد که در بسیاری از موارد تکرار می‌شوند. اکثر این سوال‌ها راجع به «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 — مطالب و آموزش‌های برنامه‌نویسی جاوا فرادرس


📱 در شبکه‌های اجتماعی فرادرس چه مطالبی منتشر می‌شود؟

✔️ اطلاع‌رسانی فرصت‌های ویژه و جشنواره‌های تخفیف

✔️ اطلاع‌رسانی جدیدترین آموزش‌های منتشر شده همراه با تخفیف ویژه انتشار

✔️ انتشار مطالب، مقالات و ویدئوهای آموزشی رایگان

✔️ اطلاع‌رسانی آخرین رویدادها و وبینارها

✔️ برگزاری مسابقات و طرح‌های تخفیف همراه با هدایای آموزشی


☸️ فرادرس را در شبکه‌های اجتماعی و کانال‌های ارتباطی مختلف دنبال کنید.👇👇👇


📌 اینستاگرام
🔗 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 — مطالب و آموزش‌های برنامه‌نویسی جاوا فرادرس

✳️ اتصال به پایگاه داده MySQL با استفاده از زبان جاوا — آموزش گام به گام

‏در زبان جاوا، قابلیتی با عنوان «اتصال پایگاه داده جاوا» (Java DataBase Connectivity) یا به طور مخفف «JDBC»، به عنوان بخشی از «کیت توسعه نرم‌افزار» (Software Development Kit) یا اصطلاحاً «SDK» ارائه می‌شود. با استفاده از این «رابط کاربردی برنامه‌نویسی» (Application Programming Interface) یا «API»، اتصال به یک پایگاه داده و اجرای عملیات متداولی مانند انجام «کوئری» (Query)، درج اطلاعات، به‌روزرسانی و حذف سوابق، بسیار آسان خواهد شد.

══ فهرست مطالب ══

‏ ○ گام اول: نصب درایور پایگاه داده MySQL
‏ ○ گام دوم: ایجاد یک پایگاه داده نمونه
‏ ○ گام سوم: تنظیم مسیر کلاس جاوا
‏ ○ گام چهارم: اتصال MySQL از طریق جاوا
‏ ○ گام پنجم: اجرای کوئری پایگاه داده توسط جاوا


🔸 گام اول: نصب درایور پایگاه داده MySQL

‏برای اتصال به پایگاه داده MySQL، به درایور JDBC برای MySQL نیاز است. نام این درایور «Connector/J» است و می‌توانید آن را از سایت MySQL دانلود کنید. پس از دانلود فایل در یکی فرمت‌های ZIP یا TAR.GZ، محتوای آن را استخراج کرده و فایل «mysql-connector-java–bin.jar» را درون یک محل مناسب کپی کنید. برای اجرای تمام کدهایی که از درایور JDBC استفاده می‌کنند، وجود این فایل ضروری است.


🔸 گام دوم: ایجاد یک پایگاه داده نمونه

‏پایگاه داده MySQL را دانلود و آن را در یک محل قابل دسترس نصب کنید. اکنون می‌خواهیم برای استفاده از MySQL به منظور اتصال و اجرای کوئری‌ها، یک پایگاه داده نمونه بسازیم. در ابتدا، باید با استفاده از یک «کلاینت» (Client) دلخواه به پایگاه داده متصل شد و با اجرای دستورات زیر، پایگاه داده نمونه را ایجاد کرد.

create database sample;

‏علاوه بر این، برای اتصال به پایگاه داده به نام کاربری و کلمه عبور نیاز خواهد بود؛ مگر اینکه بخواهید به عنوان ادمین این ارتباط را برقرار کنید (معمولاً چنین کاری توصیه نمی‌شود). کد زیر، یک کاربر با نام «testuser» را ایجاد می‌کند که می‌تواند با استفاده از کلمه عبور «securepwd» و از طریق ماشینی که پایگاه داده MySQL در آن اجرا می‌شود (localhost)، اتصال را برقرار کند.

create user 'testuser'@'localhost' identified by 'securepwd';

‏اگر قصد دارید به پایگاه داده‌ای متصل شوید که در یک ماشین دیگر (remotemc) اجرا می‌شود، باید از کد زیر استفاده کنید (عبارت remotemc می‌تواند نام یک سرویس میزبان یا یک آدرس آی‌پی باشد):

create user 'testuser'@'remotemc' identified by 'securepwd';


مطالعه ادامه مطلب 👇👇

🔗 اتصال به پایگاه داده MySQL با استفاده از زبان جاوا — آموزش گام به گام — کلیک کنید (+)


📌 کانال اختصاصی آموزشی برنامه‌نویسی جاوا

آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی برنامه‌نویسی جاوا را در کانال اختصاصی [@Fara_Java] دنبال کنید. 👇

@Fara_Java — مطالب و آموزش‌های برنامه‌نویسی جاوا فرادرس

✳️ مرتب سازی ادغامی (Merge Sort) در جاوا — به زبان ساده

‏در این راهنما نگاهی به الگوریتم مرتب سازی ادغامی و پیاده‌سازی آن در جاوا خواهیم داشت. مرتب‌سازی ادغامی یکی از مؤثرترین تکنیک‌های مرتب‌سازی بر مبنای پارادایم «تقسیم و حل» (divide and conquer) است.

══ فهرست مطالب ══

‏ ○ الگوریتم مرتب سازی ادغامی
‏ ○ پیاده‌سازی
‏ ○ پیچیدگی
‏ ○ سخن پایانی


🔸 الگوریتم مرتب سازی ادغامی

‏مرتب‌سازی ادغامی یک الگوریتم «تقسیم و حل» است که در آن ابتدا مسئله به مسائل فرعی تقسیم می‌شود. زمانی که راه‌حل‌ها برای مسائل فرعی آماده شد، مجدداً آن‌ها را با هم ترکیب می‌کنیم تا راه‌حل نهایی برای مسئله اصلی به دست آید.

‏این یکی از الگوریتم‌هایی است که با استفاده از «بازگشت» (recursion) به سادگی پیاده‌سازی می‌شود، چون به جای مسئله اصلی با مسائل فرعی سر و کار داریم.

‏الگوریتم آن را می‌توان به صورت فرایند ۲ مرحله‌ای زیر توصیف کرد:

▫️ تقسیم: در این مرحله آرایه ورودی به دو نیمه تقسیم می‌شود. محور تقسیم نقطه میانی آرایه است. این مرحله به صورت بازگشتی روی همه آرایه‌های نیمه انجام می‌یابد تا این که دیگر نیمه آرایه‌ای برای تقسیم وجود نداشته باشد.
▫️ حل: در این مرحله باید آرایه‌های تقسیم‌شده را مرتب‌سازی و ادغام کنیم و این کار از بخش زیرین به سمت بالا برای به دست آوردن آرایه مرتب انجام می‌یابد.

🔸 پیاده‌سازی

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

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

‏برای حالت بازگشتی اندیس میانه را پیدا کرده و دو آرایه موقت l و r را ایجاد می‌کنیم. سپس تابع mergeSort به صورت بازگشتی برای هر دو آرایه فرعی فراخوانی می‌شود:

public static void mergeSort(int[] a, int n) {
if (n < 2) {
return;
}
int mid = n / 2;
int[] l = new int[mid];
int[] r = new int[n - mid];

for (int i = 0; i < mid; i++) {
l[i] = a[i];
}
for (int i = mid; i < n; i++) {
r[i - mid] = a[i];
}
mergeSort(l, mid);
mergeSort(r, n - mid);

merge(a, l, r, mid, n - mid);
}


مطالعه ادامه مطلب 👇👇

🔗 مرتب سازی ادغامی (Merge Sort) در جاوا — به زبان ساده — کلیک کنید (+)


📌 کانال اختصاصی آموزشی برنامه‌نویسی جاوا

آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی برنامه‌نویسی جاوا را در کانال اختصاصی [@Fara_Java] دنبال کنید. 👇

@Fara_Java — مطالب و آموزش‌های برنامه‌نویسی جاوا فرادرس

Forwarded from مجله فرادرس

📙 دسته برنامه نویسی: پربازدیدترین مطالب اخیر «برنامه نویسی» مجله فرادرس


1️⃣ مفهوم API چیست؟

‏───────────────

2️⃣ یافتن ریشه سوم یک عدد

‏───────────────

3️⃣ برنامه نویسی شی‌ گرا (OOP) چیست؟

‏───────────────

4️⃣ چگونه از VirtualBox استفاده کنیم؟

‏───────────────

5️⃣ ۱۵ اپلیکیشن برتر اندروید برای آموزش برنامه نویسی


#برنامه_نویسی


📚 سایر مطالب مجله فرادرس
🔗 fdrs.ir/blog


@FaraDarsMag — مجله فرادرس
✳️ متدهای wait و notify در جاوا — از صفر تا صد

‏در این مقاله به بررسی یکی از بنیادی‌ترین سازوکارهای جاوا می‌پردازیم که «همگام‌سازی نخ» (Thread Synchronization) ‌نام دارد. ابتدا برخی اصطلاح‌های مرتبط با همزمانی را معرفی می‌کنیم. سپس یک اپلیکیشن ساده می‌نویسیم که مشکلات همزمانی در آن بررسی می‌شوند. هدف از ین مقاله آشنایی بیشتر با متدهای wait و notify در جاوا است.

══ فهرست مطالب ══

‏ ○ همگام‌سازی نخ در جاوا
‏ ○ بلوک‌های محافظت شده در جاوا
‏ ○ متد ()wait
‏ ○ متدهای ()notify و ()notifyAll
‏ ○ مسئله همگام‌سازی فرستنده-گیرنده
‏ ○ چرا باید ()wait را درون یک حلقه while قرار دهیم؟
‏ ○ چرا باید متدهای send()‎ و receive()‎ را همگام‌سازی کنیم؟
‏ ○ سخن پایانی


🔸 همگام‌سازی نخ در جاوا

‏در محیط چندنخی، ‌نخ‌های مختلف تلاش می‌کنند تا منابع یکسانی را ویرایش کنند. اگر نخ‌ها به درستی مدیریت نشوند، این وضعیت منجر به مشکلاتی در یکپارچگی می‌شود.


🔸 بلوک‌های محافظت شده در جاوا

‏یکی از ابزارهایی که می‌توان در جاوا برای هماهنگ کردن کارها روی نخ‌های مختلف استفاده کرد، «بلوک‌های محافظ» (Guarded Blocks) نام دارند. این بلوک‌ها پیش از ازسرگیری یک اجرا، ‌شرط خاصی را بررسی می‌کنند. بدین ترتیب می‌توان کارهای زیر را انجام داد:

‏– ()Object.wait – برای تعلیق یک نخ.

‏– ()Object.notify – برای ازسرگیری یک نخ.

‏این موضوع را با مشاهده نمودار زیر که چرخه عمر یک نخ را به تصویر کشیده است، بهتر درک می‌کنیم:

‏توجه کنید که روش‌های مختلفی برای کنترل کردن چرخه عمر وجود دارند؛ ‌با این حال در این مقاله قصد داریم صرفاً روی ()wait و ()notify تمرکز کنیم.



مطالعه ادامه مطلب 👇👇

🔗 متدهای wait و notify در جاوا — از صفر تا صد — کلیک کنید (+)


📌 کانال اختصاصی آموزشی برنامه‌نویسی جاوا

آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی برنامه‌نویسی جاوا را در کانال اختصاصی [@Fara_Java] دنبال کنید. 👇

@Fara_Java — مطالب و آموزش‌های برنامه‌نویسی جاوا فرادرس

✳️ آموزش جامع برنامه نویسی جاوا به زبان ساده — بخش اول: مقدمه

‏این سلسله آموزش‌ها با نام مقدمه‌ای بر برنامه‌نویسی جاوا برای توسعه‌دهندگان نرم‌افزاری تهیه شده است که آشنایی چندانی با فناوری جاوا ندارند. با مطالعه کامل همه بخش‌های این سلسله آموزش‌ها با برنامه‌نویسی شیءگرا (OOP) و توسعه برنامه‌های واقعی با استفاده از زبان و پلتفرم جاوا آشنا می‌شوید.

══ فهرست مطالب ══

‏ ○ مقدمه‌ای بر زبان جاوا
‏ ○ مروری بر پلتفرم جاوا


🔸 مقدمه‌ای بر زبان جاوا

‏در ابتدا مقدمه مختصری در مورد برنامه‌نویسی شیءگرا با استفاده از زبان جاوا ارائه شده است. این آموزش با بررسی پلتفرم و زبان جاوا آغاز می‌شود، سپس دستورالعمل‌هایی برای راه‌اندازی یک محیط توسعه با استفاده از کیت توسعه جاوا (JDK) و محیط برنامه نویسی Eclipse ارائه شده‌اند. پس از اینکه با اجزای محیط توسعه آشنا شدید شروع به یادگیری دستور زبان اولیه جاوا خواهید کرد.

‏در ادامه ویژگی‌های پیشرفته‌ی زبان شامل عبارت‌های Regular، انواع ژنریک، ورودی/خروجی(I/O) و سریال‌سازی ارائه می‌شوند. نمونه‌های از برنامه‌نویسی برای شیء Person که در بخش اول توسعه دادیم ارائه شده است. در انتهای این آموزش با دستور زبان مقدماتی زبان جاوا آشنا می‌شوید و می‌توانید برنامه‌های ساده‌ای برای جاوا بنویسید.

‏این آموزش مناسب توسعه‌دهندگانی است که در مورد کد یا پلتفرم جاوا آشنایی چندانی ندارند. این آموزش‌ها با مروری بر مفاهیم برنامه‌نویسی شیءگرا آغاز می‌شود. برای تکمیل تمرین‌های این آموزش باید محیط توسعه جاوا را که شامل موارد زیر است نصب و راه‌اندازی کنید:
JDK 8 from Oracle

Eclipse IDE for Java Developers


🔸 مروری بر پلتفرم جاوا

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

‏توسعه‌دهندگان جاوا به‌طور مداوم به مستندات رسمی آنلاین API جاوا (Official online Java API documentation) که به نام Javadoc نیز شناخته می‌شود، مراجعه می‌کنند.

‏به‌طور پیش‌فرض در Javadoc سه بخش وجود دارد. بالاترین بخش، همه بسته‌های موجود در API را نشان می‌دهد و بخش پایانی کلاس‌های هر بسته را نمایش می‌دهد. بخش اصلی (سمت راست) جزئیاتی از بسته یا کلاس انتخاب شده کنونی را نشان می‌دهد. برای نمونه اگر بر روی بسته java.Util در بخش بالا کلیک کنید و سپس کلاس ArrayList را انتخاب کنید جزئیاتی در مورد این کلاس در بخش راست مشاهده می‌کنید که شامل توضیحاتی در مورد کارهایی که انجام می‌دهد، نحوه انجام آن کار و متدهای آن است.



مطالعه ادامه مطلب 👇👇

🔗 آموزش جامع برنامه نویسی جاوا به زبان ساده — بخش اول: مقدمه — کلیک کنید (+)



📌 کانال اختصاصی آموزشی برنامه‌نویسی جاوا

آخرین مطالب علمی، مقالات رایگان و ویدئوهای آموزشی برنامه‌نویسی جاوا را در کانال اختصاصی [@Fara_Java] دنبال کنید. 👇

@Fara_Java — مطالب و آموزش‌های برنامه‌نویسی جاوا فرادرس