آموزش برنامه نویسی اندروید(قسمت چهارم)

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

مروری بر خصوصیات جاوا

نظیر سایر زبانهای برنامه نویسی کامپیوتر، عناصرو اجزائ جاوا مجرد یا منفـک از هـم نیسـتند . ایـن اجـزاء در ارتبـاط تنگاتنگ با یکدیگر سبب بکار افتادن آن زبان می شوند . این پیوستگی اجزائ در عین حـال توصـیف یکـی از وجـوه خــاص ایــن زبــان را مشــکل مــی ســازد . غالبــا” بحــث دربــاره یکــی از جوانــب ایــن زبــان مســتلزم داشــتن اطلاعات پیش زمینه در جوانب دیگر است . جاوا یک زبان کاملاً نوع بندی شده است در حقیقت بخشی از امنیت و قدرتمندی جاوا ناشی از همین موضوع است . اکنون ببینیم کـه معنـای دقیـق ایـن موضـوع چیست . اول اینکه هر متغیری یک نوع دارد ، هر عبارتی یـک نـوع دارد و بـالاخره اینکـه هـر نـوع کـاملاً و دقیقـا” تعریف شده است . دوم اینکه ، کلیه انتسابها (assignments) خواه بطور مستقیم و صـریح یـا بوسـیله پارامترهـایی که در فراخوانی روشها عبور می کنند ، از نظر سازگاری انواع کنترل می شوند . بدین ترتیب اجبار خودکـار یـا تلاقـی انواع در هم پیچیده نظیر سایر زبانهای برنامه نویسی پیش نخواهد آمد. کامپایلر جاوا کلیه عبارات و پارامترهـا را کنتـرل می کند تا مطمئن شود که انواع ، قابلیت سازگاری بهم را داشته باشند . هر گونه عدم تناسب انـواع ، خطاهـایی هسـتند که باید قبل از اینکه کامپایلر عمل کامپایل نمودن کلاس را پایان دهد ، تصحیح شوند .

نکته : اگر دارای تجربیاتی در زبانهایc  و++c  و هستید ، بیاد بسپارید که جاوا نسبت به هرزبـان دیگـری نـوع‌بنـدی شده تراست . بعنوان مثال درC  و++c  و می توانید یک مقدار اعشاری را به یک عدد صحیح نسبت دهید . همچنـین در زبان C کنترل شدید انواع بین یک پارامترو یک آرگومان انجام نمی گیرد . امـا در جـاوا ایـن کنتـرل انجـام مـی گیرد . ممکن است کنترل شدید انواع در جاوا در وهله اول کمی کسل کننده به‌نظر آید . اما بیاد داشته باشید که اجـرای این امر در بلند مدت سبب کاهش احتمال بروز خطا در کدهای شما میگردد.

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

اینترنت جاوا را پیشاپیش زبانهای برنامه نویسی قرار داد و در عوض جـاوا تـاثیرات پـیش برنـده ای روی اینترنـت داشـته است . دلیل این امر بسیار ساده است : جاوا سبب گسترش فضای حرکت اشیاء بطور آزادانـه در فضـای الکترونیکـی می شود . در یک شبکه ، دو نوع طبقه بندی وسیع از اشیاء در حال انتقال بـین سـرویس دهنـده و رایانـه شخصـی شـما وجـــــــود دارد :

اطلاعـــــــات غیـــــــر فعـــــــال (passive) و برنامـــــــه هـــــــای فعـــــــال (active) وپویا(dynamic)

بعنوان نمونه هنگامیکه پست الکترونیکی (e-mail) خـود را مـرور مـی کنیـد ، در حال بررسی داده های غیر فعال هستید . حتی هنگامیکه یک برنامه را گرفته و بـار گـذاری مـی کنیـد ، مادامیکـه از آن برنامه استفاده نکنید کدهای برنامه بعنوان داده های غیر فعال هسـتند . امـا نـوع دوم اشـیائی کـه امکـان انتقـال بـه رایانـه شخصی شما را دارند ، برنامه های پویا و خود اجرا هستند . چنین برنامه ای اگر چه توسط سرویس دهنده ارائه و انتقـال می یابد ، اما یک عامل فعال روی رایانه سرویس گیرنده است . بعنوان نمونه سرویس دهنـده قـادر اسـت برنامـه ای را بوجود آورد که اطلاعات و داده های ارسالی توسط سرویس دهنده را نمایش دهد . به‌همان اندازه که برنامه های پویا و شبکه ای شده موردتوجه قرار گرفته اند به‌همان نسبت نیزدچار مشکلاتی در زمینه امنیت و قابلیت حمـل هسـتند . قبـل از جاوا ، فضای الکترونیکی شامل فقط نیمی از ورودیهـایی بـود کـه اکنـون وجـود دارنـد . همانطوریکـه خواهیـد دیـد ، جاوا درها را برای یک شکل جدید از برنامه ها باز نموده است:

