خانه توسعهدهنده تکنولوژی مبانی برنامهنویسی جاوا چیست و چه کاربردی دارد؟ – هرچه باید راجع به زبان برنامهنویسی Java بدانید
جاوا چیست و چه کاربردی دارد؟ – هرچه باید راجع به زبان برنامهنویسی Java بدانید
شرکتهای سراسر جهان از زبان برنامه منحصر به فردی به نام Java برای ساخت اپلیکیشنها و وبسایتهای گوناگون استفاده میکنند و این یعنی با پشت سر گذاشتن آموزش جاوا، یکی از مهمترین پیشنیازهای ورود به دنیای توسعه اپلیکیشن یا نرمافزار را برآورده خواهید کرد. جاوا را میتوان زبانی شیگرا و مستقل از پلتفرم توصیف کرد که نباید با JavaScript – زبانی برای اسکریپتنویسی و ساخت صفحات وب – اشتباه گرفته شود. به لطف سهولت بالا در استفاده و شیگرا و قابل اطمینان بودن، Java یکی از محبوبترین زبانهای برنامهنویسی امروزی به حساب میآید و احتمالا یکی از نخستین زبانهایی باشد که توسعهدهندگان اپلیکیشن با آن روبهرو میشوند. در ادامه با کوئرا بلاگ همراه باشید تا بگوییم جاوا چیست و چه ویژگیهای برجستهای دارد.
فهرست مطالب
Toggleزبان برنامه نویسی جاوا چیست ؟
جاوا زبانی برای برنامهنویسی است که میتوان از آن برای ساخت نرمافزارهای سازگار با انواع سیستم عاملها کمک گرفت. این زبان ساختاری دو مرحلهای دارد، به این معنی که هم زبانی نیازمند کامپایل (Compile) به حساب میآید و هم نیازمند تفسیر (Interpret). اما از آنجا که کدها بعد از کامپایل به فایلی قابل اجرا تبدیل نمیشوند، جاوا تفاوتهای قابل توجهی با دیگر زبانهای کامپایلشده دارد.
در جاوا، کد ابتدا کامپایل و سپس به قالبی دیگر به نام «Java Byte Code» (یا به اختصار JBC) ترجمه میشود. بعد باید JBC را مجددا کامپایل و به زبانی دیگر تفسیر کرد تا روی محیط سیستم عامل مورد نظر به اجرا درآید. این عملکرد مزیتی بزرگ برای توسعهدهندگان به همراه میآورد و به آنها اجازه میدهد یکبار کد بنویسند و سپس آن را در هر جایی اجرا کنند.
این ویژگی خیلی زود به یکی از محبوبترین مفاهیم در برنامهنویسی تبدیل شد و فلسفه «یکبار بنویس، همهجا اجرا کن» (Write Once, Run Anywhere یا به اختصار WORA) را به وجود آورد.
- بیشتر بخوانید: پایتون چیست؟ آشنایی با زبان برنامهنویسی Python
تاریخچه جاوا چیست و چگونه است؟
متوجه شدیم جاوا زبانی مستقل از پلتفرم و شیگرا است که کاربردهای گوناگون در سراسر جهان دارد. این زبان برای نخستین بار در سال ۱۹۹۵ میلادی از راه رسید و شرکت Sun Microsystems پشت آن بود. از آن زمان به بعد، جاوا به یکی از محبوبترین زبانهای برنامهنویسی تبدیل شده و سرگذشت جالبی پشت سر گذاشته است.
تولد جاوا
پروژه جاوا توسط تیمی به رهبری جیمز گازلینگ و همکاران او، مایک شریدان و پاتریک ناتون، در سال ۱۹۹۱ کلید خورد. زبان آنها ابتدا قرار بود درون ستاپباکسها استفاده شود که دیوایسهایی محبوب برای دسترسی به خدمات تلویزیونی به حساب میآمدند. همین مساله نیز منجر به شملگیری تفاوتهای قابل توجه جاوا با سایر زبانهای آن زمان شد، مثلا جاوا بهگونهای طراحی شد که کدها را به بایتکد کامپایل کند و سپس روی ماشینی مجازی – بهخصوص ماشین مجازی جاوا (JVM) – به اجرا درآورد.
جاوا خیلی زود به خاطر سهولت کدنویسی و اجرا روی هر پلتفرمی به محبوبیت رسید. این زبان بخش قابل توجهی از سینتکس (یا قواعد نحوی) خود را از زبانهای C و ++C قرض گرفته است، چرا که هدف اصلی گازلینگ توسعه زبانی بود که ویژگیهایی مشابه به C و ++C داشت، اما با ساختاری یکپارچهتر و سادهتر از آنها از راه میرسید.
جیمز گازلینگ بعدا نام این پروژه را به «Oak» (به معنی بلوط) تغییر داد که به درخت بلوط کاشتهشده در بیرون از دفتر کار Sun Microsystems اشاره داشت. متاسفانه در نهایت مشخص شد که این زبان از زمان خود جلوتر بوده و دقیقا به همین خاطر به موفقیت تجاری نرسید. از سوی دیگر، تمرکز صنعت تکنولوژی آن زمان بر سوددهی حداکثری بود و جاوا کمکی به این هدف نمیکرد.
نامگذاری جاوا
جیمز گازلینگ بعد از بررسی پیشنهادات گوناگون برای نام زبان برنامهنویسی خود – مانند Silk ،Jolt و DNA – نام «جاوا» را در سال ۱۹۹۵ میلادی انتخاب کرد. این نام هم براساس نام دانه قهوه اسپرسویی به دست آمد که او هنگام نوشیدن قهوه در جایی نزدیکی دفتر کار خود به آن فکر میکرد.
داستان جاوا بعد از ۱۹۹۵
در سال ۱۹۹۵ میلادی، اولین نسخه از جاوا – یا Java 1.0 – توسط Sun Microsystems عرضه شد. بعد از این هم شاهد یکپارچهسازی جاوا با مرورگرهای وب بودیم. این موضوع نشان میداد که تیم جاوا متوجه شده اینترنت بهترین فضای ممکن برای تبلیغ محصول آنها به حساب میآید.
بعد از موفقیت Java 1.0، شرکت Sun Microsystems سعی داشت جاوا را به استانداردی رسمی تبدیل کند و جوازهای قانونی از را مراجع دولتی و قضایی بگیرد، اما تیم جاوا در میانه راه نظرش را تغییر داد و این فرایند را به پایان نرساند. در عوض آنها پلتفرمی رایگان ساختند که توسط عموم مردم کنترل میشد. در واقع Sun Microsystems به این نتیجه رسید که میتواند جاوا را به صورت رایگان عرضه کند و تمرکز خود را روی کسب درآمد از راههای دیگر بگذارد.
در آخر طی سال ۲۰۰۹ میلادی، Oracle Corporation اقدام به خرید Sun Microsystem کرد و بنابراین مالکیت سه محصول مهم این شرکت – یعنی جاوا، MySQL و Solaris – را به دست آورد.
مهمترین کاربردهای جاوا چیست ؟
یکی از دلایل محبوبیت جاوا، سازگاری آن با گستره وسیعی از نیازها و وظایف است. علاوه بر این، جاوا گزینهای ایدهآل برای پروژههایی است که نیاز به پرفورمنس بالا و تغییر مسیر سریع دارند. در ادامه تنها برخی از کاربردهای جاوا را با یکدیگر بررسی میکنیم.
- توسعه اپلیکیشن موبایل: از زمانی که اسمارتفونها از راه رسیدند، توسعه اپلیکیشن موبایل با رشدی چشمگیر همراه شده است و این روزها میلیونها اپلیکیشن مختلف در استورهایی مانند گوگل پلی پیدا میکنید. جاوا به صورت ذاتی گزینهای معرکه برای ساخت اپلیکیشنهای پیچیدهای به حساب میآید که رابطهای کاربری متنوع دارند. یکی دیگر از دلایل کاربرد جاوا در این حوزه، امکان اتصال دیوایسهای مختلف به یکدیگر است.
- هوش مصنوعی: Artificial Intelligence یا هوش مصنوعی نوعی نرمافزار است که برای رسیدگی خودکار به محاسبات پیچیده طراحی میشود. چنین نرمافزارهایی در زمینههای گوناگون به کار میآیند، از بانکداری و امور مالی گرفته تا دستیارهای صوتی و هر جور دستگاه هوشمندی که بتوان متصور شد.
- کلانداده: Big Data یا کلانداده به معنی پایش داده و گزارشدهی برای دستیابی به راهکارهای گوناگون است. بسیاری از شرکتهای بزرگ از علم تحلیل داده برای پایش کاربران، محصولات، فروش و مواردی این دست کمک میگیرند و جاوا هم بصریسازی داده – به شکلی که به راحتی قابل فهم و هضم باشد – را آسانتر کرده است.
- توسعه نرمافزار: با توجه به انعطافپذیری بالا و سازگاری با سیستم عاملهای گوناگون – که از فلسفه WORA نشات میگیرد – جاوا یکی از بهترین گزینهها برای توسعه نرمافزار به حساب میآید. علاوه بر این، با یکبار نوشتن کد و اجرای آن در هر جایی، توسعهدهندگان میتوانند توسعه نرمافزار را به صورت موازی برای سیستمهای مختلف پیش ببرند و در وقت و هزینهها صرفهجویی کنند. هر نرمافزاری که با جاوا نوشته شود، روی هر دستگاهی که Java Virtual Machine (یا به اختصار JVM) روی آن نصب باشد به اجرا درخواهد آمد.
- اینترنت اشیا: عبارت اینترنت اشیا (Internet of Things | IoT) برای توصیف اتصال میان مجموعهای از دستگاههای فیزیکی به کار میرود که نیاز به برقراری ارتباط و اشتراکگذاری داده با یکدیگر دارند. طی سالهای اخیر، نیاز به برقراری ارتباط میان دستگاههای مختلف افزایش یافته است، چه در امور روزمره مانند مدیریت دمای خانه از طریق اپلیکیشن موبایل و چه در امور حیاتی مانند برقراری ارتباط میان هواپیماها و کنترلرهای ترافیک هوایی. از آنجا که زبان برنامهنویسی جاوا در ابتدا برای متصل کردن دیوایسها دقیقا به همین شکل طراحی شده بود، گزینهای بینقص برای توسعه اینترنت اشیا تلقی میشود.
- توسعه وب: اگرچه طی دو دهه اخیر تغییراتی شگرف در صنعت توسعه وب پدید آمده، اما جاوا هیچوقت کارکرد و اهمیت خود را از دست نداده است. از این زبان هنوز هم به صورت گسترده برای مدیریت دیتابیس و افزودن عناصر تعاملی به صفحات وب استفاده میشود. ضمنا جاوا از فریمورکی به نام Spring نیز برخوردار است که زیرساختی بینظیر برای توسعه اپلیکیشن (بهخصوص اپلیکیشنهای سازمانی) به حساب میآید.
- توسعه بلاکچین: علوم مرتبط به بلاکچین طی سالهای اخیر به محبوبیتی شگرف رسیدهاند و دلیل اصلی آن نیز ظهور رمزارزها بوده است. اما این تکنولوژی صرفا برای مدیریت رمزارزها طراحی نشده و جالب است بدانید که نخستین کاربرد آن، پایش برچسبهای زمانی در مقالات علمی بود. بزرگترین مزیت بلاکچین این بود که از طریق رمزنگاری، از دقیق بودن برچسبهای زمانی – و هر اطلاعات دیگری در مقالات پژوهشی – اطمینان حاصل میکرد. بعد از محبوبیت ناشی از رمزارزها، بلاکچین راه خود را به حوزههای دیگر – از جمله موبایلهای هوشمند – نیز باز کرد و درست مثل دنیای توسعه اپلیکیشن موبایل، جاوا از بهترین انتخابها برای علوم مرتبط به بلاکچین به حساب میآید.
مهمترین ویژگیهای جاوا چیست ؟
سادگی، امنیت و حملپذیری را میتوان مهمترین ویژگیهای جاوا به حساب آورد. اما همهچیز به این موارد محدود نمیشود و در ادامه ۸ مورد از برجستهترین ویژگیهای جاوا را بررسی میکنیم:
- استواری: جاوا تاکید فراوان بر این دارد که تجربهای عاری از خطا برای برنامهنویسان به ارمغان بیاورد. یکی از مثالهای این موضوع، قابلیت Runtime Checking (یا RTC) است. RTC به صورت خودکار خطاهای رانتایم را شناسایی میکند و به اطلاع کاربر میرساند.
- سادگی: جاوا اساسا بهگونهای طراحی شده که به راحتی فرا گرفته شود. بنابراین با پشت سر گذاشتن آموزشها و تمرینات صحیح، به آسانی میتوانید در برنامهنویسی جاوا استاد شوید. ترکیب فرایندهای خودکار با فرایندهایی که ساختاری باثبات دارند به برنامهنویسان تازهکار کمک میکند اپلیکیشنهای خود را با سهولت نسبی پیادهسازی کنند.
- شیگرایی: در زبان جاوا، همهچیز به شکل یک آبجکت یا شی دیده میشود. هر آبجکت متعلق به یک کلاس است و از نظر ماهیت، وضعیت و رفتار، مشخصههایی منحصر به فرد دارد. چنین ساختاری باعث میشود پروژههای برنامهنویسی (و بهخصوص پروژههای بزرگ و پیچیده) با سهولت هرچه بیشتر پیش بروند.
- چند ریسمانی: چند ریسمانی (Multithreading) بودن جاوا، کمک قابل توجهی به برنامهها و اپلیکیشنهای مبتنی بر آن میکند. فرایند چند ریسمانی به شما اجازه میدهد برنامهها را به صورت مجزا اما همزمان به اجرا درآورید. علاوه بر این، ریسمانها یا «رشتهها»، بخشی از فضای حافظه را با یکدیگر به اشتراک میگذارند و از فشار وارده بر واحد پردازش مرکزی (CPU) میکاهند.
- امنیت: جاوا به صورت پیشفرض چندین لایه امنیتی دارد که به توسعهدهندگان اجازه میدهند محیط امن و عاری از ویروس برای کدنویسی داشته باشند. از مهمترین ویژگیهای امنیتی جاوا میشود به عدم نیاز به تعامل مستقیم با اشارهگرها (Pointers)، جداسازی کلاسهای بومی و ایمپورتشده به کمک Classloader و کامپایل کردن برنامههای جاوا به بایتکد (Bytecode) اشاره کرد.
- مستقل از پلتفرم: همانطور که پیشتر اشاره کردیم، کدها بعد از نوشته شدن، روی هر پلتفرمی به اجرا درمیآیند و همین باعث میشود جاوا با اکثر زبانهای برنامهنویسی متفاوت باشد. با این زبان، نیازی به نوشتن کدهای مجزا برای پلتفرمهای مک، لینوکس یا ویندوز نیست. در عوض با زبان متکی بر نرمافزار طرف خواهید بود که کدها را کامپایل و تبدیل به Bytecode میکند و سپس آنها را روی پلتفرم دلخواه شما به اجرا درمی آورد.
- معماری خنثی: به این خاطر میگوییم جاوا معماری خنثی دارد که کدها عاری از هرگونه وابستگی و متغیر هستند و دستورالعملهای موجود در کد جاوا مستقیما روی پلتفرم مقصد به اجرا درنمیآیند.
- توزیعشده: جاوا از یک سیستم زبان توزیعشده بهره میبرد که به شما اجازه میدهد به شکلی امن، کدها را میان دستگاههای گوناگون جابهجا کنید و به آنها دسترسی یابید. همین ویژگی باعث میشود جاوا با تمام محیطهای برنامهنویسی سازگار باشد.
کاربرد جاوا در برنامه های کاربردی
همانطور که تا به اینجای کار متوجه شدیم، جاوا یکی از کاربردیترین زبانهای برنامهنویسی امروزی به حساب میآید. اما کاربردهای دقیقتر جاوا چیست و کدامیک از اپلیکیشنهای محبوب امروزی با آن توسعه یافتهاند؟ در ادامه با برجستهترین موارد آشنا میشوید.
- اوبر (Uber): اوبر سرویسی برای دریافت خدمات تاکسی آنلاین است که میان مشتریان و رانندگان ارتباط برقرار میکند. این اپلیکیشن سه عنصر کلیدی دارد: لوکیشنیابی جغرافیایی، پوش نوتیفیکیشن و پشتیبانی از ارسال پیامک و پرداخت به روشهای گوناگون. مهندسان اوبر برای پیادهسازی این اپلیکیشن از پایتون، Node.js، گولنگ و جاوا کمک گرفتهاند و با ترکیب کدهای آنها، رابط کاربری نوآورانه، معماری Microservice، استریم محتوا و ذخیرهسازی داده در فضای ابری را امکانپذیر کردهاند.
- اسپاتیفای (Spotify): دومین مثال از کاربرد جاوا، پلتفرم استریم موسیقی اسپاتیفای است که دیتابیسی حاوی بیش از ۷۰ میلیون آهنگ و پادکست از سراسر جهان دارد. با توجه به اینکه اسپاتیفای باید به گستره وسیعی از نیازهای کاربران پاسخ دهد، باید دادههای کلان را جمعآوری و پردازش کند. به لطف الگوریتمهای یادگیری ماشین، هوش مصنوعی و همینطور جاوا، اسپاتیفای در حال حاضر میتواند به مسائلی مانند سلایق، جستجوها و رفتار کاربران خود توجه کند و محتوای سفارشی مقابل آنها بگذارد.
- توییتر (Twitter): توییتر (یا ایکس | X) یکی از محبوبترین شبکههای اجتماعی امروزی است که بهصورت خاص روی تبادل پیامهای متنی کوتاه (به نام توییت) تمرکز دارد. سازندگان این پلتفرم ابتدا از Ruby on Rails کمک گرفتند، اما در گذر زمان نیاز به افزایش مقیاس کار خود و بهکارگیری راهکارهای پرفورمنس بالا داشتند و بخشی از کد را به تکنولوژیهای دیگر انتقال دادند. برای مثال صفهای پیام بکاند با Scala (که روی ماشین مجازی جاوا به اجرا درمیآید) مدیریت میشوند و بازسازی سیستم جستجوی بکاند هم با جاوا امکانپذیر شده است.
- نتفلیکس (Netflix): کاربرد جاوا در اپلکیشن استریم فیلم و سریال نتفلیکس نیز خودش را نشان میدهد. اگرچه گفته میشود توسعهدهندگان پلتفرم نتفلیکس آزادی عمل کامل در انتخاب تکنولوژیهای ضروری داشتهاند، ظاهرا جاوا را به عنوان تکنولوژی اصلی خود برگزیدهاند. از دلایل انتخاب این زبان میتوان به مقیاسپذیری آسان و امکان پیادهسازی آن در هر جایی اشاره کرد. از سوی دیگر، سازندگان نتفلیکس از ابزارهای جاوا برای پایش، بهروزرسانی و افزایش مقیاس سرویسهای خود کمک میگیرند.
- مریخنورد Spirit: آخرین مثال از کاربردهای جاوا، احتمالا هیجانانگیزترین مورد نیز باشد. از جاوا در ساخت تجهیزات فضایی نیز استفاده میشود و یکی از مثالهای آن، مریخنورد Spirit است که از سوی ناسا به این سیاره فرستاده شد و به پژوهش پرداخت. با توجه به اینکه مریخ اکنون مورد پژوهش گسترده قرار گرفته تا شواهدی از وجود آب در آن یافت شود، جاوا نقشی کلیدی در فرایندهای سازمانهای فضایی ایفا میکند و در زمینههایی مانند جغرافیشناسی و کانیشناسی و همینطور تحقیق روی اتمسفر و اقلیم به پژوهشگران یاری میرساند.
بایت کد در جاوا چیست و چطور کار میکند؟
بایت کد جاوا را میتوان مجموعهای از دستورالعملها برای ماشین مجازی جاوا (Java Virtual Machine | JVM) توصیف کرد. به محض اینکه برنامههای جاوا کامپایل میشوند، بایت کد جاوا نیز تولید خواهد شد که نوعی از کد ماشین در قالب فایلی با فرمت class. است. ناگفته نماند به لطف بایت کد بوده که جاوا به زبانی مستقل از پلتفرم تبدیل شده است.
هنگامی که به زبان جاوا برنامهنویسی میکنیم، پیش از هر چیز برنامه کامپایل میشود و شاهد تولید بایت کد برای کد اصلی خود خواهیم بود. سپس هر زمان که بخواهیم میتوانیم فایلی که با فرمت class. ساخته شده را روی هر پلتفرمی به اجرا درآوریم.
بعد از کامپایل اولیه، بایت کد تولید شده را میتوان روی ماشین مجازی جاوا به اجرا درآورد و نیازی به توجه به پردازنده دستگا نیست. این یعنی با نصب صرف جاوا روی هر پلتفرمی میتواند کدهای خود را روی همان پلتفرم به اجرا درآوریم. منابع مورد نیاز برای اجرای بایت کد نیز از سوی ماشین مجازی جاوا تامین میشوند و این ابزار، پردازنده را به تخصیص منابع ضروری وادار میکند.
مزایای بایت کد جاوا چیست ؟
استقلال از پلتفرم، مهمترین دلیل توسعه جاوا از سوی جیمز گازلینگ بود و او میتوانست با پیادهسازی بایت کد به این هدف مهم دست یابد. در نتیجه این موضوع، بایت کد جاوا عنصری بسیار مهم در تمام برنامههای مبتنی بر جاوا به حساب میآید. اگرچه مجموعه دستورالعملهای JVM میتوانند روی هر سیستم متفاوت باشند، اما همگی به کمک بایت کد تفسیر میشوند. مهمترین مسالهای که باید در نظر داشت این است که بایت کدها در دستهبندی «کدهای غیر قابل اجرا» قرار میگیرند و برای اجرا، اتکای کامل بر سیستم مفسر موجود در JVM دارند.
اجزای تشکیلدهنده زبان و پلتفرم جاوا چیست ؟
برنامهنویسان جاوا، برنامهها را به زبانی انسانی و قابل فهم مینویسند که تحت عنوان سورس کد (Source Code) شناخته میشود. بنابراین پردازندههای مرکزی و چیپهای موجود در دیوایسها نمیتوانند سورس کد را درک کنند.
کامپیوترها و چیپها تنها چیزی را متوجه میشوند که به آن «زبان ماشین» یا «کد ماشین» (Machine Code) میگوییم. کدهای ماشین در سطح پردازنده به اجرا درمیآیند و برای پردازندههای گوناگون، کدهای ماشین متفاوت نوشته میشود. بنابراین یکی از دغدغههای اصلی برنامهنویسان این است که سورس کد را به کدی قابل فهم و قابل اجرا برای ماشین تبدیل کنند. هنگام برنامهنویسی به زبان جاوا، تمام این فرایندها درون اجزای مختلف پلتفرم جاوا اتفاق میافتند:
کیت توسعه جاوا
«کیت توسعه جاوا» (Java Development Kit | JDK) محیطی برای توسعه نرمافزار است که از آن برای ساخت برنامکها (Applets) و اپلیکیشنهای جاوا استفاده میشود. این کیت توسعه روی سیستمهای عامل ویندوز، macOS، سولاریس و لینوکس در دسترس است و به برنامهنویسان در کدنویسی و اجرای برنامهها کمک میکنند. ناگفته نماند که JDK نسخههای گوناگون دارد و میشود چند ورژن مختلف از آن را روی کامپیوتری واحد نصب کرد.
اصلیترین دلایل استفاده از JDK را در ادامه آوردهایم:
- JDK حاوی ابزارهای ضروری برای نوشتن و اجرا کردن برنامههای جاوا و JRE است. (اندکی جلوتر راجع به JRE یا «محیط رانتایم جاوا» نیز توضیح دادهایم).
- JDK حاوی کامپلایر، لانچر اپلیکیشن جاوا، Appletviewer و انبوهی قابلیت دیگر است.
- کامپلایر JDK کدهای نوشتهشده به زبان جاوا را به بایتکد تبدیل میکند.
- لانچر اپلیکیشن جاوا به باز کردن JRE، بارگذاری کلاسهای ضروری و اجرای آنها میپردازد.
ماشین مجازی جاوا
ماشین مجازی جاوا (Java Virtual Machine | JVM) موتوری است که محیط رانتایم برای اجرای کد یا اپلیکیشن جاوا را در اختیار شما میگذارد. این ابزار، بایتکد را به زبان ماشین تبدیل میکند و یکی از اجزای Java Run Environment به حساب میآید. کامپلایر زبانهای دیگر، ماشین کد مخصوص هر سیستم را تولید میکنند. اما کامپلایلر جاوا به تولید کد برای ماشین مجازی میپردازد و همین باعث میشود که برنامه به آسانی روی پلتفرمهای مختلف به اجرا درآید.
مهمترین دلایل استفاده از JVM را در پایین میخوانید:
- JVM راهکاری مستقل از پلتفرم برای اجرای سورس کد در اختیار شما میگذارد.
- JVM انبوهی کتابخانه، ابزار و فریمورک مختلف دارد.
- به محض اینکه برنامهای قابل اجرا مینویسید، میتوانید آن را روی هر پلتفرمی اجرا کنید و در وقتتان صرفهجویی خواهد شد.
- JVM همراه با کامپلایر Just-In-Time (به اختصار JIT) از راه میرسد که سورس کد جاوا را به زبان ماشین سطح پایین تبدیل میکند و بنابراین، با سرعت بیشتری نسبت به اپلیکیشنهای عادی اجرا خواهد شد.
محیط رانتایم جاوا
«محیط رانتایم جاوا» (Java Runtime Environment | JRE) نرمافزاری است که برای اجرای نرمافزارهای دیگر طراحی شده است. در JRE گزینههایی متعددی مانند کتابخانههای کلاس، بارگذارنده کلاس و JVM را پیدا خواهید کرد. اگر بخواهیم خیلی ساده بگوییم، برای اجرای برنامههای جاوا به JRE نیاز دارید. بنابراین افرادی که برنامهنویس نیستند نیازی به نصب JDK نخواهند داشت، اما در هر صورت نیازمند JRE خواهند بود تا برنامههای جاوا را به اجرا در آورند.
اصلیترین دلایل استفاده از JRE به شرح زیر است:
- JRE کتابخانههای کلاس، JVM و انبوهی فایل پشتیبانی دیگر را در بر میگیرد. هرچند که حاوی هیچ ابزاری برای توسعهدهندگان – مثلا سیستم دیباگر یا کامپایلر – نیست.
- JRE از پکیج کلاسهای ضروری مانند math ،swing ،util ،lang و awt و همینطور کتابخانههای رانتایم استفاده میکند.
- اگر بخواهید برنامکها و اپلیکیشنهای جاوا را اجرا کنید، JRE باید روی سیستم نصب باشد.
نصب جاوا و راهاندازی آن روی پلتفرمهای گوناگون
همانطور که در بخشهای پیشین به دفعات اشاره کردیم، بزرگترین مزیت جاوا این است که اجازه میدهد کدهای خود را بعد از کامپایل روی تقریبا هر پلتفرمی به اجرا در آورید. در ادامه مقاله جاوا چیست به بررسی نحوه نصب جاوا روی سه پلتفرم ویندوز، اوبونتو و macOS میپردازیم. برای دنبال کردن مراحل زیر نیاز به پیشنیازهای زیر دارید:
- سیستم عامل ویندوز، macOS Monterey (یا جدیدتر) و Ubuntu 20.04 (یا جدیدتر)
- دسترسی Admin یا Root-Level به سیستم
- اتصال به اینترنت
- آشنایی نسبی با ابزارهای خط فرمان (Command-Line) و ترمینال (Terminal)
نصب جاوا روی ویندوز ۱۱
برای نصب جاوا روی سیستم عامل ویندوز ۱۰ و ویندوز ۱۱، مراحل زیر را دنبال کنید.
قدم اول: دانلود جاوا برای ویندوز
پیش از هرچیز به صفحه دانلود Java مراجعه کنید و آخرین نسخه جاوا با معماری x64 را دانلود کنید.
قدم دوم: اجرای فایل نصب
بعد از اتمام دانلود، فایل نصبی را از منوی دانلودهای مرورگر یا فایل منیجر ویندوز اجرا کنید.
قدم سوم: اتمام نصب جاوا
در این مرحله باید به محل نصب جاوا توجه نشان دهید. بعد از این باید متغیر JAVA_HOME را مطابق همین مسیر نصب تنظیم کنید. این متغیر، سایر نرمافزارهای نصبشده در همان مسیر را نشان خواهد داد.
بعد روی دکمه Next کلیک کنید تا به مراحل بعدی بروید و نصب را به اتمام برسانید.
قدم چهارم: تنظیم متغیرهای محیطی (Environment Variables)
برای تنظیم متغیرهای محیطی، از ابزار جستجوی ویندوز برای یافتن و باز کردن Advanced System Settings کمک بگیرید.
قدم پنجم: پیکربندی متغیرهای محیطی
زمانی که وارد Advanced System Settings شدید، روی گزینه Environment Variables کلیک کنید.
قدم ششم: ساخت یک متغیر سیستمی جدید
در بخش System Variables به سراغ گزینه Path بروید و روی دکمه New کلیک کنید.
قدم هفتم: تنظیم محل نصب جاوا
حالا شاهد ظاهر شدن پنجره New System Variable خواهید بود. عبارت JAVA_HOME
را به عنوان نام متغیر وارد کنید. برای «مقدار متغیر» (Variable Value) نیز، مسیر نصب که در گام سوم به سراغ آن رفتیم را وارد کنید. در نهایت دکمه OK را در همین صفحه و صفحه System Variables بزنید تا نصب به پایان برسد.
قدم هشتم: باز کردن ترمینال ویندوز
برای باز کردن محیط ترمینال (Terminal) ویندوز، دکمههای Windows + X را به صورت همزمان فشار دهید تا پنجرهای کوچک باز شود. سپس گزینه Windows Terminal را انتخاب کنید. در این مرحله ممکن است نیاز به باز کردن ترمینال با دسترسی ادمین (Adminstrator) داشته باشید و این موضوع، وابسته به جوازهای دسترسی کاربر خواهد بود.
قدم نهم: آزمودن متغیر JAVA_HOME
در محیط ترمینال، فرمان زیر را به اجرا در آورید:
echo %JAVA_HOME%
این فرمان، مسیر نصب جاوا را در پاسخ نشان خواهد داد.
قدم دهم: بررسی نسخه نصبشده
برای بررسی نسخه نصبشده جاوا، یکی از فرمانهای زیر را به اجرا درآورید:
java -version
javac -version
هر دو فرمان، نسخه جاوا نصبشده روی سیستم را به شما نشان خواهند داد.
نصب جاوا روی macOS Monterey و نسخههای جدیدتر
اگر مایل به بهکارگیری جاوا روی macOS Monterey یا نسخههای جدیدتر از این سیستم عامل هستید، در ادامه میبینیم مراحل نصب جاوا چیست و چگونه است.
قدم اول: دانلود جاوا
پیش از هرچیز به صفحه دانلود جاوا بروید و فایل نصبی ARM 64 DMG (برای سیستمهای مجهز به چیپ M1) یا فایل نصبی x64 DMG (برای سیستمهای مجهز به پردازندههای اینتل) را دانلود کنید.
قدم دوم: باز کردن و اجرای فایل dmg.
فایلی که با فرمت dmg. دانلود شده را باز کنید و پکیجی که نامی با ساختار «JDK XX.X.X» دارد را اجرا کنید. در این نام، جای هر X شاهد عددی خواهید بود که نسخه نرمافزار را نشان میدهد.
قدم سوم: اتمام نصب جاوا
فرایند نصب را مطابق پیشنیازها و سختافزار خود پیش ببرید. در یکی از مراحل از شما خواسته میشود رمز عبور Root را هم وارد کنید. بعد از وارد کردن این رمز، دکمه Install Software را فشار دهید.
قدم چهارم: تایید نصب جاوا
حالا به سراغ ترمینال macOS بروید و با فرمان زیر، نصب صحیح جاوا را بررسی کنید:
java -version
بعد از این فورا شاهد اطلاعات ورژن جاوا موجود روی سیستم خود خواهید بود.
قدم پنجم: پیکربندی متغیرهای محیطی (Environment Variables)
برای تنظیم متغیرهای محیطی در macOS، ابتدا باید با توالی فرمانهای زیر، export JAVA_HOME=$(/usr/libexec/java_home)
را درون دایرکتوری ~/.zshenv
اکسپورت کنید.
% vi ~/.zshenv
بعد
% cat ~/.zshenv
و بعد:
export JAVA_HOME=$(/usr/libexec/java_home)
بعد از اجرای این فرمانها، سیستم شما را پرامپت استاندارد (Standard Prompt) میبرد.
تغییرات را با فرمان زیر تایید کنید:
source ~/.zshenv
حالا سیستم شما را به پرامپتی بازمیگرداند که در آن باید فرمان بعدی را اجرا و تایید کنید متغیر محیطی تنظیم شده است. بعد از اجرای فرمان، فرایند نصب JavaJDK روی macOS به پایان میرسد.
نصب جاوا روی اوبونتو ۲۰.۰۴ و نسخههای جدیدتر
اگر مایل به نصب جاوا روی توزیع اوبونتو لینوکس هستید، گامهای زیر را دنبال کنید.
قدم اول: بررسی وضعیت نصب جاوا
اوبونتو به صورت پیشفرض همراه با JDK از راه میرسد. با فرمان زیر میتوانید ببینید آیا جاوا را از قبل روی سیستم خود دارید یا خیر:
java -version
اگر جاوا نصب باشد، اطلاعات ورژن آن را در خروجی ترمینال مشاهده میکنید. اگر اینطور نباشد، در خروجی خواهید دید که فرمان مورد نظر پیدا نشد.
قدم دوم: بهروزرسانی پکیجها و نصب وابستگیها
این آموزش، نصب JavaJDK 22 روی Ubuntu 20.04 را پوشش میدهد، اما شاهد تفاوت چندانی در نسخههای دیگر نخواهید بود. ابتدا لازم است فهرست پکیجها را بهروزرسانی کنید و از فرمانهای زیر کمک بگیرید که نیاز به دسترسی Root دارند:
sudo apt update && sudo apt upgrade-y
فرمان بعدی هم وابستگیهای ضروری (Dependencies) را پیش از JavaJDK نصب میکند:
sudo apt install libc6-i386 libc6-x32 libxi6 libxtst6 -y
قدم سوم: دانلود و نصب Java Package
با فرمانهای زیر میتوانید تمام پکیجهای deb. را از وبسایت Oracle دانلود و نصب کنید. ابتدا به دانلود فایل مشغول میشویم:
sudo wget https://download.oracle.com/java/22/latest/jdk-22_linux-x64_bin.deb
سپس پکیج را نصب میکنیم:
sudo dpkg -i jdk-22_linux-x64_bin.deb
قدم چهارم: تنظیم محل نصب جاوا
فرمانهای زیر را به اجرا درآورید تا سیستمی که جاوا در آن نصب شده به نمایش درآید:
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk-22/bin/java 1
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk-22/bin/javac 1
قدم پنجم: راهاندازی متغیرهای محیطی (Environment Variables)
برای راهاندازی متغیرهای محیطی در اوبونتو، لازم است JAVA_HOME="/usr/lib/jvm/jdk-22/"
را به آخرین خط در فایل /etc/environment
اضافه کنید. برای این آموزش از ادیتور متنی Vim کمک گرفته شده است. حالا از فرمان زیر برای باز کردن فایل در ترمینال کمک بگیرید:
vim /etc/environment
هنگام مشاهده پرامپت، دکمه i و بعد Enter را فشار دهید تا در Vim وارد حالت Insert شوید. زمانی که JAVA_HOME="/usr/lib/jvm/jdk-22/"
را به آخرین خط از فایل «اینسرت» یا اضافه کردید، از فرمان :wq
برای ذخیرهسازی و خروج از فایل کمک بگیرید.
بعد با فرمان Source، تغییرات فایل را اعمال کنید:
source /etc/environment
برای آزمودن اینکه متغیر محیطی به درستی تنظیم شده یا خیر، از فرمان زیر استفاده کنید:
echo $JAVA_HOME
اگر همهچیز به خوبی پیش رفته باشد، سیستم لوکیشن صحیح را به شما نشان خواهد داد:
/usr/lib/jvm/jdk-22/
برای تایید نصب جاوا، بار دیگر فرمان java -version
را به اجرا درآورید. خروجی سیستم، نسخه جاوا صحیح خواهد بود.
مزایای یادگیری برنامه نویسی با جاوا چیست ؟
حالا که میدانیم زبان جاوا چیست و چه ویژگیهای مختلفی دارد، احتمالا به یادگیری آن علاقهمند شده باشید. در ادامه میگوییم که یادگیری جاوا چه مزایایی نسبت به سایر زبانهای امروزی دارد.
- جاوا یکی از سادهترین زبانهای برنامهنویسی به حساب میآید و میتوانید در زمانی به مراتب کوتاهتر از سایر زبانها، کاملا بر آن مسلط شوید.
- این روزها میتوانید بینهایت محتوای آموزشی رایگان و پولی راجع به جاوا پیدا کنید.
- با جاوا میتوان تقریبا هرچیزی ساخت، از اپلیکیشنهای سازمانی گرفته تا سرور کاربردی. دقیقا به همین خاطر، آشنایی با جاوا یکی از پرتقاضاترین مهارتها در جهان برنامهنویسی و توسعه نرمافزار تلقی میشود.
- نهتنها در گذر زمان از محبوبیت جاوا کاسته نشده، بلکه هر روز شرکتها و برندهای بیشتری به دنبال برنامهنویسان جاوا میگردند.
بهترین IDE جاوا
حالا که دیدیم مراحل نصب جاوا چیست و پیکربندی اولیه را هم انجام دادیم، برای شروع به کار نیاز به یک محیط توسعه یکپارچه (Integrated Development Environment | IDE) خواهید داشت، فرقی هم ندارد که برنامهنویسی تازهکار هستید یا باتجربه. در بخش پایانی، با سه مورد از محبوبترین محیطهای توسعه یکپارچه جاوا و کاربردهای هرکدام آشنا میشویم.
IDE جاوا چیست ؟
محیط توسعه یکپارچه یا IDE به نرمافزاری گفته میشود که توسعهدهندگان از آن برای نوشتن و ایرادیابی کدهای خود کمک میگیرند. IDE های جاوا قابلیتهایی مانند ادیت، ساخت و تست را به صورت یکجا در اختیارتان میگذارند و بنابراین بهرهوری را بالا میبرند.
IntelliJ IDEA
IntelliJ IDEA این روزها محبوبترین IDE جاوا به حساب میآید. این ابزار انبوهی قابلیت مختلف برای افزایش بهرهوری ارائه میکند و به همین خاطر، گزینهای ضروری برای اکثر برنامهنویسان جاوا است. بسیاری از این قابلیتها – مانند تکمیل کد (Code Completion) – قابلیت شخصیسازی گسترده دارند و با نیازهای بهخصوص شما تطبیق مییابند. مهمترین ویژگیهای IntelliJ IDEA را در ادامه آوردهایم:
- تکمیل کد هوشمند
- ناوبری آسان در سورس کد
- کنترل ورژن (Version Control)
- قابلیتهای شخصیسازی گسترده
- بهترین انتخاب برای تیمهای توسعه بزرگ
Eclipse
درست مثل IntelliJ IDEA، ابزار Eclipse هم یک IDE بسیار پیشرفته و بالغ برای توسعه با جاوا است. اصلیترین تفاوتهای این دو ابزار، مدتزمان مورد نیاز برای یادگیری و قیمتگذاری است. توسعهدهندگان جاوا معمولا زمانی Eclipse را به سایر گزینهها ترجیح میدهند که به دنبال چنین ویژگیهایی باشند:
- گسترشپذیری و مقیاسپذیری پروژهها
- قابلیت تکمیل کد
- بازسازی یا ریفکتورینگ کد و کارکردها
- تشخیص خطا
VSCode
VSCode یا Visual Studio Code ابزاری تازهواردتر به دنیای IDE های جاوا است. با این حال، بسیاری از توسعهدهندگان آشنا با با جاوا و دیگر زبانهای برنامهنویسی، IDE مایکروسافت را به سایر موارد ترجیح میدهند و یا تجربه کار با آن را دارند.
VSCode قابلیتهای جذاب گوناگونی در اختیار توسعهدهندگان میگذارد، از جمله:
- پشتیبانی از گستره وسیعی از زبانهای برنامهنویسی
- ناوبری آسان در سورس کد و تکمیل کد
- پشتیبانی از هوش مصنوعی GitHub CoPilot
- قابلیتهای ایرادیابی پیشرفته با Debugger for Java
از دیگر محیطهای توسعه یکپارچه در دسترس و محبوب برای جاوا میشود به موارد زیر نیز اشاره کرد:
- NetBeans
- Oracle JDeveloper
- BlueJ
جمعبندی و پاسخ به سوالات متداول
در حال حاضر که به پایان این مطلب رسیدهایم، به خوبی میدانید که زبان برنامه نویسی جاوا چیست و چه کاربردهای متعددی در دنیای توسعه نرمافزار دارد. علاوه بر این از مزایای کدنویسی به زبان جاوا هم باخبر شدید و با توجه به تقاضای فراوانی که برای آن وجود دارد، میتوانید با اعتماد به نفس کامل شروع به یادگیری کنید.
عملکرد یا پرفورمنس کلی، بزرگترین ایراد جاوا در قیاس با بسیاری از زبانهای برنامهنویسی دیگر به حساب میآید، چرا که در این زبان از بایتکد و ماشین مجازی استفاده میشود. گرچه برخی از مشکلات پرفورمنس در نسخههای جدیدتر بهبود یافتهاند، اما همچنان جاوا بهترین گزینه ممکن برای اپلیکیشنهایی نیست که نیاز به پردازش پرسرعت دارند.
بسیار مهم است که بدانیم زبانهای Java و JavaScript به جز نامگذاریشان، هیچ شباهتی به یکدیگر ندارند و برای اهداف کاملا متفاوتی ساخته شدهاند. Java یک زبان برنامهنویسی با کاربرد عمومی است که از آن برای توسعه اپلیکیشنهای مستقل استفاده میشود. از سوی دیگر، JavaScript زبانی برای اسکریپتنویسی است که به صورت خاص برای استفاده موازی با تکنولوژیهای وب، مانند HTML طراحی شده است.
منبع: CourseEra و GeeksForGeeks و Hubspot Blog