جاوا یک زبان برنامهنویسی شیگرا و مبتنی بر کلاس است که به گونهای طراحی شده است که وابستگیهای پیادهسازی آن به حداقل برسد. هدف جاوا این است که به توسعهدهندگان این امکان را بدهد که “یکبار بنویس، هر جا اجرا کن” (WORA)، یعنی کدهای کامپایلشده جاوا میتوانند در تمامی پلتفرمهایی که از جاوا پشتیبانی میکنند، بدون نیاز به کامپایل مجدد اجرا شوند. جاوا توسط جیمز گاسلینگ در شرکت سان میکروسیستمز در ماه مه 1995 توسعه یافت و بعدها توسط شرکت اوراکل خریداری شد و به طور گسترده برای توسعه برنامهها در دستگاههای دسکتاپ، وب و موبایل استفاده میشود.
جاوا به دلیل سادگی، استحکام و ویژگیهای امنیتی معروف است و انتخاب محبوبی برای برنامههای سطح شرکتی به شمار میرود. برنامههای جاوا به بایتکد تبدیل میشوند که میتوانند بر روی هر ماشین مجازی جاوا اجرا شوند. نحو (syntax) زبان جاوا مشابه زبانهای C/C++ است.
جاوا نوشتن، کامپایل کردن و اشکالزدایی برنامهها را آسان میکند و به ایجاد کد قابل استفاده مجدد و برنامههای مدولار کمک میکند.
فهرست مطالب
• تاریخچه جاوا
• ویژگیهای کلیدی جاوا
• وابستگیناپذیری از پلتفرم
• برنامهنویسی شیگرا
• ساده بودن
• استحکام
• امنیت
• توزیعشده
• چندرشتهای (Multithreading)
• قابلیت حمل
• عملکرد بالا
چگونه کد جاوا اجرا میشود؟
ایجاد برنامه
کامپایل کردن برنامه
اجرا کردن برنامه