ریز برنامه ها (applets)

ریزبرنامه ها و برنامه های کاربردی جاوا از جاوا برای تولید دو نوع برنامه می توان استفاده نمود: برنامه های کـاربردی (applications) و ریزبرنامه ها . (applets) یک برنامه کاربردی برنامه ای است که روی رایانه شـما و تحـت نظارت یک سیستم عامل اجرا می شود . بدین ترتیب یک برنامه کاربردی ایجاد شـده توسـط جـاوا مشـابه برنامـه هـای ایجاد شده توسط C و ++c  خواهـد بـود. هنگامیکـه از جـاوا بـرای تولیـد برنامـه هـای کـاربردی اسـتفاده می‌کنـیم ، تفاوتهای زیادی بین این زبان و سایر زبانهای برنامه نویسی مشاهده نمی کنیم . اما ویژگی جاوا برای تولید ریزبرنامه ها دارای اهمیت زیادی است . یک ریزبرنامه (applet) یک برنامـه کـاربردی اسـت کـه بـرای انتقـال و حرکـت روی اینترنت و اجرا توسط یک مرورگر قابل انطباق با جاوا طراحی شـده اسـت . یـک ریـز برنامـه در حقیقـت یـک برنامـه ظریف جاوا است که بطور پویا در سراسراینترنت قابل بارگذاری باشد ، درست مثل یک تصویر، یک فایـل صـوتی یـا یک قطعه ویدئویی. تفاوت اصلی در اینست که ریزبرنامه یک برنامه کاربردی هوشمند است و شباهتی با یـک تصـویر متحرک یا فایل رسانه ای ندارد . بعبارت دیگراین برنامه قادر به عکس العمل در برابر ورودی کاربر و ایجـاد تغییـرات پویا است .

ریز برنامه های جاوا بسیار جالب و هیجان انگیزند و قادرند دو مشکل اصلی یعنـی امنیـت و قابلیـت حمـل را پشـت سـر بگذارند . قبل از ادامه بحث بهتراست مفهوم اصلی این دو مشکل را بیشتر مورد بررسی قرار دهیم .

امنیت

همانطوریکه خودتان هشیار هستید ، هرگاه که یک برنامه عادی (normal) را بارگـذاری مـی‌کنیـد بـا خطـر یـک حمله ویروسی مواجه خواهید شد . قبل از جاوا اکثر کاربران ، برنامه های قابل اجرا را به‌تنـاوب گرفتـه و بارگـذاری مـی کردند و قبل از اجرا برای ویروس زدایی اقدام به اسکن (Scanning) برنامه ها می‌کردند . با ایـن حـال بسـیاری از این کاربران نسبت به حمله ویروسها به سیستم خود نگران بودند . علاوه بر ویروسها ، نوع دیگری از برنامه های مزاحم وجود دارند که باید در برابر آنها نیز ایمن ماند . این نوع برنامه هـا قادرنـد اطلاعـات خصوصـی نظیـر شـماره کارتهـای اعتباری ،ترازهای حساب بانکی و کلمات عبور برای جستجو درسیستم فایلهای محلـی رایانـه شـما را کشـف نمـوده و استفاده نمایند . جاوا توسط ایجاد یک دیواره آتـش (firewall)  بـین رایانـه شـما و برنامـه شـبکه ای شـده ، بـرایـن مشکلات فائق آمده است . هنگامیکه از یک مرورگر قابـل انطبـاق بـا جـاوا در وب اسـتفاده میکنیـد، میتوانیـد بـا اطمینـان ریزبرنامـه هـای جـاوا را بارگذاری نمایید، بدون اینکه از حمله ویروسها و برنامه های مزاحم واهمه ای داشته باشید . جاوا یک برنامه خاص جاوا را به محیط خاص اجرایی مربوطه اش منحصر کرده و اجازه دسترسی این برنامه به سایر بخشهای رایانـه را نمـی دهـد و بدین ترتیب مشکل امنیت را حل کرده است . توانایی بارگذاری ریزبرنامه ها بصورت مطمـئن یکـی از مهمتـرین جنبـه های جاوا است .

