سبد خرید شما

icon
سبد خرید خالی است.

JAVA

زبان JAVA چیست؟

یکی از محبوب‌ترین زبان‌های برنامه‌نویسی دنیا که به دلیل چند سکویی (Cross Platform) بودن و هم‌‌‌چنین پشتیبانی از ویژگی شئ‌گرایی (OOP) مورد توجه افراد بسیار زیادی در دنیا قرار گرفته است.

زبان جاوا شبیه به سی‌پلاس‌پلاس است؛اما مدل شیءگرایی آسان‌تری دارد و از قابلیت‌های سطح پائین کمتری پشتیبانی می‌کند. ایده‌‌‌ی شیءگرایی جاوا از زبان اسمال تاک گرفته شده‌است. یکی از قابلیت‌های بنیادین جاوا این است که مدیریت حافظه را به‌طور خودکار انجام می‌دهد. ضریب اطمینان عملکرد برنامه‌های نوشته‌ شده به این زبان نسبت به زبان‌های نسل اول C بالاتر است. برنامه‌های جاوا به صورت بایت کد می‌شوند و توسط ماشین مجازی جاوا (JVM) به کدهای ماشین تبدیل و اجرا می‌شوند. در صورت وجود JVM مانند سایر زبان‌های مبتنی بر آن که وابسته به سیستم عامل خاصی نیستند برنامه‌های نوشته شده به جاوا بر روی هر نوع سیستم عامل و هرگونه وسیله الکترونیکی قابل اجرا می‌باشند. شعار جاوا یک‌بار بنویس و همه‌جا اجرا کن (Write once, Run anywhere)  است که به همین ویژگی اشاره دارد. این ویژگی جاوا را مستقل از سکو می‌نامند.

 

فلسفه تولید زبان JAVA

اوایل دهه‌ی 1990 میلادی آقای جیمز گاسلینگ و همکارانش از پیچیدگی زبان ++C احساس نارضایتی می‌کردند و به همین دلیل تصمیم گرفتند، زبانی را ابداع کنند که علاوه‌ بر قدرت زبان ++C از سادگی بیشتری برخوردار باشد، جالب است بدانید آن‌ها در ابتدا نام Oak به معنای “بلوط” را روی این زبان گذاشته بودند، دلیل این امر هم این بود که یک درخت بلوط در مجاورت اتاق کار آقای گاسلینگ قرار داشت، پس از مدتی مدیران شرکت سان‌مایکروسیستمز (شرکت گاسلینگ و همکارانش) تصمیم گرفتند نام مناسب‌تری را برای این زبان برگزینند.

برای این منظور به یک کافی‌شاپ مراجعه کردند و حدود نصف روز در حال نوشیدن قهوه به بحث و تبادل نظر در این خصوص پرداختند و در نهایت تصمیم بر این شد که از مخفف نام‌های خودشان یعنی James Gosling و Arthur Van Hoff و همچنین Andy Bechtolsheim  استفاده کنند و در نهایت نام JAVA را بر روی این زبان نهادند، هرچند در نقل قولی آمده است Arthur و Andy که در تیم اولیه بودند پس از مدتی از شرکت سان جدا شده و در ادامه جیمز گاسلینگ به همراه دو تن از کارمندان سان‌مایکروسیستمز به نام‌های Mike Sheridan  و Patrick Naughton به همراه آقای گاسلینگ توسعه‌ی زبان جاوا را تحت نام پروژه‌ی سبز (Green)  ادامه داده و سپس با تغییر نام به جاوا آن را منتشر کردند، اما چیزی که واضح است جیمز کاسلینگ کانادایی نقشی حیاتی در خلق این زبان داشته است. به همین علت لوگو این زبان برنامه نویسی به شکل یک فنجان قهوه است.

مزایای زبان برنامه نویسی JAVA

  • راحتی

یادگیری جاوا بسیار آسان است. قوانین نحوی یا اصطلاحا syntax آن راحت، واضح و قابل فهم است. طبق گفته شرکت Sun زبان جاوا یک زبان راحت است زیرا:  Syntax جاوا بر پایه C++ است، بسیاری از ویژگی‌‌‌های پیچیده را حذف کرده است، و هیچ نیازی به حذف شی‌‌‌ءهای بدون مرجع نیست زیرا Garbage Collection  در جاوا به صورت خودکار این کار را انجام می دهد.

  • شیءگرایی (Object-Oriented)

