جاوا چیست؟ برسی زبان برنامه نویسی جاوا
زبان برنامه نویسی جاوا (Java) بیش از 25 سال است که وجود دارد. شرکت سان مایکروسیستمز (Sun Microsystems) با هدف ایجاد نسخه بهتری از زبان برنامه نویسی C++ در همان سالها آغاز به کار کرد. هدف این شرکت ساخت زبان برنامه نویسی بود که قابل حمل باشد، برای افراد مبتدی مناسب باشد و به مدیریت خودکار حافظه بپردازد.
زبان برنامه نویسی جاوا (Java) بیش از 25 سال است که وجود دارد. شرکت سان مایکروسیستمز (Sun Microsystems) با هدف ایجاد نسخه بهتری از زبان برنامه نویسی C++ در همان سالها آغاز به کار کرد. هدف این شرکت ساخت زبان برنامه نویسی بود که قابل حمل باشد، برای افراد مبتدی مناسب باشد و به مدیریت خودکار حافظه بپردازد.
در این نوشته به بررسی کامل و جامع این زبان برنامه نویسی، ویژگیها، مزایا و معایب زبان برنامه نویسی جاوا، کاربردها و هر آنچه که ممکن است در مورد جاوا بخواهید بدانید میپردازیم.
جاوا چیست؟
جاوا یکی از زبانهای برنامه نویسی همه منظوره است که مبتنی بر کلاس و شی گرایی است. ساختار این زبان برنامه نویسی به گونهای است که برنامه نویسان میتوانند کد جاوا را در هر مکانی بنویسند و آن را در هر جایی اجرا کنند، بدون اینکه نگران معماری کامپیوتر باشند. همچنین به آن write once, run anywhere (WORA) نیز میگویند. به این معنا که میتوانید یک بار بنویسید و آن را همه جا اجرا کنید. به عبارت دیگر کد جاوا که یک بار کامپایل شده است را میتوان بر روی تمام پلتفرمهایی که Java Runtime Environment (JRE) را اجرا میکنند، بدون نیاز به کامپایل مجدد اجرا کرد.
اکادمی همیار
جاوا در شرکت Sun Microsystems (که توسط اوراکل خریداری شده) توسط جیمز گاسلینگ توسعه داده شد. این برنامه مشابه C++ است و از نظر نحوه نوشتاری، دارای اشتراکهای زیادی با زبان برنامه نویسی C++ است. جاوا، که در حال حاضر توسط اوراکل نگهداری میشود، دائماً به روزرسانی میشود تا نیازهای جامعه توسعهدهندگان که به طور دائم در حال تغییر است را برآورده کند.
آموزش برنامه نویسی اندروید
آیا 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 است. این نسخه در واقع نسخهای اصلی است که شامل کتابخانههای اصلی زبان جاوا است که با کمک آن میتوان برای سرورها و دسکتاپها برنامه نویسی کرد.