تاریخچه جاوا
تاریخچه جاوا به اندازهای که تأثیرگذار است، جالب نیز میباشد. سفر این زبان برنامهنویسی قدرتمند از سال 1991 آغاز شد، زمانی که جیمز گاسلینگ، مایک شریدن و پاتریک ناتون، تیمی از مهندسان در شرکت سان میکروسیستمز که به “تیم سبز” معروف بودند، به منظور ایجاد یک زبان جدید شروع به کار کردند که ابتدا “اوک” نامیده میشد. بعداً نام “اوک” به جاوا تغییر یافت که از قهوه جاوا الهام گرفته شده بود و اولین بار در سال 1996 بهطور عمومی بهعنوان نسخه 1.0 جاوا منتشر شد. این نسخه اولیه یک محیط اجرایی بدون هزینه برای پلتفرمهای محبوب فراهم میکرد که دسترسی به آن را برای طیف وسیعی از کاربران ممکن میساخت. آرتور ون هاوف کامپایلر جاوا 1.0 را بازنویسی کرد تا بهطور دقیق با مشخصات آن مطابقت داشته باشد و قابلیت اطمینان و قابلیتهای چندپلتفرمی آن را تضمین کند.
جاوا در طول زمان تکامل یافت و نسخه جاوا 2 پیکربندیهای مختلفی را برای پلتفرمهای گوناگون معرفی کرد که انعطافپذیری آن را نشان داد.
در سال 1997، شرکت سان میکروسیستمز تلاش کرد تا جاوا را از طریق سازمانهای استاندارد ISO رسمی کند، اما در نهایت از این فرایند خارج شد.
با وجود عدم رسمیسازی از طریق ISO، شرکت سان میکروسیستمز بیشتر پیادهسازیهای جاوا را بهطور رایگان عرضه کرد و از طریق اعطای مجوز برای محصولات تخصصی مانند سیستمعامل جاوا، درآمد کسب کرد.
یک نقطه عطف بزرگ در تاریخچه جاوا در تاریخ 13 نوامبر 2006 رخ داد، زمانی که سان میکروسیستمز بخش بزرگی از ماشین مجازی جاوا (JVM) را بهعنوان نرمافزار رایگان و متنباز منتشر کرد.
تا 8 مه 2007، کد هستهای ماشین مجازی جاوا بهطور کامل تحت شرایط توزیع متنباز در دسترس قرار گرفت.
جاوا با اصول اصلی طراحی شد: سادگی، استحکام، امنیت، عملکرد بالا، قابلیت حمل، چندرشتهای(multithreading) و تفسیر پویا. این اصول باعث شدند جاوا به زبان انتخابی برای انواع مختلفی از برنامهها، از جمله دستگاههای موبایل، برنامهنویسی اینترنتی، بازیها و تجارت الکترونیک تبدیل شود.
امروزه، جاوا همچنان بهعنوان یکی از ارکان توسعه نرمافزار مدرن شناخته میشود و بهطور گسترده در صنایع و پلتفرمهای مختلف استفاده میشود.
ویژگیهای کلیدی جاوا
1. وابستگیناپذیری به پلتفرم
کامپایلر کد منبع را به کد بایت تبدیل میکند و سپس ماشین مجازی جاوا (JVM) کد بایت تولیدشده را اجرا میکند. این کد بایت میتواند روی هر پلتفرمی مانند ویندوز، لینوکس یا macOS اجرا شود. به این معنا که اگر برنامهای را روی ویندوز کامپایل کنیم، میتوانیم آن را روی لینوکس و بالعکس اجرا کنیم. هر سیستمعامل یک JVM متفاوت دارد، اما خروجی تولیدشده توسط همه سیستمعاملها پس از اجرای کد بایت یکسان است. به همین دلیل است که به جاوا بهعنوان یک زبان مستقل از پلتفرم نگاه میکنیم.
2. برنامهنویسی شیگرا
جاوا یک زبان شیگرا است که استفاده از اشیاء و کلاسها را ترویج میدهد. سازماندهی برنامه در قالب مجموعهای از اشیاء، هرکدام که یک نمونه از کلاس است، روشی برای برنامهنویسی شیگرا است.
چهار مفهوم اصلی برنامهنویسی شیگرا عبارتند از:
• انتزاع
• پنهانسازی
• وراثت
• چندرشتهای
3. سادگی
دستور زبان جاوا ساده و یادگیری آن راحت است، بهویژه برای کسانی که با C یا C++ آشنایی دارند. جاوا ویژگیهای پیچیدهای مانند اشارهگرها و وراثت چندگانه را حذف کرده است که نوشتن، اشکالزدایی و نگهداری کد را راحتتر میکند.
4. استحکام
زبان جاوا مستحکم است، به این معنا که قابلاعتماد است. بهگونهای توسعه یافته که تلاش زیادی برای بررسی خطاها در مراحل اولیه انجام میدهد، به همین دلیل کامپایلر جاوا حتی خطاهایی را شناسایی میکند که شناسایی آنها توسط زبانهای دیگر دشوار است. ویژگیهای اصلی جاوا که آن را مستحکم میکنند عبارتند از جمعآوری زباله (Garbage Collection)، مدیریت استثناها و تخصیص حافظه.
5. امنیت
در جاوا اشارهگرها وجود ندارند، بنابراین نمیتوانیم به آرایههای خارج از محدوده دسترسی پیدا کنیم؛ بهطوریکه اگر این کار را انجام دهیم، استثنای ArrayIndexOutOfBound را مشاهده خواهیم کرد. به همین دلیل، مشکلات امنیتی مانند خرابی پشته یا سرریز بافر در جاوا غیرممکن است. همچنین، برنامههای جاوا در محیطی اجرا میشوند که مستقل از محیط سیستمعامل است، که این باعث میشود برنامههای جاوا امنتر باشند.
6. توزیعشده
ما میتوانیم برنامههای توزیعشده را با استفاده از زبان برنامهنویسی جاوا ایجاد کنیم. فراخوانی روش از راه دور (RMI) و جاوای نرمافزارهای سازمانی (EJB) برای ایجاد برنامههای توزیعشده در جاوا استفاده میشوند. برنامههای جاوا بهراحتی روی یک یا چند سیستم که از طریق اتصال اینترنت به یکدیگر متصل هستند توزیع میشوند.
7. چندوظیفگی
جاوا از چندوظیفگی پشتیبانی میکند که به اجرای همزمان بخشهای مختلف یک برنامه اجازه میدهد. این ویژگی بهویژه برای برنامههایی که نیاز به عملکرد بالا دارند، مانند بازیها و شبیهسازیهای زمان واقعی، مفید است.
8. قابلیت جابجایی
همانطور که میدانیم، کد جاوا نوشتهشده روی یک ماشین میتواند روی ماشین دیگری اجرا شود. ویژگی وابستگیناپذیری از پلتفرم جاوا به این معنا است که کد بایت مستقل از هر پلتفرم میتواند برای اجرا به هر پلتفرمی منتقل شود. ویژگی “یکبار بنویس، همهجا اجرا کن” (WORA) باعث میشود برنامههای جاوا فایلهای .class تولید کنند که مربوط به برنامههای ما هستند اما کد آنها در فرمت باینری است. این ویژگی باعث میشود تا برنامههای جاوا بدون وابستگی به معماری خاصی از ماشینها، بهراحتی قابل جابجایی باشند. این ویژگی دلیل اصلی استفاده گسترده جاوا در صنعت فناوری اطلاعات در سراسر جهان است.
9. عملکرد بالا
معماری جاوا بهگونهای تعریفشده است که بار اضافی را در زمان اجرا کاهش میدهد و در برخی موارد از کامپایلر Just In Time (JIT) استفاده میکند که کد را بهصورت درخواستمحور کامپایل میکند. به این معنا که تنها روشهایی که فراخوانی میشوند، کامپایل میشوند و این باعث افزایش سرعت اجرای برنامهها میشود.
این ترجمه دقیق و بهروز است و معادلهای فارسی رایجتر و قابلفهمتری برای واژهها به کار برده شده است.
چگونه کد جاوا اجرا میشود؟
اجرای کد یک برنامه جاوا شامل سه مرحله اصلی است:
1. نوشتن برنامه
برنامههای جاوا با استفاده از یک ویرایشگر متن یا یک محیط توسعه یکپارچه (IDE) مانند IntelliJ IDEA، Eclipse یا NetBeans نوشته میشوند. کد منبع با پسوند .java ذخیره میشود.
2. کامپایل کردن برنامه
کامپایلر جاوا (javac) کد منبع را به بایتکد تبدیل میکند، که در فایل .class ذخیره میشود. این بایتکد مستقل از پلتفرم است و میتواند روی هر دستگاهی که JVM (ماشین مجازی جاوا) داشته باشد، اجرا شود.
3. اجرای برنامه
JVM بایتکد کامپایل شده را اجرا میکند و آن را به کد ماشین مخصوص به سیستم عامل و سختافزار ترجمه میکند.