قابلیت حمل

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

 

خصوصیات جاوا

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

  •          ساده simple
  •          ایمن secure
  •          قابل حمل portable
  •          شی ئ گرا object-oriented
  •          قدرتمند Robust
  •          چند نخ کشی شده Multithreaded
  •          معماری خنثی Architecture-neutral
  •          تفسیر شده Interpreted
  •          عملکرد سطح بالا High-performance
  •          توزیع شده Distributed
  •         پویا Dynamic

قبلاً دو تا از این خصلتها را بررسی کرده ایم : ایمن و قابل حمل . اکنون سایر خصلتهای جاوا را یک بـه یـک بررسـی خواهیم نمود .

ساده

جاوا طوری شده که برنامه نویسان حرفه ای بسادگی آن را فراگرفته و بطور موثری بکار می برند . فرض کنـیم کـه شـما تجربیاتی در برنامه نویسی دارید ، آنگاه برای کار با جاوا مشکل زیادی نخواهید داشـت . اگـر قـبلا” بـا مفـاهیم شـی ئ گرایی آشنا شده باشید ، آنگاه آموختن جاوا باز هم آسان تر خواهد شد . از همـه بهتـراینکـه اگـر یـک برنامـه نـویس مجرب ++c باشید ، حرکت بطـرف جـاوا بسـیار راحـت انجـام مـی گیـرد . چـون جـاوا دسـتور زبـان C و ++c  و همچنین بسیاری از جوانب شی ئ گرایی ++c را به‌ ارث برده ، اکثر برنامه نویسان برای کـار بـا جـاوا دچـار مشـکل نخواهند شد . علاوه بر اینکـه بسـیاری از مفـاهیم پیچیـده ++c یـا در جـاوا داخـل نشـده و یـا بـا روشـی آسـان تـر و ساده تر مورد استفاده قرار گرفته اند . فراسوی شباهتهای جاوا با C  و ++c خاصیت دیگـری در جـاوا وجـود دارد که فراگیری آن را بسیار ساده تر می کند : جاوا تلاش کرده که جنبه های اسـتثنایی و خـارق العـاده نداشـته باشـد . در جاوا ، تعداد اندکی از شیوه های کاملاً توصیف شده برای انجام یک وظیفه وجود دارد .

شی گرا

اگر چه این زبان از اجداد خود تاثیر گرفته ، اما طوری طراحی نشده تا کد منبع آن قابل انطبـاق بـا سـایر زبانهـای برنامـه نویسی باشد . این خاصیت به تیم جاوا اجازه داده تا آزادانه روی یک تخته سنگ حکاکی نمایند . یکـی از نتـایج ایـن آزادی در طراحـــی ، یـــک روش تمیـــز، قابـــل اســـتفاده و واقعیـــت گـــرا بـــرای اشـــیاء (objects) اســـت . جـــاوا از بســـیاری از محـــیط هـــای نـــرم افـــزاری اولیـــه براســـاس اشـــیاء مـــواردی را بـــه عاریت گرفته و توازنی بین نظریه لفظ قلمی (purist) تحت عنوان ” هر چیزی یک شیء اسـت ” و نظریـه واقعیـت گرایی ” جلوی راه من قرار نگیر ” بوجود آورده است . مدل شی ئ در جاوا بسیار ساده و براحتی قابل گسـترش اسـت در حالیکه انواع ساده آن نظیر اعداد صحیح (integers) بعنـوان عملکردهـای سـطح بـالای غیـر شـی ئ تلقـی مـی شوند .

قدرتمند