جاوا یک زبان برنامه نویسی شیءگرا است. هرچیزی در جاوا یک شیء است. شیءگرایی به این معنا است نرم افزار به صورت ترکیبی از اشیای مختلفی ساخته شود که هرکدام اطلاعات و رفتار منحصر به خود را دارا هستند.

برنامه نویسی شیءگرا (OOP) یک متد است که توسعه نرم افزار و نگهداری آن را با ایجاد یک سری قوانین ساده می‌‌‌کند.

  • قابل حمل بودن (Portable)

جاوا قابل حمل است است زیرا شما می توانید کد بایتی جاوا را به هر ماشینی منتقل کنید و آن را در هر ماشینی اجرا کنید. این جابجایی نیاز به هیچ گونه تنظیماتی ندارد.

  • مستقل از پلتفرم (Platform independent)

جاوا مستقل از پلتفرم است زیرا این زبان با زبان‌‌‌های دیگر مانند C و C++که در ماشین‌‌‌های وابسته به پلتفرم کامپایل می‌‌‌شوند، متفاوت است. یک پلتفرم سخت افزار یا نرم افزاری است که برنامه روی آن اجرا می‌‌‌شود.

به طور کلی دو نوع پلتفرم وجود دارد: بر پایه نرم افزار و بر پایه سخت افزار. پلتفرم جاوا با بیشتر پلتفرم‌‌‌های موجود متفاوت است. پلتفرم جاوا یک پلتفرم بر پایه نرم افزار است که روی پلتفرمی بر پایه سخت افزار اجرا می‌‌‌شود. این پلتفرم دو جزء دارد:

  • محیط زمان اجرا (Runtime Environment)
  • APIیا رابط برنامه نویسی کاربردی (Application Programming Interface)

جاوا بر روی چندین پلتفرم قابل اجرا است برای مثال ویندوز، لینوکس،  سولاریس، مکینتاش و ... کدهای جاوا توسط کامپایلر به کدهای بایتی تبدیل می‌‌‌شود. این کدهای بایتی کدهایی مستقل از پلتفرم هستند زیرا می‌‌‌توانند در پلتفرم‌‌‌های مختلف اجرا شوند.

  • امنیت بالا

جاوا به خاطر امنیتش بسیار شناخته شده است. به کمک جاوا می توانیم سیستم های بدون ویروس بسازیم. جاوا به دلایل زیر امنیت بالایی دارد:

  • عدم وجود اشاره‌‌‌گرهای صریح (No explicit pointers)
  • sandbox: جاوا در داخل یک خاکریز (sandbox) ماشین مجازی اجرا می شود.
  • classloader: بخشی از محیط اجرای جاوا (JRE) است که برای بارگذاری کلاس‌‌‌های جاوا به صورت پویا در ماشین مجازی جاوا مورد استفاده قرار می‌‌‌گیرد. جاوا با جداسازی پکیج‌‌‌های کلاس موجود در سیستم محلی با پکیج‌‌‌هایی که از شبکه وارد سیستم می‌‌‌شوند، امنیت را برقرار می‌‌‌سازد.
  • Bytecode Verifier این ممیز قطعات کد را به منظور یافتن کدهای غیرقانونی که می‌‌‌تواند حقوق دسترسی به اشیاء را دستکاری کند، بررسی می‌‌‌کند.
  • security manager این قسمت مشخص می‌‌‌کند که یک کلاس به چه منابعی می‌‌‌تواند دسترسی داشته باشد مانند نوشتن و خواندن از حافظه‌‌‌ی محلی.
  • قدرتمندی

موارد زیر جاوا را به یک زبان قدرتمند تبدیل کرده است:

جاوا مدیریت حافظه‌‌‌ی بسیار قوی دارد.

عدم وجود اشاره‌‌‌گرها باعث رفع مشکلات امنیتی شده است.