اصطلاحات مهم جاوا که باید بدانید
قبل از شروع یادگیری جاوا، باید با برخی اصطلاحات رایج جاوا آشنا شوید.
1. ماشین مجازی جاوا (JVM)
JVM بخش اصلی پلتفرم جاوا است که مسئول اجرای بایتکد جاوا میباشد. این اطمینان را میدهد که خروجی برنامههای جاوا در پلتفرمهای مختلف یکسان است.
• نوشتن برنامه: برنامهنویسی جاوا توسط برنامهنویسانی مانند شما و من انجام میشود.
• مرحله کامپایل: کامپایلر javac، کامپایلر اصلی جاوا است که در کیت توسعه جاوا (JDK) قرار دارد. این کامپایلر برنامه جاوا را به عنوان ورودی دریافت میکند و بایتکد را به عنوان خروجی تولید میکند.
• مرحله اجرا: در این مرحله، JVM بایتکد تولید شده توسط کامپایلر را اجرا میکند.
• استقلال پلتفرم: هر سیستمعاملی نسخه خاص خود از JVM را دارد، اما همه JVMها از قوانین و استانداردهای یکسانی پیروی میکنند. این به این معنی است که برنامههای جاوا میتوانند به همان شیوه روی هر دستگاهی که JVM دارد، اجرا شوند، صرف نظر از سیستمعامل آن دستگاه. به همین دلیل جاوا به عنوان یک زبان مستقل از پلتفرم شناخته میشود.
2. بایتکد
بایتکد، نمایش میانه کد جاوا است که توسط کامپایلر جاوا تولید میشود. این بایتکد مستقل از پلتفرم است و میتواند توسط JVM در هر دستگاهی اجرا شود.
3. کیت توسعه جاوا (JDK)
JDK یک کیت توسعه کامل جاوا است که شامل تمام ابزارهای لازم برای توسعه برنامههای جاوا میباشد. این کیت شامل کامپایلر، محیط اجرای جاوا (JRE)، دیباگرهای جاوا، مستندات جاوا و غیره است. برای ایجاد، کامپایل و اجرای برنامههای جاوا باید JDK را روی کامپیوتر خود نصب کنید.
4. محیط اجرای جاوا (JRE)
JRE بخشی از JDK است که برای اجرای برنامههای جاوا لازم است. نصب JRE روی کامپیوتر این امکان را فراهم میکند که برنامههای جاوا اجرا شوند، اما نمیتوان آنها را کامپایل کرد. JRE شامل مرورگر، JVM، پشتیبانی از اپلتها و پلاگینها است. برای اجرای برنامههای جاوا، کامپیوتر به JRE نیاز دارد.
5. جمعآوری زباله (Garbage Collector)
در جاوا، برنامهنویسان نمیتوانند به طور مستقیم اشیاء را حذف کنند. برای حذف یا بازیابی حافظه، JVM یک برنامه به نام جمعآوری زباله (Garbage Collector) دارد. این برنامه میتواند اشیائی را که دیگر به آنها ارجاع داده نمیشود بازیابی کند. بنابراین جاوا با مدیریت حافظه، زندگی برنامهنویسان را راحتتر میکند. با این حال، برنامهنویسان باید مراقب کد خود باشند و از استفاده از اشیائی که مدت زیادی است استفاده نشدهاند، پرهیز کنند، زیرا جمعآوری زباله نمیتواند حافظه اشیائی که هنوز ارجاع داده میشوند را بازیابی کند.
6. ClassPath
ClassPath مسیر فایلی است که جاوا در آن به دنبال فایلهای .class میگردد تا آنها را بارگذاری کند. به طور پیشفرض، JDK کتابخانههای زیادی را فراهم میکند. اگر بخواهید کتابخانههای خارجی را اضافه کنید، باید آنها را به ClassPath اضافه کنید.
در جاوا، هر چیزی به عنوان یک کلاس و شیء نمایش داده میشود، از جمله تابع اصلی (main) که خود نیز جزئی از یک کلاس است.
مزایای جاوا
1. مستقل از پلتفرم: کدهای جاوا میتوانند روی هر پلتفرمی که ماشین مجازی جاوا (JVM) روی آن نصب شده باشد اجرا شوند. این به این معنا است که برنامهها میتوانند یکبار نوشته شوند و روی هر دستگاهی اجرا شوند.
2. شیگرا: جاوا یک زبان برنامهنویسی شیگرا است، به این معنی که از اصول کپسولهسازی، وراثت و چندریختی پیروی میکند.
3. امنیت: جاوا ویژگیهای امنیتی داخلی دارد که آن را به یک پلتفرم امن برای توسعه برنامهها تبدیل میکند. این ویژگیها شامل مدیریت خودکار حافظه و بررسی نوع دادهها هستند.
4. جامعه بزرگ: جاوا یک جامعه بزرگ و فعال از توسعهدهندگان دارد، که به این معنی است که پشتیبانی زیادی برای یادگیری و استفاده از زبان جاوا وجود دارد.
5. برنامههای سطح سازمانی: جاوا به طور گستردهای برای توسعه برنامههای سطح سازمانی، مانند برنامههای وب، سیستمهای تجارت الکترونیک و سیستمهای پایگاهداده استفاده میشود.

