زبان برنامه نویسی جاوا (Java) بیش از 25 سال است که وجود دارد. شرکت سان مایکروسیستمز (Sun Microsystems) با هدف ایجاد نسخه بهتری از زبان برنامه نویسی C++ در همان سالها آغاز به کار کرد. هدف این شرکت ساخت زبان برنامه نویسی بود که قابل حمل باشد، برای افراد مبتدی مناسب باشد و به مدیریت خودکار حافظه بپردازد.
امروزه در دنیای برنامه نویسی حوزههای مختلفی مانند برنامه نویسی طراحی سایت و برنامه نویس موبایل (برنامه نویسی اندروید یا IOS )وجود دارد. بیشتر برنامه نویسانی که به حوزه طراحی برنامههای اندرویدی علاقه دارند، برای فعالیت و حرفه خود از زبان برنامه نویسی java استفاده میکنند. اگر شما هم به برنامه نویسی اندروید علاقه دارید اما تا به حال از جاوا استفاده نکردهاید، با ما همراه باشید و زبان برنامه نویسی جاوا را در کنار ما یاد بگیرید.
در این نوشته به بررسی کامل و جامع این زبان برنامه نویسی، ویژگیها، مزایا و معایب زبان برنامه نویسی جاوا، کاربردها و هر آنچه که ممکن است در مورد جاوا بخواهید بدانید میپردازیم.
جاوا چیست؟
جاوا یکی از زبانهای برنامه نویسی همه منظوره است که مبتنی بر کلاس و شی گرایی است. ساختار این زبان برنامه نویسی به گونهای است که برنامه نویسان میتوانند کد جاوا را در هر مکانی بنویسند و آن را در هر جایی اجرا کنند، بدون اینکه نگران معماری کامپیوتر باشند. همچنین به آن write once, run anywhere (WORA) نیز میگویند. به این معنا که میتوانید یک بار بنویسید و آن را همه جا اجرا کنید. به عبارت دیگر کد جاوا که یک بار کامپایل شده است را میتوان بر روی تمام پلتفرمهایی که Java Runtime Environment (JRE) را اجرا میکنند، بدون نیاز به کامپایل مجدد اجرا کرد.
برای آشنایی بیشتر با کد نویسی به مقاله کد نویسی چیست مراجعه کنید.
جاوا در شرکت Sun Microsystems (که توسط اوراکل خریداری شده) توسط جیمز گاسلینگ توسعه داده شد. این برنامه مشابه C++ است و از نظر نحوه نوشتاری، دارای اشتراکهای زیادی با زبان برنامه نویسی C++ است. جاوا، که در حال حاضر توسط اوراکل نگهداری میشود، دائماً به روزرسانی میشود تا نیازهای جامعه توسعهدهندگان که به طور دائم در حال تغییر است را برآورده کند.
جاوا یکی از زبانهای برنامهنویسی مهم و محبوب در دنیای نرمافزارها و وب است که تاریخچه بلندی دارد. این زبان توسط جیمز گاسلینگ (James Gosling) و تیمش در شرکت Sun Microsystems در دهه ۱۹۹۰ ایجاد شد. در ادامه، به تاریخچه جاوا در هر مرحله اشاره خواهیم کرد:
۱۹۹۱: آغاز پروژه Oak
پروژه Oak که بعدها به نام جاوا تغییر نام پیدا کرد، توسط جیمز گاسلینگ و تیمش در شرکت Sun Microsystems آغاز شد. هدف اصلی این پروژه ایجاد یک زبان برنامهنویسی برای دستگاههای خانگی بود.
۱۹۹۵: عرضه اولین نسخه عمومی جاوا
در ماه مه سال ۱۹۹۵، نسخه اولیه عمومی جاوا با نام JDK 1.0 منتشر شد. این نسخه اولیه امکانات پایهای مانند مدیریت حافظه، ورودی/خروجی، و گرافیک را فراهم میکرد.
۱۹۹۷: عرضه جاوا ۱.۱
نسخه ۱.۱ جاوا با بهبودهای مهمی در زمینه عملکرد و امکانات منتشر شد. این نسخه شامل واحدهای متراکم (inner classes) و امکانات شبکه بهبود یافته بود.
۲۰۰۴: عرضه جاوا ۵
نسخه ۵ جاوا با نام Java 5 یا Java 1.5 و همچنین کدنام “Tiger” منتشر شد. این نسخه شامل ویژگیهایی همچون تیپهای ژنریک، انواع جدیدی از حلقهها، و واحدهای تقسیمپذیر (enum) بود.
۲۰۱۱: عرضه جاوا ۷
نسخه ۷ جاوا با نام Java 7 منتشر شد. این نسخه شامل بهبودهای عمده در عبارتها و امکانات ایمنی نتایج بود.
۲۰۱۴: عرضه جاوا ۸
نسخه ۸ جاوا با نام Java 8 منتشر شد و به عنوان یکی از نسخههای مهم جاوا شناخته میشود. این نسخه شامل ویژگیهایی مانند توابع لامبدا (Lambda Expressions) و روشهای افزوده شده برای کلاسهای رشتهها بود.
۲۰۱۷: عرضه جاوا ۹
نسخه ۹ جاوا با نام Java 9 منتشر شد و ویژگیهای جدیدی مانند ماژولاریته (Modularity) به جاوا اضافه کرد.
۲۰۱۸: عرضه جاوا ۱۰
نسخه ۱۰ جاوا با نام Java 10 منتشر شد و ویژگیهای کوچکی را به زبان اضافه کرد.
۲۰۱۹: عرضه جاوا ۱۱
نسخه ۱۱ جاوا با نام Java 11 منتشر شد و برخی از تغییرات اساسی در ساختار انتشار نسخههای جاوا داشت.
از آن زمان تاکنون، جاوا با انتشار نسخههای جدید و بهبودهای مداوم به عنوان یکی از زبانهای برنامهنویسی بسیار محبوب و تاثیرگذار در جهان توسعه نرمافزار باقی مانده است. این زبان به عنوان اساسیترین بخش از بسیاری از سیستمها و نرمافزارهای مدرن در دنیا شناخته میشود و همچنان به توسعه و پیشرفت ادامه میدهد.
آیا Java و JavaScript یکی هستند؟
اگر بخواهیم در یک کلام به این سوال پاسخ دهیم، میگوییم: خیر!. جاوا و جاوا اسکریپت یکی نیستند، اما متاسفانه بسیاری از افراد این دو زبان برنامه نویسی را یکی میدانند که این موضوع کاملا نادرست است. جاوا (Java) و جاوااسکریپت (JavaScript) دو زبان برنامهنویسی متفاوت هستند که با ویژگیها و مفاهیم متفاوتی ارائه میشوند. این دو زبان به طور کامل مستقل از یکدیگر عمل میکنند. اصطلاحا، تنها ویژگی مشترکی که دارند، اشتراک نام مشابه “جاوا” در نام خود است که این موضوع کاملا تصادفی است و حتی این دو زبان برنامهنویسی تاریخچههای متفاوتی نیز دارند. در این مقاله بهطور کامل با جاوا آشنا شدید، در ادامه بهطور مختصر در خصوص جاوا اسکریپت صحبت خواهیم کرد:
- جاوااسکریپت یک زبان برنامهنویسی اسکریپتی است که به طور اصلی در مرورگرهای وب برای توسعه اپلیکیشنهای وب اجرا میشود.
- این زبان به طور معمول برای ایجاد افکتها، اعتبارسنجی فرمها، تعامل با کاربر و دینامیکسازی صفحات وب استفاده میشود.
- جاوااسکریپت کاملا متمرکز بر محیط مرورگر است و برای اجرا نیاز به مرورگر دارد.
جاوا برای چه مواردی استفاده میشود؟
جاوا میتواند برای ساخت برنامههای کاربردی برای طیف وسیعی از پلتفرمها استفاده شود. دسکتاپها، سرورها، تلفنهای همراه، تبلتها، پخشکنندههای Blu-ray، تلویزیونها و مرورگرهای وب همگی از جاوا استفاده میکنند. توسعهدهندگان میتوانند برنامههای کاربردی مبتنی بر جاوا را برای هر یک از این پلتفرمها بنویسند. از آنجایی که جاوا به الزامات WORA پایبند است، همان کد را میتوان در تمام پلتفرمهایی که دارای محیط زمان اجرا جاوا (JRE) هستند، بدون کامپایل مجدد کد اجرا کرد.
جاوا برای نوشتن برنامههای کاربردی برای اجرا در پلتفرمهای مختلف استفاده میشود. همچنین از برنامههایی که روی یک دستگاه اجرا میشوند مانند دسکتاپ یا تلفن همراه پشتیبانی میکند. علاوه بر این، جاوا میتواند برای توسعه برنامههایی که به صورت توزیع شده کار میکنند استفاده شود. این بدان معناست که برنامه نوشته شده با جاوا را میتوان بین سرورها یا کلاینتها در یک شبکه توزیع کرد و میتواند به صورت همزمان اجرا شود. جاوا نیز میتواند برای نوشتن ماژولهای برنامه به عنوان بخشی از صفحات وب استفاده شود.
جاوا برای موارد زیر استفاده میشود:
- برنامههای رابط کاربری گرافیکی (GUI)
- وب سرورها و سرورهای برنامههای کاربردی مانند Apache، Jboss و GlassFish
- برنامههای کاربردی میان افزار (Middleware)
- برنامههای کاربردی وب
- برای تجزیه و تحلیل دادههای بزرگ
- برنامههای موبایل
- سیستمهای جاسازی شده (Embedded)
- برنامههای سازمانی (Enterprise)
جاوا مزایا و معایب مختلفی دارد که بهتر است قبل از شروع آموزش جاوا با آنها آشنا شوید. در ادامه با هم برخی از اصلیترین آنها را میبینیم. در واقع پیش از شروع آموزش کد نویسی و برنامه نویسی با هر زبان دیگری بهتر است با معایب و مزایای آن آشنا شوید.
مروری بر پلتفرم جاوا
از جاوا هم به عنوان یک زبان برنامه نویسی و هم پلتفرمی که برای اجرای کد جاوای کامپایل شده استفاده میشود، یاد میشود. به طور عمده این پلتفرم شامل JVM است. اما در کنار آن محیط اجرایی نیز قرار دارد که از اجرای JVM بر روی پلتفرمهای زیرساختی پشتیبانی میکند. JVM خود به چند بخش مختلف تقسیم میشود که از آنها برای بارگذاری، تأیید و اجرای کد جاوا استفاده میشود. نحوه اجرای کد جاوا به صورت زیر است:
در بخش ابتدایی این نمودار فایلهای مختلف کلاس یک برنامه را مشاهده میکنید که یکی از آنها به عنوان کلاس اصلی شناخته میشود. هر برنامه جاوا یک فایل کلاس اصلی دارد و این فایل به عنوان اولین کلاس بارگذاری، تأیید و اجرا میشود.
JVM بارگذاری کلاس را به کمک مولفه Classloader انجام میدهد. این مولفه در ابتدا فایلهای کلاس را از منابعی مانند سیستمهای فایل، شبکهها و فایلهای فشرده بارگذاری میکند. این فایل در حافظه نگهداری شده و به صورت یک شی نمایش داده میشود. در هنگام بارگذاری برای بررسی اعتبار و امنیت بایت کدها، از bytecode verifier استفاده میشود.
در صورت معتبر بودن بایت کد، مولفه مفسر آن را به دستورالعمل تفسیر میکند. فرآیند تفسیر به گونهای است که دستورالعملها شناسایی شده و دستور بومی معادل آنها اجرا میشود.
مزایا و معایب زبان برنامه نویسی جاوا
زبان برنامه نویسی جاوا نیز مانند هر زبان برنامه نویسی دیگری در کنار مزیتهایی که دارد از معایبی نیز برخوردار است. در ادامه به طور مفصل مزایا و معایب زبان برنامه نویسی جاوا را بررسی میکنیم.
مزایای جاوا
جاوا از زمان ایجاد تاکنون بسیار تکامل یافته است زیرا اوراکل، از این زبان برنامه نویسی حمایت و نگهداری و به طور مرتب آن را به روزرسانی میکند. پشتیبانی از جامعه بزرگ توسعهدهندگان زبان برنامه نویسی جاوا، یک مزیت بزرگ برای برنامه نویسان جدید جاوا نیز هست. جاوا با بیش از دو دهه فعالیت، مجموعه قابل توجهی از کتابخانهها و توابع منبع باز(Open source) را دارد. در اینجا به برخی از مزایای کلیدی زبان برنامه نویسی جاوا نگاهی میاندازیم.
- ساده و آسان برای یادگیری: نحوه نوشتاری جاوا با C و C++ بسیار شباهت دارد. اشارهگرهای صریح، بارگذاری بیش از حد اپراتور، کلاسهای ذخیرهسازی و سایر عناصر موجود در C++ در جاوا موجود نیستند. این باعث میشود که زبان جاوا پیچیدگی کمتری برای نوشتن کد داشته باشد.
- زبان برنامه نویسی شی گرا: همه چیز در جاوا به عنوان یک شی در نظر گرفته میشود و دارای ویژگیهای مانند کلاس، کپسولهسازی (encapsulation)، انتزاع (abstraction)، وراثت (inheritance) و چندشکلی (polymorphism) است.
- Multithreading توسط جاوا پشتیبانی میشود: برنامههای بزرگ را میتوان به چندین نخ (thread) تبدیل کرد و به طور همزمان اجرا کرد. این کار باعث کاهش منابع و زمان مورد نیاز برای اجرای یک برنامه میشود.
- زبان آگنوستیک پلت فرم (Platform agnostic): از آنجایی که جاوا در جعبه sandbox ماشین مجازی خود اجرا میشود، هنگام نوشتن برنامههای جاوا، نیاز ندارد که پلتفرم و معماری کامپیوتر را در نظر بگیرید. بنابراین میتوان همان کد را توسط پلتفرمهای مختلف و بدون کامپایل مجدد و بر روی هر دستگاهی اجرا کرد. به همین دلیل استفاده از زبان برنامه نویسی جاوا مدیریت پروژه را آسان میکند.
- پلت فرم امن: برنامههای جاوا در محیطهای زمان اجرا (runtime) اجرا میشوند. همچنین یک classloader برای بارگذاری کلاسها در محیط زمان اجرا فراهم میکند. در واقع یک بافر فراهم میکند و ذاتاً امن است. با این حال، افزونهها و پلاگینهای مرورگر جاوا بسیار ناامن هستند و بهتر است غیرفعال شوند زیرا در حال حاضر دنیای وب بیشتر بر روی جاوا اسکریپت اجرا میشود.
معایب جاوا
در حالی که استفاده از جاوا مزایای زیادی دارد، اما عاری از جنبههای منفی یا نقاطی برای بهبود نیست. برخی از معایب عبارتند از:
برنامهها باید روی JRE اجرا شوند: sandbox جاوا، پلتفرم برنامهها را آگنوستیک میکند. این بدان معناست که برنامهها فقط بر روی JRE قابل اجرا هستند بنابراین به حافظه بیشتری نیاز دارند.
UIهای ساخته شده با استفاده از جاوا جذابیت کمتری دارند: چندین فریم ورک جاوا برای ایجاد رابط کاربری برای برنامهها وجود دارد، اما هیچ یک از آنها به اندازه کافی پیشرفته نیستند که بتوانند عناصر پیچیده رابط کاربری را مدیریت کنند. عناصری که به راحتی توسط زبانهای برنامه نویسی دیگر نظیر جاوا اسکریپت به کار میرود.
بدون امکانات پشتیبانگیری (backup): زبان برنامه نویسی جاوا عمدتاً با نتیجه نهایی اجرای برنامه مورد نظر کار میکند و عملاً تمرکزی بر روی پشتیبانگیری و تهیه بکاپ دادهها ندارد.
زباله جمع کنهای ارائه شده با جاوا اتوماتیک هستند: این ممکن است یک مزیت به نظر برسد، اما هیچ امکانی را برای برنامه نویسان برای کنترل جمعآوری زباله فراهم نمیکند. در ماشین مجازی جاوا (JVM)، زباله جمع کن(Garbage Collector)، وظیفه مدیریت آبجکتهای حافظه را دارد و آبجکتهای بلااستفاده را پیدا کرده و فضای اشغال شده توسط آن آبجکت را آزاد میکند.
معرفی نسخههای اصلی زبان برنامه نویسی جاوا
احتمالا تا اینجای مقاله با اینکه جاوا چیست و اهمیت یادگیری آن آشنا شدهاید، زبان جاوا از پلتفرمهای مختلفی پشتیبانی میکند که در پایین برخی از مهمترین این نسخهها را مورد بررسی قرار میدهیم:
Java ME: نسخه ME مخفف Micro Edition است. این نسخه در حقیقت نسخهای سبک و کوچک برای برنامه نویسی ریز پردازندهها و حتی تلفنهای قدیمی به کار میرود. این نسخه با نام مستعار J2ME شناخته میشود.
Java EE: نسخه EE مخفف عبارت Enterprise Edition از نوع نسخههای تجاری با نام مستعار J2EE است. این نسخه برای ساخت اپلیکیشنهای سازمانی و تجاری و برنامههای تحت وب مورد استفاده قرار میگیرد. است.
Java SE: نسخه SE مخفف عبارت Standard Edition با نام مستعار J2SE است. این نسخه در واقع نسخهای اصلی است که شامل کتابخانههای اصلی زبان جاوا است که با کمک آن میتوان برای سرورها و دسکتاپها برنامه نویسی کرد.
معروفترین محیطهای توسعه جاوا
برای نوشتن هر نوع برنامهای به یک IDE یا همان محیط توسعه یکپارچه احتیاج خواهید داشت که کد نویسی، کامپایل و دیباگ برای شما کدها را آسان و ساده میکند. از محبوب ترین IDE های جاوا میتوان به مواردی همچون: IntelliJ IDEA ، Eclipse و NetBeans اشاره کرد. شما برای توسعه برنامههای خود میتوانید از این نرم افزارها استفاده نمایید. نکته ای که باید مد نظر قرار دهید این است که برای برنامه نویسی به کمک زبان جاوا شما به JDK و JRE نیز احتیاج خواهید داشت که باید متناسب با سیستم خود نسخه این ابزارها را داشته باشید.
موقعیتهای شغلی برای برنامه نویس جاوا به چه صورت هستند؟
حال که متوجه شدیم زبان برنامه نویسی جاوا چیست، باید با موقعیتهای شغلی و درآمد افراد فعال در این حوزه آشنا شویم. جاوا یکی از پنج زبان محبوب با فرصتهای شغلی متعدد در سراسر دنیا به شمار میرود. این فرصتهای سغلی میتوانند درآمدهای بسیار بالایی برای شما به همراه داشته باشند. یادگیری زبان خاصی مانند جاوا تنها یادگیری درباره این زبان نیست و شما در کنار آن به تعداد بسیار زیاید از زبانهای دیگر آشنا میشوید. این مورد از مهمترین اصول یادگیری زبانهای برنامه نویسی است. به همین دلیل است که از زبان جاوا به عنوان یکی از مناسبترین زبانهای برای شروع یادگیری و قرار گرفتن در مسیر فعالیتهای برنامه نویسی یاد میشود.
افرادی که این زبان را آموزش ببینند به سادگی میتوانند زبانهایی مانند C#، پایتون یا روبی را نیز آموزش ببینند. به همین دلیل است که یادگیری جاوا یکی از ضرورتهای بسیار مهم در دنیای برنامه نویسی است و فعالیتی فراتر از یافتن شغل مرتبط محسوب میشود. از جاوا برای توسعه وب سایتها و اپلیکیشنهای مختلف با اجزای دینامیک استفاده میشود.
درآمد این برنامه نویسان نیز در دنیا بسیار بالاست. با توجه به بررسیها و آمارهایی که در سایت Stack Overflow بیان شده است، در سال 2018 و در میان 64000 برنامه نویس، میانگین حقوق برنامه نویسان جاوا نزدیک به 52000 دلار در سال بوده است. این آمار در ایران نیز به دست آمده و از میان 1950 برنامه نویس، 1365 نفر از آنها برای فعالیتها و پروژههای خود از جاوا استفاده میکنند. میانگین حقوق برنامه نویسان در این حوزه در ایران و در سال 1396 حدود 3 میلیون تومان بوده است. محبوبترین زبان برنامه نویسی در میان برنامه نویسان ایرانی، جاوا است.
سخن پایانی
همانطور که میدانید جاوا یکی از زبانهای سطح بالا است که بیشتر برای طراحی برنامههای اندروید مورد استفاده قرار میگیرد. Java نیز همانند دیگر زبانهای برنامه نویسی دارای فریم ورکهای بسیار جذاب، مزایا، کاربردها، پلتفرمهای خاص خود است. با شناخت بهتر این زبان برنامه نویسی و پی بردن به مزایا و معایب و کاربردهای آن میتوانید با علاقه بیشتری یادگیری را شروع کنید.
برای یادگیری جاوا و یا هر زبان برنامه نویسی دیگری، بوت کمپ برنامه نویسی مپصا اچ آر را به شما پیشنهاد میدهیم. بوت کمپ برنامه نویسی مپصا اچ آر از متخصصین هر حوزه به عنوان منتور و برای آموزش به شما عزیزان استفاده میکند. در پایان دورهها شما گواهینامه معتبر مپصا اچ آر دریافت میکنید و برای استخدام به شرکتهای معتبر معرفی میشوید. مپصا اچ آر از آموزش تا استخدام همراه شما است!
بوتکمپ برنامه نویسی مپصا اچ آر(bootcamp.mapsahr) ، تمام تلاش خود را بهکار گرفته است تا در حوزه تکنولوژی به ویژه هوش مصنوعی جدیدترین، مفیدترین و مهمترین اطلاعات روز دنیا را در اختیار و دسترس شما علاقمندان به حوزه تکنولوژی و فناوری قرار دهد. اگر مایل به آشنایی هرچه بیشتر با هوش مصنوعی هستید به شما پیشنهاد میکنیم که نگاهی به مقالههای کد نویسی چیست؟ بهترین راه برای شروع کد نویسی، دواپس (DevOps) چیست و یک مهندس دواپس چه وظایفی دارد؟، بهترین فریم ورکهای پایتون برای ساخت اپلیکیشن، Audio craft چیست؟، بهترین فریم ورکهای پایتون برای ساخت اپلیکیشن و سایر مقاله بارگذاری شده در مپصا بیاندازید. همچنین برای دریافت اطلاعات بیشتر و شرکت در بوت کمپ ها میتوانید با بخش پشتیبانی در ارتباط باشید.