وجود یک garbage collection باعث می‌‌‌شود اشیائی که از آن‌‌‌ها هیچ استفاده‌‌‌ای نشده است در ماشین مجازی حذف شوند.

جاوا سیستم مدیریت خطا (exception handling) و مکانیزم بررسی نوع متغیر (type checking) وجود دارد.

  • مستقل از معماری دستگاه (Architecture-neutral)

جاوا از معماری دستگاه مستقل است زیرا هیچ ویژگی در آن وجود ندارد که به پیاده‌‌‌سازی وابسته باشد. به عنوان مثال اندازه متغیرهای اصلی آن ثابت است. در برنامه نویسی C ، متغیر نوع int در سستم های 64 بیتی 4 بایت و در سیستم های 32 بیتی 2 بایت است. در حالی که در زبان جاوا int 4 بایتی و مستقل از معماری سیستم است.

  • کارایی بالا (High-performance)

جاوا از همه‌‌‌ی زبان‌‌‌های برنامه نویسی تفسیری و سنتی سریع‌‌‌تر است زیرا کد بایتی جاوا به کد اصلی جاوا (native code)  بسیار نزدیک است. ولی نسبت به زبان‌‌‌های کامپایلی مانند C++ کمی کندتر عمل می‌‌‌کند. جاوا یک زبان تفسیری است و به همین دلیل از زبان‌‌‌های کامپایلی مانند C++ کندتر است.

  • چندنخی یا multi-thread

یک نخ (thread) مانند یک برنامه جدا است که به صورت هم‌‌‌زمان اجرا می‌‌‌شود. با جاوا می‌‌‌توان برنامه‌‌‌هایی نوشت که با توصیف چند نخ، به طور همزمان چندین task را اجرا کند. فایده اصلی چندنخی این است که برای هر نخ حافظه را اشغال نمی‌‌‌کند بلکه یک فضای مشخص از حافظه را بین نخ‌‌‌ها به اشتراک می‌‌‌گذارد. ویژگی چند نخی بودن برای برنامه نویسی چندرسانه‌‌‌ای و برنامه نویسی وب بسیار مهم است.

  • توزیع شده (Distributed)

جاوا به برنامه نویسان این امکان را می‌‌‌دهد تا بتوانند برنامه‌‌‌های توزیع شده بنویسند. RMI و EJB برای تولید نرم افزارهای توزیع شده مورد استفاده قرار می‌‌‌گیرند. این ویژگی برنامه نویسان را قادر می‌‌‌سازد به فایل‌‌‌ها یا متدها در دیگر ماشین‌‌‌ها دسترسی داشته باشند.

  • پویایی (Dynamic)

جاوا یک زبان پویا است زیرا بارگذاری کلاس‌‌‌ها به صورت پویا را پشتیبانی می‌‌‌کند. به این معنا که کلاس‌‌‌ها بر اساس درخواست بارگذاری می شوند. همچنین جاوا از توابع زبان‌‌‌های مادری خود که C و C++ هستند پشتیبانی می‌‌‌کند. جاوا همچنین کامپایل و مدیریت حافظه را به صورت خودکار دارد.

 

با JAVA چه کارهایی میتوانید انجام دهید؟

جاوا یک زبان چندسکویی است، بنابراین می‌توانید با استفاده از آن برای سیستم‌عامل‌های مختلفی مانند ویندوز، لینوکس، او‌اس‌ایکس، اندروید، وب و ... برنامه نویسی کنید، از جاوا در توسعه اپلیکیشن‌های اندرویدی، نرم‌افزارهای وب و دسکتاپ، بازی‌سازی و دیگر موارد استفاده می‌شود. در حقیقت یکبار برنامه‌ی خود را بنویسید و همه‌جا آن‌را استفاده کنید.

در ایران نیز برنامه‌های بسیار زیادی (به خصوص نرم‌افزارهای دولتی) با این زبان توسعه یافته‌اند، بنابراین شما با یادگیری جاوا تقریبا می‌توانید به بازار کار بسیار خوبی امیدوار باشید، در کشورهای توسعه‌یافته‌ای مانند استرالیا، کانادا، انگلستان و آمریکا شرایط از این نیز بهتر است و تقریبا سرمایه‌گذاری‌های فراوانی روی آن می‌شود.