معایب جاوا
1. عملکرد: جاوا ممکن است نسبت به زبانهای برنامهنویسی دیگر مانند C++ کندتر باشد، زیرا از ماشین مجازی و مدیریت خودکار حافظه استفاده میکند.
2. مدیریت حافظه: مدیریت خودکار حافظه در جاوا میتواند منجر به کاهش عملکرد و افزایش مصرف حافظه شود که ممکن است برای برخی از برنامهها یک نقطه ضعف باشد.
نتیجهگیری
جاوا یک زبان برنامهنویسی قدرتمند و چندمنظوره است که هم برای مبتدیان و هم برای توسعهدهندگان باتجربه مناسب است. با یادگیری اصول پایه مانند کلاسها، اشیاء و متدها، میتوانید شروع به نوشتن برنامههای خود کنید و ببینید که چگونه جاوا در برنامههای دنیای واقعی کاربرد دارد. چه به ساخت بازیها، برنامههای موبایل یا وبسایتها علاقهمند باشید، جاوا یک پایه محکم برای تحقق ایدههای شما فراهم میکند. به یاد داشته باشید، هرچقدر بیشتر تمرین کنید، بهتر خواهید شد. ادامه دهید و به زودی با اعتماد به نفس برنامههای جاوا خود را بنویسید!
نظرات 0
برای ارسال نظر وارد حساب کاربری شوید.
هنوز نظری ثبت نشده؛ اولین نفر باشید.