محیط چندگانه روی وب ایجاب کننده تقاضاهای غیر عادی بـرای برنامـه هاسـت ، زیـرا ایـن برنامـه هـا بایـد در طیـف وسیعی از سیستم ها اجرا شوند . بدین ترتیب در طراحی جـاوا اولویـت اول توانـایی ایجـاد برنامـه هـای قدرتمنـد بـوده است . برای کسب اطمینان جاوا شما را به تعداد محدودی از نواحی کلیدی محدود می کند تا مجبور شـوید اشـتباهات خود را در توسعه برنامه خیلی زود پیدا کنید . در همین حال جاوا شما را از نگرانـی دربـاره بسـیاری از اشـتباهات رایـج ناشی از خطاهای برنامه نویسی می رهاند . از آنجاییکه جاوا یک زبان کاملا” نوع بندی شده است ، هنگام کامپایل کـد شما را کنترل می کند . اما این زبان کدهای شما را هنگام اجرا نیز کنترل می نمایـد . در حقیقـت بسـیاری از اشـکالات هارددیسک به شیار که اغلب در حالتهای حین اجرا ایجاد می شوند ، در جاوا ناممکن شده اند . آگاهی براینکـه آنچـه شــما نوشــته ایــد بصــورتی قابــل پــیش بینــی در شــرایط متغیــر عمــل مــی کنــد ، یکــی از جنبــه هــای اصلی جاوا است . برای درک بهتر قدرتمندی جاوا، دو دلیل عمده شکست برنامه ها را درنظـر بگیریـد :اشـتباهات در مـدیریت حافظـه و شرایط استثنایی پیش بینی نشده ( یعنی خطاهای حین اجرا ). مدیریت حافظه در محیطهای برنامه نویسی سنتی یکی از وظایف دشوار و آزار دهنده است . بعنوان نمونه درC  و++c  برنامه نویس باید بصورت دستی کل حافظـه پویـا را تخصیص داده و آزاد نماید . این امر گاه منجربه بروز مشکلاتی می شود . بعنوان نمونه گـاهی برنامـه نویسـان فرامـوش می کنند حافظه ای را که قبلاً تخصیص یافته ، آزاد نمایند . یا از این بدتر، ممکن است تلاش کننـد حافظـه ای را کـه توسط بخشی از کد ایشان در حال استفاده است ، آزاد نمایند . جاوا بوسیله مدیریت تخصیص حافظه و تخصیص مجدد حافظه واقعا” این مشکلات را از میان برداشته است . ( در حقیقت تخصیص مجدد کاملاً خودکار انجام می گیرد، زیرا جاوا یک مجموعه سطل آشغال برای اشیائ غیر قابل استفاده تهیه نموده است . ) شرایط استثنایی در محیط های سـنتی اغلب در حالتهایی نظیر “تقسیم بر صفر” یا”file not found”  اتفاق می افتند و باید توسط ساختارهای بد ترکیب و زمخت مدیریت شوند . جـاوا در ایـن زمینـه بوسـیله تـدارک اداره اسـتثنائات شـی ئ گرایـی object-oriented  این مشکل را حل کرده است . در یک برنامه خوش ساخت جاوا، کلیه خطاهای هنگام اجرا توسط برنامه شما مدیریت خواهد شد .

چند نخ کشی شده

جاوا برای تامین نیازمندیهای دنیای واقعـی بمنظـور ایجـاد برنامـه هـای شـبکه ای و فعـل و انفعـالی (interactive) طراحی شده است . برای تکمیل این هدف ، جاوا از برنامه نویسی چند نخ کشـی حمایـت مـی کنـد کـه امکـان نوشـتن برنامه هایی به شما میدهد که در آن واحد چندین کار را انجام می دهنـد . سیسـتم حـین اجـرای جـاوا ، یـک راه حـل زیبـــا و بســـیار ماهرانـــه بـــرای همزمـــانی چنـــدین پـــردازش (process) ارائـــه مـــی دهـــد کـــه امکان ساخت سیستم های فعل و انفعالی که به‌نرمی اجرا میشوند را بوجود آورده است . راه حـل سـهل الاسـتفاده جـاوا برای چند نخ کشی شده به شما امکان تفکر درباره رفتار خاص برنامه تان ( و نه یک زیر سیسـتم از چنـد وظیفـه ای ) را می دهد .

معماری خنثی Architecture-Neutral

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

تفسیر شده و عملکرد سطح بالا