اپلیکیشن‌های اندرویدی

وجود رشد گسترده کاتلین(Kotlin)؛ جاوا همچنان زبان پیش‌فرض برای اپلیکیشن‌های اندرویدی محسوب می‌شود که به طور خودکار جمع عظیمی از توسعه‌دهندگان جاوا را به برنامه‌نویسان اندروید تبدیل کرده است. با این که اندروید از Android SDK به جای JDK استفاده می‌کند؛ اما کد آن همچنان به صورت جاوا نوشته می‌شود.

محصولات نرم‌افزاری

علاوه بر Hadoop و Apache Storm، جاوا برای ایجاد Eclipse، OpenOffice، Gmail، Atlassian  و بسیاری از موارد دیگر مورد استفاده قرار گرفته است.

برنامه‌های مالی

جاوا با توجه به این که یکی از پر تقاضاترین مهارت‌های زبان در بخش مالی محسوب می‌شود، هم در سمت سرور و هم کلاینت برای ساخت وب‌سایت‌های مطمئن، سریع و ساده مورد استفاده قرار می‌گیرد. از جاوا به عنوان زبان برنامه‌نویسی مناسب برای شبیه‌سازی و مدلسازی داده‌ها نیز یاد می‌شود.

سیستم‌های نقطه فروش

بسیاری از کسب و کارها از جاوا برای ایجاد سیستم‌های PoS استفاده می‌کنند، زیرا چنین سیستم‌هایی معمولاً نیازمند عدم وابستگی به پلتفرم و منابع گسترده هستند.

اپلیکیشن‌های تجاری

Murex یک برنامه مدیریت بانکی محبوب برای اتصال فرانت و بک‌اند است که به زبان جاوا نوشته شده است.

برنامه‌های کلان داده

Hadopp به زبان جاوا نوشته شده است. Scala،Kafka  و  Sparkاز JVM استفاده می‌کنند. ضمناً جاوا امکان دسترسی به هزاران کتابخانه، دیباگر و ابزارهای نظارتی کاملاً تست شده را فراهم ساخته است.

 

فرصت‌‌‌های شغلی زبان جاوا

جاوا در سال‌های اخیر همواره در فهرست پنج زبان برنامه‌نویسی محبوب با فرصت‌های شغلی متعدد، متنوع و درآمد عالی بوده است. کسانی که جاوا را به خوبی یاد می‌گیرند، می‌توانند هر زبان دیگری شامل #C، پایتون و حتی روبی را نیز به سادگی بیاموزند.

برنامه‌نویسان جاوا به طور عمده از جاوا برای طراحی اپلیکیشن‌ها و وب‌سایت‌هایی استفاده می‌کنند که اجزای دینامیک دارند. برخی از آن‌ها روی اپلیکیشن‌ها و برخی دیگر روی وب‌سایت‌ها کار می‌کنند اما در هر صورت اغلب توسعه‌دهندگان جاوا باید با مفهوم پروژه بودن کارشان آشنا باشند.

بر اساس آخرین پیمایش وب‌سایت معتبر StackOverflow از میان 64000 برنامه‌نویس در سال 2018 میانگین حقوق کاربرانی که به زبان جاوا برنامه‌نویسی می‌کنند در سرتا سر دنیا برابر با 52000 دلار به صورت سالانه بوده است. هم‌‌‌چنین بر اساس پیمایش سال 1396 وب‌سایت jadi.net از میان 1950 برنامه‌نویس ایرانی، 1365 نفر اعلام کرده‌اند که به زبان جاوا نیز برنامه‌نویسی می‌کنند. بدین ترتیب جاوا با 70% محبوبیت، در میان توسعه‌دهندگان ایرانی نیز محبوب‌ترین زبان محسوب می‌شود.

 

آمارهای زبان JAVA

در نمودار زیر می‌‌‌توانید میزان استفاده از جاوا را در مقایسه با سایر زبان‌‌‌های برنامه نویسی مشاهده نمائید.

