آموزش جاوا
آموزش برنامه نویسی جاوا
پارت دوم
ساده: Simple
جاوا یک زبان آسان است. طراحان جاوا سعی در این داشتند تا زبانی بوجود بیاورند که پروگرام نویسان بتوانند سریع آن را یاد بگیرند. پس تعداد ساختارهای این زبان نسبتا کم است. هدف دیگر طراحی این زبان این بود که به منظور راحتی انتقال آن، آن را طوری طراحی کنند که جهت عدهی بسیار زیاد ی از برنامـه نویسان آشنا باشد. چنانچه شما یک پروگرام نویس C یا C++ هستید، خواهید فهمید که جاوا از بسیار زیاد ی از ساختار های C C++ مصرف میکند .
برای اینکه این زبان را هم به طور ساده هم آشنا ملموس و هم کوچک نگه دارند بسیاری از ویژگیها C C++ را در آن حذف کردند. اینها ویژگیها ی بودند که باعث میشدند پروگرام نویسی ضعیفی صورت بگیرد یا آنهایی بودند که به ندرت در پروگرام استفاده میشدند. برای مثال جاوا از دستور goto استفاده نمیکند، در عوض از دستورهای break , continue در مواقع نیاز استفاده میکند.
جاوا از سر فایلها(header files) مصرف نمیکند و پردازشگر C را نیز حذف کرده است. به این که جاوا یک زبان شی گرا است، ساختارهای C مثل struct , union از آن برداشته شده است. جاوا حتی بارگذاری مجدد خواص چندگانه ارث بری از C++ را حذف کرده است. احتمال دارد مهمترین پارامتر آسان بودن جاوا عدم استفاده این زبان از اشاره گرها باشد. اشاره گرها یکی از بیشترین موجودیتهای دردسرساز در C , C++ هستند . چون جاوا ساختمان ندارد و آرایهها رشتهها اشیاء آن می باشند ، پس احتیاجی به اشاره گر نیست. جاوا به طور خودکار آدرسدهی دسترسی به محتوای موجود در یک آدرس را جهت شما انجام میدهد.
قدرتمند: Robust
جاوا برای نوشتن برنامـه های قدرتمند زیاد ایمن تولید و ساخته شده است. جاوا هنوز هم به طور قطع برنامـه ها را تضمین نمیکند. نسبتا هنوز هم امکان نوشتن برنامـه های مشکل ساز در جاوا وجود دارد، هرچند که جاوا برخی از انواع معین خطاهای پروگرام نویسی را حذف کرده که به نحوه چشم گیری نوشتن پروگرام های ایمن را آسان تر کرده است .
جاوا یک زبان تایپ شده قدرتمند است، که اجازه چک شدن مشکلات و خطاهای تایپی را در زمان کامپایل میدهد. جاوا بسیار زیاد قویتر از C++ تایپ شده است که زیاد ی از ویژگیها انعطاف پذیر در زمان کامپایل را از C به ارث برده است. به ویژه اعلان توابع، جاوا به مـدل اعلان صریح احتیاج دارد. این مسئله ما را از اینکه کامپایلر میتواند خطاهای وقت اعلان را بدست آورد، مطمئن میکند. مسئلهای که منجر به ایجاد برنامـه های ایمنتری میشود.
یکی از چیزهایی که باعث شده که جاوا آسان باشد عدم وجود اشارهگر ها ومحاسبات بر روی آنها است. این ویژگی حتی قدرت جاوا را با از بین بردن یک کلاس همه ی اشاره گر بیشتر شدن میدهد.
ایمن: Secure
یکی از دلایل پرطرفدار بودن جاوا این است که یک زبان ایمن است. این ویژگی به ویژه به خاطر طبیعت توزیع شدهی آن زیاد خیلی مهم است. بدون وجود امنیت شما حتمـا نمیخواهید که یک کد را از یک وب سایت تصادفی اینترنت بارگذاری کنـید و به آن اجازه اجرا شدن روی کامپیوتر خودتان را هم بدهید. این دقیقا همان چیزی است که مردم هـر روز با یک کد جاوا انجام میدهند. جاوا به صورت ایمن طراحی شده چندین لایه کنترل امنیت به وجود میآورد که شما را در مساوی کد های خطرساز حفاظت میکنند به کاربر اجازه میدهد که برنامـه های ناشناخته را با خیال آسان اجرا کند .
کدهای بایتی خراب یا خطرساز ممکن است از ضعفهای اجرایی در مفسر جاوا سوء مصرف کنند. لایهای که در اینجا ما را به طور ایمن حفاظت میکند، مـدل جعبه شنی (Sand box) است: کدهای ناشناخته در یک جعبه شنی قرار میگیرند جایی که میتوانند به صورت ایمن اجرا شوند، بدون اینکه هیچ آسیب ای به بقیه اجزاء یا محیط جاوا بزنند .
وقتی یک پروگرام کاربردی یا دیگر کدهای ناشناخته در جعبه شنی در حال اجرا است، چند محدودیت در مورد کاری که میتواند انجام دهد، وجود دارد. واضحترین این محدودیتها این است که هیچ دسترسی به هیچ یک از فایلهای مکانی سیستم وجود ندارد. در جعبه شنی محدودیت دیگری وجود دارد که به وسیله کلاس مدیریت امنیت اعمال میشود. این مـدل در ابتدا از اینکه سیـستم های امنیتی را نصب کردهاید یا نه، مطمئن میشود، برای چه که تمام کلاسهای جاوا نیاز به عملیات حساسی مانند دسترسی به سیـستم فایـل را دارند . اگر فراخوانی به وسیله یک کد ناشناخته به صورت مستقیم یا غیر مستقیم انجام شد، مدیر امنیت مورد استثناء را میفرستد عملیات صورت نمیگیرد .
و سرانجام در جاوا 1-1 یک راه حل ممکن دیگر جهت مشکلات امنیتی وجود دارد، به وسیله ضمیمه کردن یک امضاء دیجیتالی به کد جاوا که اصل آن کد میتواند به صورت پنهانی پنهان تولید و ساخته شود. چنانچه شما اعتماد را به یک شخص یا یک سازمان معین کرده باشید، کدی که امضاء آن هویت مورد اعتماد روی آن قرار دارد، ایمن مطمئن است. حتی زمانیکه در حال بارگذاری شدن در شبکه است و ممکن است حتی بدون پیشگیری بوسیله جعبه شنی اجرا شود.
عملکرد سطح بالا: High Performance
جاوا یک زبان تفسیر شده است پس هرگز سریع زبان کامپایل شدهای مثل C نخواهد بود . کد C کامپایل شده 10 مساوی سریع تر از کد های تفسیر شدهی جاوا اجرا میشود. اما قبل از اینکه به خاطر این مورد مایوس شوید، بدانید که این سرعت بیشتر از آن چیزی است که جهت برنامـه های پرسرعت، کاربردهایGUI (Graphical User Interface ) ، برنامـه های برمبنای شبکه، جایی که برنامـه کاربردی اکثرا آماده جهت اجرا شدن است، انتظار برای کاربر که یک دستوری اعمال کند یا انتظار برای دریافت از شبکه، ضروری است .
به علاوه پارت هایی که سریع های بالا نیاز دارند، که کارهایی از قبیل الحاق رشتهها مقایسه را انجام میدهند، با کد مکانی جاوا اجرا میشوند .
علاوه بـر این کارایی، بسیاری از مفسرهای جاوا اکنون حاوی کامپایلرهای تنها در " just in time " هستند که میتواند کدهای بایتی جاوا را برای هر نوعCPU در اجرا به کد اتومبیل ترجمه کند.
اگر شما خواهان این هستید که قابل حمل بودن کد ها را قربانی بازبینی در سرعت آن نمایید ، میتوانید بخش قابل توجه ی از برنامـه را در C و C++ بنویسید و ازروش های ویژه جاوا جهت مشترک کردن با این کد مکانی جاوا استفاده کنـید .
چند نخ کشی شده: Multitbreaded
در یک برنامـه کاربردی بر مبنای GUI شبکهای، مثل مرورگر وب، تصور اینکه چند چیز بتوانند به طور همزمان اجرا شوند، آسان است. یک کاربر میتواند همزمان با اینکه دارد یک صفحه وب را میخواند به یک کلیپ صوتی گوش دهد همزمان در پس زمینه مرورگر یک عکس را بارگذاری کند.
جاوا یک زبان چندنخ کشی شده است، که از چندین رشته اجرایی (گاهی پردازش سبک وزن خوانده می شود ) پشتیبانی میکند میتواند چندین کار را انجام دهد. یکی از مزیتهای چندنخ کشی شده این است که عملکرد سطح بالایی جهت کاربردهای گرافیکی جهت کاربر فراهم میکند.
چنانچه شما سعی کرده اید که با نخ ها در C C++ کار کنـید ، میدنید که کمی مشکل است. جاوا برنامـه نویسی با نخا را بسیار زیاد آسانر کرده است، با به وجود آوردن زبان داخـل ساخـته شدهی که از نخها پشتیبانی میکند. بسته jana.lang یک کلاس بوجود آورده است که ازروش هایی برای شروع انتها یک نخ، مرتب کردن ترتیب گره ها در بین چیزهای دیگر، پشتیبانی میکند .
به دلیل اینکه جاوا مصرف از نخها را بسیار زیاد آسان میکند، کلاس جاوا در شماری از جاها از این نخها استفاده میکند. برای مثال هر برنامـه کاربردی که کارتون جالب اجرا میکند، از نخ ها مصرف کرده است.