همانطوریکه دیدیم ، جاوا قدرت ایجاد برنامه هایی قابل انطباق بـا چنـدین محـیط را بوسـیله کامپایـل کـردن یـک نـوع معرفی واسطه تحت عنوان کد بایتی پیدا کرده است . این کدها روی هرنوع سیستمی کـه یـک حـین اجـرای جـاوا را فراهم نماید ، قابـل اجـرا مـی باشـند . بسـیاری از راه حلهـای قبلـی در زمینـه برنامـه هـای چنـد محیطـه سـبب کـاهش سـطح عملکـرد برنامـه هـا شـده بـود .سـایر سیسـتم هـای تفسـیر شـده نظیـر Tcl ،BASIC،وPERL و از کمبودهـا و نارساییهای عملکرد رنج می بردند . اما جاوا طوری طراحی شده تا روی انواع cpu  نیـز بخـوبی اجـرا شـود . اگـر چـه صحت دارد که جاوا تفسیر شده است اما کدهای بایتی جاوا آنچنان دقیق طراحی شده که می تـوان آنهـا را بسـادگی و بطور مستقیم به کدهای ماشین خاص شما برای عملکردهای سطح بالا ترجمه نمود . سیستم های حین اجرای جـاوا کـه این بهینه سازی ” درست در زمان ” را اجرا می کنند ، سبب از دست رفتن هیچیک از مزایای کدهای مسـتقل از زیربنـا نخواهد شد. اکنون دیگرعملگرد سطح بالا و زیربناهای متعدد در تناقض با یکدیگرنیستند .

توزیع شده

جاوا مختص محیط توزیع شده اینترنت طراحی شده زیـرا پروتکـل هـای Tcp/ip را تبعیـت مـی کنـد . در حقیقـت ، دستیابی به یک منبع توسط آدرس URL چندان تفاوتی با دستیابی به یک فایل ندارد . روایت اولیه جـاوا یعنـی oak  دربرگیرنده جنبه هایی برای پیام رسانی آدرسهای داخلی فضای الکترونیکی بود . این امر امکان می داد تـا اشـیائ روی دو نوع رایانه متفاوت ، پردازشهای از راه دور را اجرا نمایند . جاوا اخیرا”این رابطها را در یک بسـته نـرم افـزاری بنـام RMI(Remote Method Invocation) احیائ نموده است . این جنبه یک سطح غیر موازی از تجرد بـرای برنامه نویس سرویس گیرنده / سرویس دهنده بوجود آورده است .

پویا

همراه برنامه های جاوا، مقادیر قابل توجهی از اطلاعات نوع حین اجرا وجود دارد که برای ممیزی و حل مجدد دستیابی به اشیائ در زمان اجرا مورد استفاده قرار می گیرند . این امر باعث پیوند پویای کد در یک شیوه مطمئن و متهورانه مـی شود . این مسئله برای قدرتمندی محیط ریزبرنامه (applet) کاملا” قاطع است ، جایی که اجرا بصورت پویا ارتقائ پیدا کرده است.

جادوی جاوا کدهای بایتی The Byte codes