در جدول ذیل استفاده معروف‌‌‌ترین وب‌‌‌سایت‌‌‌های دنیا را از زبان‌‌‌های برنامه نویسی سمت سرور مشاهده می‌‌‌کنید که از میان 13 شرکت حاضر در جدول 8 وب سایت از  جاوا استفاده می‌‌‌کنند که بیشترین تعداد در این جدول را در بر می‌‌‌گیرد.

در نمودار زیر میزان محبوبیت و استفتده از ورژن‌‌‌های مختلف زبان جاوا را از وب سایت معتبر jetbrains.com  مشاهده می‌‌‌کنید.

هم‌‌‌چنین آمار فریم‌ورک‌‌‌های جاوا نیز از دیدگاه وب سایت معتبر jetbrains.comبه شرح زیر است.

ورژن‌‌‌های زبان JAVA

زبان برنامه نویسی جاوا (JAVA) در 23 مه 1995 (برابر با 2 خرداد 1374) از سوی جیمز گاسلینگ (James Gosling)  طراحی شده است. جاوا به گواهی سایت معتبر Tiobe از سال 2001 همواره به عنوان اولین یا دومین زبان برنامه‌نویسی دنیا مطرح بوده است.

در سال 1990 سان‌مایکروسیستمز در حال توسعه نرم‌افزاری برای استفاده ابزارهای الکترونیکی بود که مسئولیت تیم که آن را پروژه green نامیدند، جیمز گاسلینگ بر عهده گرفت. در سال 1991 تیم تصمیم گرفت که زبان جدید را OAK  بنامند. در سال 1992 تیم پروژه green زبان جدیدی را معرفی کرد که با ابزارهای مختلف خانگی و لمسی کار می‌کرد. در سال 1993 وب جهانی توسعه یافت و زبان جدید با معرفی اپلت که قابلیت‌های زیادی به کامپیوترهای متصل به وب می‌افزود مشهور شد. در سال 1995 زبان OAK به JAVA تغییر نام پیدا کرد و توسط مایکروسافت و نت اسکیپ پشتیبانی شد. در سال 1996 دیگر java زبانی به صورت همه گیر چند منظوره شناخته شده بود. در سال 2007 زبان‌هایی با استاندارد JVM مانند groovy ایجاد شد و در سال 2014 جاوا سعی کرد با معرفی نسخه 8 برخی از قابلیت‌های زبان‌های دیگر را به جاوا اضافه نماید.

این زبان قسمت‌های بسیاری از گرامرخود را از C و ++C  گرفته اما دارای مدل شیءگرایی ساده‌ای است و امکانات سطح پایین کمی دارد. کاربرد جاوا در کامپایل به صورت بایت کد است که صرف نظر از معماری و خصوصیات آن کامپیوتر، قابلیت اجرا روی تمامی ماشین‌های شبیه‌سازی جاوا را دارد. اجزای اصلی کامپایلرهای جاوا، ماشین‌های پیاده‌سازی و کتابخانه‌های آن توسط شرکت مذکور از سال 1995 منتشر شد. در مه 1997 این شرکت، نرم افزار رایگان این زبان را فراهم کرد. دیگران هم کاربردهای دیگری از این زبان مثل کامپایلر GNU برای جاوا یا OPENJDK را منتشر کردند.

با پیدایش java2، نسخه جدید توانست ترکیب‌های جدیدی را برای نوع‌های مختلف سکوهای مختلف ایجاد کند. به عنوان مثال  J2EE، باهدف کاربرد برای تشکیلات سازمانی، و نسخه سکوی جاوا، نسخه میکرو برای تلفن همراه منتشر شد. در سال 1996 با هدف بازاریابی، این شرکت نسخه جدید J2 را با نام‌های سکوی جاوا نسخه سازمانی، سکوی جاوا نسخه میکرو و سکوی جاوا نسخه استاندارد منتشر کرد. در سال 1997 شرکت سان‌مایکروسیستمز، ISO/IEC JTC1 standards body  و Ecma International را به فرمول جاوا تغییر داد. شرکت Sun بسیاری از کاربردهای جاوا را بدون هیچ هزینه‌ای فراهم آورد. شرکت Sun با فروش مجوز برای بعضی از کاربردهای خاصش مثل Java Enterprise System درآمدی را بدست آورد. در 13 نوامبر 1996 شرکت Sun نرم‌افزار جاوا را به صورت رایگان و با مجوز عمومی برای همه منتشر کرد.

