تاریخچه ی جاوا
در ژوئن ۱۹۹۱ پروژه ی جاوا توسط جیمس گاسلینگ، مایک شریدن و پاتریک ناتون راه اندازی شد. ابتدا جاوا با نام oak برای تلویزیون های تعاملی ساخته شد اما این زبان پیچیده تر از چیزی بود که برای صنعت کابل های تلویزیونی مورد استفاده قرار بگیرد. سپس نام زبان به جاوا تغییر پیدا کرد، Sun Microsystems نسخه ی ۱.۰ جاوا رو با شعار یک بار بنویس و همه جا اجرا کن در سال ۱۹۹۶ منتشر کرد، در سال ۲۰۰۹ اوراکل مالکیت جاوا رو بدست اورد و در سال ۲۰۱۰ جیمز گاسلینگ از اوراکل استعفا داد.
هم اکنون جاوا تحت مالکیت اوراکل در دو نسخه ی متن باز openjdk و متن بسته ی jdk به عنوان یک زبان با اهداف عمومی (General Purpose) عرضه شده و کد های این زبان پس از کامپایل، قابل اجرا بر روی هر پلتفرمی است که ماشین مجازی جاوا (JVM) بر روی آن نصب شده است.
درباره ی جاوا
اگه یک زبان برنامه نویسی به ماشین نزدیک تر باشه بهش زبان سطح پایین (low-level language)، و اگه به زبان انسان نزدیک تر باشه بهش زبان سطح بالا (high-level language) میگیم.
جاوا یک زبون سطح بالا و تماما شی گراست اگرچه بعضی از ویژگی های تابعی مثل lambda و streaming برای این زبان طراحی شده، اما کاربردی ترین ویژگی زبان قابلیت شی گرایی آن است. در این زبان ماشین مجازی جاوا (Java Virtual Machine) با به اختصار JVM وظیفه ی اجرای کد های کامپایل شده رو به عهده داره.
کد های جاوا ابتدا توسط کامپایلر جاوا به bytecode تبدیل شده و سپس bytecode ها توسط JVM اجرا میشن.
کد های جاوا بعد از یک بار کامپایل، در هر پلتفرمی که JVM نصبه قابل اجرا هستند؛ اگرچه JVM زحمت ها رو کم میکنه اما ممکنه یکی از دلایلی که زبون جاوا سطح بالا ساخته شده وجود JVM به عنوان واسط بین برنامه و سختافزار باشه.
مدیریت حافظه در جاوا به طور خودکار توسط JVM انجام میشه و در هنگام کد نویسی نیاز نیست متغیر های بی استفاده رو برای افزایش حافظه به طور دستی از بین ببریم؛ در حالی که در زبان هایی مثل C مدیریت حافظه به عهده ی برنامه نویس است.
سینتکس زبان جاوا شبیه سینتکس زبان C و C++ است؛ یک برنامه یا کتابخونه ی جاوا شامل یک یا چند پکیج است که داخل هر پکیج، کلاس، اینترفیس یا پکیج های دیگه میتونه وجود داشته باشه.
کتابخونه و فریمورک های جاوا
کتابخونه های متعددی برای زبان جاوا نوشته شده اما بعضی از این کتابخونه ها معروف و پرکاربرد هستند.
کتابخونه های هسته ی جاوا
کتابخونه های هسته ی جاوا شامل IO, Networking, Reflection, Concurrency, Reflection, Generics, Collections, Security و... است.
برای کار با دیتابیس، جاوا کتابخونه JDBC رو طراحی کرده است.
کتابخونه های طراحی اپلیکیشن دسکتاپ در جاوا
این کتابخونه ها شامل AWT، Swing و Java FX هستند.
کتابخونه های طراحی وبسایت در جاوا
برای توسعه در وب با جاوا دو کتابخونه ی معروف JavaEE و Spring رو داریم.
کتابخونه های طراحی اپلیکیشن موبایل
برای اپلیکیشن موبایل کتابخونه Android و gluon (بر پایه ی Java FX) وجود دارند؛ البته اندروید بیشترین استفاده رو بین توسعه دهندگان موبایل با جاوا داره.
در مورد اپلیکیشن اندروید گوگل اومده ماشین مجازی اختصاصی خودشو به اسم (Dalvik و بعدا ART) طراحی کرده؛ کد های کامپایل شده ی جاوا توسط این ماشین ها اجرا میشن و هدف گوگل از این کار بهبود کارایی JVM هنگام اجرای برنامه ها در دستگاه های ضعیف اندرویدی بود.
همانطور که گفتیم کتابخونه های متعددی برای جاوا وجود داره اما کتابخونه و فریمورک هایی که بهش اشاره کردیم عموما معروف ترین و پرکاربرد ترینشون بودن. اینکه بخواید یادگیری کدوم کتابخونه رو شروع کنید بستگی به نوع پلتفرم، علاقه و راحتی شما داره.
خلاصه
به زبانی که نزدیک به زبان ماشین باشه low-level language و به زبانی که نزدیک به زبان انسان باشه high-level language میگیم.
-جاوا یک زبان high-level و کاملا شی گراست.
- کد های جاوا ابتدا تبدیل به بایت کد میشه و سپس بایت کد ها توسط JVM اجرا میشن.
- در زبان جاوا کافیه یک بار کد ها رو کامپایل کنیم و سپس در هر پلتفرمی که از JVM پشتیبانی میکنه میتونیم کد ها رو اجرا کنیم.
- در جاوا JVM به صورت خودکار حافظه رو مدیریت میکنه و دیگه برای مدیریت حافظه نیاز نداریم متغیر های بی استفاده رو در کد از بین ببریم.
- در جاوا کتابخونه های متعدد برای پلتفرم های مختلف نوشته شده.