آموزش جامع برنامه نویسی جاوا به زبان ساده — بخش اول: مقدمه
این سلسله آموزشها با نام مقدمهای بر برنامهنویسی جاوا برای توسعهدهندگان نرمافزاری تهیه شده است که آشنایی چندانی با فناوری جاوا ندارند. با مطالعه کامل همه بخشهای این سلسله آموزشها با برنامهنویسی شیءگرا (OOP) و توسعه برنامههای واقعی با استفاده از زبان و پلتفرم جاوا آشنا میشوید.
مقدمهای بر زبان جاوا
برنامهنویسی شیءگرا بر روی پلتفرم جاوا
در ابتدا مقدمه مختصری در مورد برنامهنویسی شیءگرا با استفاده از زبان جاوا ارائه شده است. این آموزش با بررسی پلتفرم و زبان جاوا آغاز میشود، سپس دستورالعملهایی برای راهاندازی یک محیط توسعه با استفاده از کیت توسعه جاوا (JDK) و محیط برنامه نویسی Eclipse ارائه شدهاند. پس از اینکه با اجزای محیط توسعه آشنا شدید شروع به یادگیری دستور زبان اولیه جاوا خواهید کرد.
در ادامه ویژگیهای پیشرفتهی زبان شامل عبارتهای Regular، انواع ژنریک، ورودی/خروجی(I/O) و سریالسازی ارائه میشوند. نمونههای از برنامهنویسی برای شیء Person که در بخش اول توسعه دادیم ارائه شده است. در انتهای این آموزش با دستور زبان مقدماتی زبان جاوا آشنا میشوید و میتوانید برنامههای سادهای برای جاوا بنویسید.
این آموزش مناسب توسعهدهندگانی است که در مورد کد یا پلتفرم جاوا آشنایی چندانی ندارند. این آموزشها با مروری بر مفاهیم برنامهنویسی شیءگرا آغاز میشود. برای تکمیل تمرینهای این آموزش باید محیط توسعه جاوا را که شامل موارد زیر است نصب و راهاندازی کنید:
JDK 8 from Oracle
Eclipse IDE for Java Developers
راهنمای دانلود و نصب هر دو موارد بالا در این آموزش ارائه شده است. تنظیمات توصیهشده سیستم برای آموزش بهصورت زیر است:
سیستمی که از جاوا SE 8 پشتیبانی کند و دستکم 2 گیگابایت حافظه داشته باشد. جاوا 8 بر روی سیستمهای عامل ویندوز، مک او اس ایکس، لینوکس و سولاریس پشتیبانی می شود. باید دستکم 200 مگابایت فضای خالی بر روی دیسک وجود داشته باشد تا اجزای نرمافزار و نمونهها نصب شوند.
مروری بر پلتفرم جاوا
فناوری جاوا برای توسعه برنامههایی در محیطهای بسیار گوناگون از دستگاههای مصرفی تا سیستمهای ناهمگون در سازمانها طراحی شده است. در این بخش مرور خلاصهای بر پلتفرم جاوا و اجزای آن خواهیم داشت.
آشنایی با APIهای جاوا
توسعهدهندگان جاوا بهطور مداوم به مستندات رسمی آنلاین API جاوا (Official online Java API documentation) که به نام Javadoc نیز شناخته میشود، مراجعه میکنند.
بهطور پیشفرض در Javadoc سه بخش وجود دارد. بالاترین بخش، همه بستههای موجود در API را نشان میدهد و بخش پایانی کلاسهای هر بسته را نمایش میدهد. بخش اصلی (سمت راست) جزئیاتی از بسته یا کلاس انتخاب شده کنونی را نشان میدهد. برای نمونه اگر بر روی بسته java.Util در بخش بالا کلیک کنید و سپس کلاس ArrayList را انتخاب کنید جزئیاتی در مورد این کلاس در بخش راست مشاهده میکنید که شامل توضیحاتی در مورد کارهایی که انجام میدهد، نحوه انجام آن کار و متدهای آن است.
زبان جاوا
زبان جاوا همانند هر زبان برنامهنویسی دیگر ساختار خاص، قواعد دستورزبان (Syntax)، و پارادایم برنامهنویسی مخصوص به خود را دارد. پارادایم برنامهنویسی زبان جاوا بر اساس مفهوم برنامهنویسی شیءگرا طراحی شده است که ویژگیهای این زبان نیز از آن پشتیبانی میکنند.
زبان جاوا یکی از مشتقات زبان C است، بنابراین قواعد دستورزبان آن بسیار شبیه به قواعد زبان C است. برای نمونه بلوکهای کد در متدها ماژول بندی شدهاند و توسط پرانتز و آکولاد از هم جدا میشوند ({ و }) و متغیرها پیش از آنکه استفاده شوند باید تعریف شوند.
از لحاظ ساختاری زبان جاوا با پکیجها (packages) آغاز میشود. پکیج مکانیسم فضای نام (namespace) زبان جاوا است. درون پکیجها کلاسها قرار دارند و درون کلاسها متدها، متغیرها، ثابتها و موارد دیگر هستند.
در این آموزش در مورد این بخشهای زبان جاوا به شما آموزش میدهیم.
کامپایلر جاوا
زمانی که برای پلتفرم جاوا برنامهنویسی میکنید، سورسکد خود را در فایلهای Java. مینویسید و سپس آنها را کامپایل میکنید. کامپایلر، کد را در برابر قواعد دستورزبان بررسی میکند و سپس بایتکد را در فایلهای Class. مینویسد. بایت کد مجموعهای از دستورالعملها به منظور اجرا بر روی ماشین مجازی جاوا است. با افزودن این سطح از انتزاع، کامپایلر جاوا از کامپایلرهای زبانهای دیگر متفاوت می شود، چون کامپایلرهای دیگر دستورالعملهای مناسب با طراحی پردازنده مینویسند و برنامه را بر روی آن اجرا میکنند.
JVM
در زمان اجرا، JVM یا Java Virtual Machine، فایلهای Class. را میخواند و تفسیر میکند. سپس دستورالعملهای برنامه را بر روی پلتفرم سختافزاری بومی که JVM برای آن نوشته شده است، اجرا میکند. تفاوت کار در این است که JVM یک بخش نرمافزاری است که بهطور خاص برای یک پلتفرم معین نوشته شده است. JVM قلب مفهوم «یکبار بنویس، همهجا اجرا کن» در زبان جاوا است. کد میتواند بر روی هر تراشهای که JVM مناسب بر روی آن پیادهسازی شده است، اجرا شود. JVMها برای اغلب پلتفرمهای عمده مانند لینوکس و ویندوز موجود هستند. همچنین زیرمجموعههایی از زبان جاوا در JVM های مخصوص گوشیهای تلفن همراه و تراشههای خاص پیادهسازی شدهاند.
زباله روب (Garbage Collector)
پلتفرم جاوا بهجای اینکه شما را درگیر تخصیص حافظه (یا استفاده از کتابخانههای شخص ثالث) بکند این کار را خود از طریق مدیریت حافظه بر عهده گرفته است. زمانی که برنامه جاوا یک نمونه از شیء را در زمان اجرا ایجاد میکند، JVM بهطور خودکار فضای حافظه را برای آن شیء از Heap (مقداری حافظه که به منظور استفاده برنامه کنار گذاشته شده است) میگیرد. زباله روب جاوا در پسزمینه کار میکند و بررسی میکند که برنامههای دیگر به کدام اشیا نیاز ندارند و حافظه را از آنها باز پس میگیرد. این رویکرد مدیریت حافظه در جاوا مدیریت ضمنی حافظه نامیده میشود. لازم نیست که هیچ کدی برای مدیریت حافظه از سوی شما نوشته شود. فرآیند زباله روبی یکی از اصلیترین ویژگیهای عملکرد پلتفرم جاوا است.
کیت توسعه جاوا
زمانی که کیت توسعهی جاوا JDK را دانلود میکنید، علاوه بر کامپایلر و ابزارهای دیگر، یک کتابخانه کامل از کلاسهای موارد پیشساخته دریافت میکنید که به اجرای بسیاری از وظایف رایج توسعه برنامه کمک میکند. برای اینکه با کلیات و حوزه عمل بستهها و کتابخانههای JDK بیشتر آشنا شوید میتوانید به مستندات API برای JDK مراجعه کنید.
محیط اجرایی جاوا
محیط اجرایی جاوا JRE (که Java Runtime نیز نامیده میشود) شامل JVM، کتابخانههای کد و اجزایی است که برای اجرای برنامههایی که در زبان جاوا نوشته شدهاند ضروری است. JRE برای چندین پلتفرم موجود است. شما میتوانید بر اساس لایسنس JRE آن را بهطور رایگان همراه با برنامههای خود منتشر کنید تا کاربر برنامه، پلتفرمی داشته باشد که نرمافزار شما را بر روی آن اجرا کند. JRE در JDK موجود است.
در این بخش با مقدمه و اصوا اولیه جاوا آشنا شدیم. در بخش دوم این سلسله آموزش ها در مورد راهاندازی محیط توسعه جاوا صحبت خواهیم کرد.