نسخه 8 و 11 جاوا، نسخه‌های دارای پشتیبانی بلندمدت می‌باشند.

  • Java SE 8، انتشار در 18 مارس 2014
  • Java SE 11، انتشار در 25 سپتامبر 2018

نسخه‌های اصلی زبان جاوا

این زبان از پلتفرم‌های مختلفی پشتیبانی می‌کند، برای برنامه‌نویسی در هر یک از این پلتفرم‌ها از نسخه‌ی خاصی از جاوا استفاده می‌شود که در ادامه برخی از مهم‌ترین این نسخه‌ها را با هم بررسی می‌کنیم:

  • Java SE: این نسخه که مخفف Standard Edition و در حقیقت نسخه‌ی اصلی می‌باشد، شامل کتابخانه‌های اصلی زبان جاواست که با استفاده از آن می‌توان برایدسکتاپ و سرورها برنامه‌نویسی کرد، این نسخه را با نام J2SE نیز می‌شناسند.
  • Java EE: این نسخه مخفف شده‌ی عبارت Enterprise Edition به مفهوم نسخه‌ی تجاری بوده و برای ساخت برنامه‌های تحت وب و اپلیکیشن‌های تجاری و سازمانی مورد استفاده قرار می‌گیرد، نام دیگر این نسخه J2EE است.
  • Java ME: این نسخه مخفف Micro Edition بوده و در حقیقت نسخه‌ای کوچک و سبک است که برای برنامه‌نویسی ریزپردازنده‌ها و تلفن‌های قدیمی‌تر به کار گرفته می‌شود، مانند سایر نسخه‌ها، این نسخه نیز با نام مستعار J2ME شناخته می‌شود.

فریم ورک ها

بیشتر بخوانید

Zharfa Academy-Zharfa Mag-ربات کوری (Kuri Robots)مجله علمی آکادمی ژرفا-
موضوع: ربات کوری (Kuri Robots)
نویسنده: متین باغ‌عنبری
تاریخ: 1400/04/16
Zharfa Academy-Zharfa Mag-ربات موفلین (Moflin Robot)مجله علمی آکادمی ژرفا-
موضوع: ربات موفلین (Moflin Robot)
نویسنده: متین باغ‌عنبری
تاریخ: 1400/04/14
Zharfa Academy-Zharfa Mag-ربات اسپات (Spot Robot)مجله علمی آکادمی ژرفا-
موضوع: ربات اسپات (Spot Robot)
نویسنده: متین باغ‌عنبری
تاریخ: 1400/04/14
Zharfa Academy-Zharfa Mag-ربات Sphero BOLTمجله علمی آکادمی ژرفا-
موضوع: ربات Sphero BOLT
نویسنده: متین باغ‌عنبری
تاریخ: 1400/04/22
Zharfa Academy-Zharfa Mag-دوره‌های زمستانه آکادمی ژرفامجله علمی آکادمی ژرفا-
موضوع: دوره‌های زمستانه آکادمی ژرفا
نویسنده: المیرا افلاکی
تاریخ: 1400/10/23
Zharfa Academy-Zharfa Mag-مهاجرت برنامه‌نویسانمجله علمی آکادمی ژرفا-
موضوع: مهاجرت برنامه‌نویسان
نویسنده: المیرا افلاکی
تاریخ: 1400/03/12
Zharfa Academy-Zharfa Mag-IOT اینترنت اشیاء و IIOTمجله علمی آکادمی ژرفا-
موضوع: IOT اینترنت اشیاء و IIOT
نویسنده: المیرا افلاکی
تاریخ: 1400/03/15
Zharfa Academy-Zharfa Mag-بک لینک چیست؟مجله علمی آکادمی ژرفا-
موضوع: بک لینک چیست؟
نویسنده: المیرا افلاکی
تاریخ: 1400/03/18