کلید اصلی جادوی جاوا برای حل مشکل امنیت و قابلیت حمل در این است که خروجی یک کامپـایلر جـاوا، کـدهای قابل اجرا نیستند، بلکه کدهای بایتی هستند . کد بایتی یک مجموعه کاملا” بهینه شده از دسـتورالعمل هـایی اسـت کـه برای اجرا توسط یک ماشین مجازی (Virtual Machine) طراحی شده که معـادل سیسـتم حـین اجـرای run-time جاوا باشد . یعنی سیستم حین اجرای جاوا یک مفسر (interpreter) برای کد بایتی است . این امرممکن است تا حدی سبب شگفتی شود. همانطوریکه اطلاع دارید ++c به کد قابل اجرا کامپایل می شود . در حقیقت اکثر زبانهای برنامه نویسی مدرن طوری طراحی شده اند که قابل کامپایل نه قابل تفسیر باشند و این امر به لحاظ مسائل اجرایی است. اما این واقعیت که برنامه های جاوا قابل تفسیر شدن است به حل مشکلات پیوسـته بـا بارگـذاری برنامـه هـا روی اینترنت کمک می کند . دلیل آن روشن است . جاوا بگونه ای طراحی شده تا یک زبان قابل تفسیرباشد. از آنجاییکه برنامه های جاوا قبل از آنکه قابل کامپایل باشـند قابل تفسیرهستند، امکان استفاده از آنها در طیف گسترده ای از محیط ها وجود دارد . دلیل آن هم بسیار روشن اسـت . فقط کافی است تا سیستم حین اجرای جاوا برای هریک از محیط ها اجرا گردد . هنگامیکه بسته نرم افزاری حین اجـرا برای یک سیستم خاص موجود باشد ، برنامه جاوا روی آن سیستم قابل اجرا خواهد شد . بیاد داشته باشید کـه اگـر چـه جزئیات سیستم حین اجرای جاوا از یک محیط تا محیط دیگرمتفاوت است ، اما همه آنها یک کد بایتی جاوا را تفسیر می کنند . اگر جاوا یک زبان قابل کامپایل می بود ، آنگاه برای هریک از انواع cpu  متصل به اینترنت ، باید روایتهای مختلفی از جاوا نوشته می شد . این راه حل چندان قابل انطباق نیست. بنابراین “تفسیر” راحتترین شیوه برای ایجاد برنامه های واقعا” قابل حمل است . این واقعیت که جاوا یک زبان قابل تفسیراست ، به مسئله امنیت هم کمک میکند .از آنجایی که اجرای هـریـک برنامـه های جاوا تحت کنترل سیستم حین اجرا انجام شده سیستم فوق می تواند برنامه را دربرگرفته و مانع تولید اثـرات جـانبی خارج از سیستم گردد . همانطوریکه خواهید دید ، مسئله امنیت نیزتوسط محـدودیت هـای خاصـی کـه در زبـان جـاوا وجود دارد اعمال خواهد شد . هنگامیکه یک برنامه تفسیر میشود، معمولاً کندتراز زمانی که به کدهای اجرایی کامپایل شود ، اجرا خواهد شد . امـا در مورد جاوا این تفاوت در زمان اجرا چندان زیاد نیست .استفاده از کد بایتی امکان اجرای سریعتر برنامـه هـارا بوجـود می آورد .یک نکته دیگر: اگر چه جاوا طوری طراحی شده تا تفسیر شود ، اما محدودیتی برای کامپایل کدهای بـایتی آن به کدهای معمولی وجود ندارد . حتی اگر کامپایل پویا به کدهای بایتی اعمال شود ، همچنـان جنبـه هـای امنیتـی و قابلیت حمل آن محفوظ می ماند ، زیرا سیستم حین اجرا همچنان درگیر محیط اجرایی می ماند . بسیاری از محیط های حین اجرای جاوا این روش ” درست در زمان (just in time) کامپایل نمودن کدهای بایتی به کدهای معمولی را مورد استفاده قرار می دهند . چنین عملکردی قابل رقابت با ++c  می باشند . جاوا یک زبان کاملاً نوع بندی شده است در حقیقت بخشی از امنیت و قدرتمندی جاوا ناشی از همین موضوع است . اکنون ببینیم که معنـای دقیـق ایـن موضـوع چیست .

اول اینکه هر متغیری یک نوع دارد ، هر عبارتی یـک نـوع دارد و بـالاخره اینکـه هـر نـوع کـاملا” و دقیقـا” تعریف شده است . دوم اینکه ، کلیه انتسابها (assignments) خواه بطور مستقیم و صـریح یـا بوسـیله پارامترهـایی که در فراخوانی روشها عبور می کنند ، از نظر سازگاری انواع کنترل می شوند . بدین ترتیب اجبار خودکـار یـا تلاقـی انواع در هم پیچیده نظیر سایر زبانهای برنامه نویسی پیش نخواهد آمد. کامپایلر جاوا کلیه عبارات و پارامترهـا را کنتـرل می کند تا مطمئن شود که انواع ، قابلیت سازگاری بهم را داشته باشند . هر گونه عدم تناسب انـواع ، خطاهـایی هسـتند که باید قبل از اینکه کامپایلرعمل کامپایل نمودن کلاس را پایان دهد ، تصحیح شوند.

جهت مشاهده کامل آموزش روی دکمه دریافت آموزش کلیک نمایید

توضیحات

? مدرس: علیرضا بخشی
⏪ روش دریافت: لینک دانلود به صورت PDF

اطلاعات بیشتر

حجم دانلود

176 kb

نوع آموزش

آموزش ویدئویی

زبان

فارسی

ناشر

اسپارک

آیا می دانید که تهیه یک آموزش از اسپارک و شروع یادگیری چقدر ساده است؟

راهنمایی بیشتر ( +)

در مورد این آموزش یا نحوه تهیه آن سوالی دارید؟
  • با شماره تلفن واحد مخاطبین ۸۸۳۱۲۲۷۶ (پیش شماره ۰۲۱) تماس بگیرید. – تمام ساعات اداری
  • از طریق بخش چت آنلاین، با پشیبان های فرادرس گفتگو کنید.- همه روزهای کاری هفته از ساعت ۸ صبح تا ۱۲ شب
  • با ما مکاتبه ایمیلی داشته باشید (این لینک) – میانگین زمان پاسخ دهی: ۳۰ دقیقه

فعلا نظری موجود نیست.

نقد خود را اضافه کنید