قسمت اول : جاوا در یک نگاه
جاوا در یک نگاه
جاوا یک زبان برنامه نویسی شیء گرا و سطح بالا(High Level) است که نخستین بار توسط جیمز گاسلینگ در سال 1995 در شرکت سان مایکروسیستمز ایجاد و بعنوان بخشی از سکوی جاوا(Java Platforms) منتشر گردید. شرکت Sun Microsystems در سال 2010 توسط شرکت اوراکل خریداری گردید.
پس از فروش این شرکت به اوراکل گاسلینگ شرکت را ترک کرد و تبدیل به یکی از بزرگترین منتقدان اوراکل شد. پس از آن برای یک دوره کوتاه ۵ ماهه به گوگل پیوست و در حال حاضر نیز در استارت آپ Liquid Robotics مشغول به کار است.
این زبان بوسیله زبان C++ پیاده سازی گردید. زبان جاوا شبیه به C++ است اما مدل شیء گرایی آسانتری نسبت به آن دارد و از قابلیت های سطح پایین کمتری پشتیبانی می کند. یکی از قابلیتهای بنیادین جاوا این است که مدیریت حافظه را بطور خودکار انجام میدهد(توسط GC(Garbage Collector) انجام می شود) و در اصطلاح یک زبان برنامه نویسی Managed می باشد.
در حقیقت عمل Garbage Collection(زباله روبی) نوعی مدیریت منابع بصورت خودکار است. این روش خاصی برای مدیریت منابع است که منابع محدود از قبیل حافظه RAM و ... در آن مدیریت میشوند. تکنیک زبالهروبی توسط جان مککارتی در حدود سال ۱۹۵8 برای حل مشکلات Lisp اختراع شده است. این تکنیک مشکل تنظیم دستی حافظه RAM را حل می کند زیرا در تنظیم دستی حافظه, برنامه نویس باید مشخص کند که کدام اشیاء(Object ها) و در چه زمانی, باید حافظه را بازپس دهند(حافظه را آزاد کنند). به عبارت دیگر, Garbage Collector به طور اتوماتیک آن Object ها را تخریب(Dispose و یا Destroy) می کند.
ضریب اطمینان عملکرد برنامههای نوشته شده به این زبان بالا است و وابسته به سیستم عامل خاصی نیست(اصطلاحا, جاوا Cross-Platform است)، به عبارت دیگر میتوان آن را روی هر رایانه با هر نوع سیستم عاملی اجرا کرد.
پلتفرم(سکوی) جاوا به مجموعهای از محصولات نرمافزاری و مشخصهها از شرکت سان مایکروسیستمز، یک زیر مجموعه از شرکت اوراکل ، اطلاق میشود که به منظور ایجاد محیطی برای نوشتن نرم افزار هایی که به صورت چند سکویی(Cross-Platform) اجرا میشوند به کار میرود. جاوا در محدوده وسیعی از کاربردها، مورد استفاده قرار می گیرد. کاربردهایی که محدوده ی وسیعی از سکوهای محاسباتی(Computing Platforms)، سامانه های توکار(Embedded Devices)، تلفن های همراه(Mobile Devices) که کاربردهایی در دستگاههای معمولی هستند تا دستگاه هایی از قبیل ابر رایانه ها(Super Computers) و سرورهای سازمانی (Enterprise Servers) و Main Frame ها را شامل می شود.
در ۱۳ نوامبر سال ۲۰۰۶(۲۲ آبان ۱۳۸۵)، شرکت سان مایکروسیستمز بخش عظیمی از جاوا را تحت پروانه عمومی همگانی گنو (GNU GPL) منتشر نمود. اگرچه بخش هایی از جاوا، هرچند اندک، هنوز به دلیل مسایل کپی رایت با مجوز سان و به صورت بایناری(کد هایی از پیش کامپایل شده)، منتشر گردید؛ چرا که این بخشها متعلق به شرکت سان نیست. برای کسب اطلاعات بیشتر در مورد مجوز های نرم افزار های سورس باز می توانید به لینک زیر مراجعه نمائید:
Comparison of free and open-source software licenses
- سیستمعامل: هر چقدر زبانهای .NET قوی باشند تنها بر روی پلت فرم ویندوز اجرا میشوند و برخی ویندوز را سیستم عامل غیرقابل اعتمادی در برنامه نویسی Enterprise میدانند. ولی جاوا از این نظر انتخاب خوبی است.
- قابلیت حمل: جاوا بر روی سکوهای رایانش گوناگونی قابل اجرا است، از ATM و ماشین رختشویی گرفته تا سرورهای سولاریس با قابلیت پشتیبانی از 1024 عدد CPU برای پردازش.
- جاوا بیشتر از یک زبان است: جاوا فقط یک زبان نیست و انجمنهایی متشکل از بزرگان صنایع و برنامهنویسان زیادی مشغول به توسعه و ایجاد استانداردهای جدید و به روز هستند.
جاوا، متبادر کننده مفهومی خاص است : یکبار بنویس، همهجا اجرا کن(Write Once, Run Anywhere). این مفهوم توسط JVM(Java Virtual Machine)، پیادهسازی شده است. JVM، محیطی برای اجرای برنامههای نوشته شده به زبان جاوا میباشد. این ماشین مجازی, نرمافزاری است که در لایه بالایی سختافزار واقعی و سیستم عامل قرار میگیرد.
به زبان ساده وقتی یک برنامه به زبان جاوا را می نویسید و کامپایل می کنید بلافاصله کد محلی(Native Code) یا همان کد ماشین تولید نمی شود, کامپایلر کد های شما را به ByteCode تبدیل می کند. در مرحله بعدی کامپایلر JIT(Just-In-Time) که در ماشین مجازی جاوا(JVM) است این بایت کد را به کد محلی یا همان کد ماشین تبدیل می کند که این کد ماشین همان دستور العمل هایی هستند که مستقیما توسط CPU و سیستم عامل قابل اجرا هستند.
در گذشته برای اینکه بتوانید برنامه های خود را در سیستم عامل های مختلف اجرا کنید, نیاز بود تا برای هر نسخه از سیستم عامل, آن کد را یک مرتبه بطور کامل کامپایل کنید. اما دیگر به این روش نیازی نیست, زیرا برای هر نوع پردازنده و سیستم عامل یک نسخه از JIT وجود دارد.
پیاده سازی اوراکل در دو توزیع بسته بندی شده است:
- Java Runtime Environment (JRE) : برای اجرای برنامه های نوشته شده با زبان جاوا مورد نیاز است و برای کاربران نهایی است(End-Users).
- Java Development Kit (JDK) : این بسته برای برنامه نویسان جاوا می باشد که شامل ابزارهای توسعه از قبیل
Compiler, Debugger, … می باشد.
جاوا شامل چندین نگارش می باشد :
- Java Card : به فناوری ایی اطلاق می گردد که به برنامه های مبتنی بر جاوا(اپلت ها) اجازه اجرایی امن بر روی کارتهای هوشمند و دستگاههای مشابه را می دهد.
- Java ME (Micro Edition) : مجموعه ای از چندین کتابخانه را مشخص می نماید که برای دستگاه هایی است که توانایی پشتیبانی کامل از کل مجموعه کتابخانههای جاوا را ندارند. چرا که در صورت استفاده از تمام کتابخانه ها، بخش عظیمی از فضای ذخیره سازی را شامل می گردد.
- Java SE (Standard Edition) : برای اهداف عمومی که قابل استفاده در رایانه رومیزی، سرور و ابزارها و دستگاههای مشابه است.
- Java EE (Enterprise Edition) : در واقع همان نگارش استاندارد جاوا به همراه تعدادی API های برنامهنویسی متنوع و کاربردی برای Client-Server Model, Multi-Tier Architecture, Application Server می باشد(جهت طراحی نرم افزار های سطح کلان).
اگر قبلا در بیان ثبت نام کرده اید لطفا ابتدا وارد شوید، در غیر این صورت می توانید ثبت نام کنید.