poor!a 15130 اشتراک گذاری ارسال شده در 17 مهر، ۱۳۹۰ سلام کمکم و از صفر باهم جاوا رو شروع میکنیم امیدوارم مفید باشه منبع برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید. ورود یا ثبت نام برنامه جاوا توسط یکی از برنامه نویسان شرکت Sun Microsystems به نام جیمز گوسلینگ James Goslingبه عنوان روش بهتر برای ایجاد برنامه های کامپیوتری اختراع گردید . گوسلینگ از نحوه کاربرد زبان C++ روی پروژه ای که مشغول انجام آن بوده رضایت نداشت و از زبان جدیدی ابداع کرد که بهتر از عهده آن کار بر آید . شروع کار : اغلب برنامه های کامپیوتری به همان شکلی نوشته می شوند که شما یک نامه را می نویسد . یعنی با تایپ کردن هر جمله در یک ویراشگر متن . برخی از ابزارهای برنامه نویسی دارای ویرایشگر خاص خود می باشد برخی دیگر با هر نرم افزار ویرایشگر متن کار می کنند . برای نوشتن برنامه های جاوا نیز باید ابتدا یک ویرایشگر متن مانند Not pad یا Word pad را گشوده برنامه را نوشته آنگاه برنامه را با پسوند Java ذخیره کرد به عنوان مثال Calculator. java نامی برای یک فایل برنامه جاوا است . پیش از شروع به نوشتن برنامه های ، جاوا لازم است که یکی از نرم افزارهای برنامه نویسی جاوا را تهیه و راه اندازی کنید، کیت توسعه جاوا JDK نامیده می شود که نسخه های متعددی مانند1.2 ، …1.4 دارد . نسخه های این کیت را می توانید از سایت زیر Download کنید . برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید. ورود یا ثبت نام 10 لینک به دیدگاه
poor!a 15130 مالک اشتراک گذاری ارسال شده در 17 مهر، ۱۳۹۰ در این درس شما اولین برنامه جاوای خود را با وارد کردن آن درون ویرایشگر دلخواه خود، ایجاد خواهد کرد . پس از آن برنامه را ذخیره و کامپایل می کنید و سپس آن را آزمایش خواهید کرد . آغاز برنامه : با استفاده از ویرایشگر خود (wordpad,notepad ) تمام سطرهای زیر را وارد کرده، دقت کنید که حروف بزرگ و کوچک را دقیقاً به همان صورتی که نشان داده شده وارد کنید. Class exampel1 { Public static void main(String[] arguments) { //this is my first java program } } حال برنامه را با نام exampel1.java ذخیره کنید . باید توجه داشته باشید که کلمه exampel1 در سطر اول، نشان دهنده نام برنامه است و در برنامه های دیگر تغییر خواهد کرد . سطر سوم نیز کاملاً واضح است . چرا که جمله ایست به زبان انگلیسی و تنها برای توضیحات بیشتر در برنامه آورده شده است ، به این توضیحات که در ابتدای آنها از // استفاده می شود comments می گویند . سطر اول برنامه ( class exampel1 { ) به ماشین می گوید که نام برنامه را exampel1 قرار بده یعنی شما از جمله class برای نامگذاری برنامه ی کامپیوتری خود استفاده می کنید البته در درسهای بعدی در رابطه با این جمله توضیحات بیشتری خواهیم داد . توجه داشته باشید که نام برنامه دقیقاً باید مطابق نام فایل باشد یعنی هر برنامه باید با نامی save شود که دقیقاً بعد از کلمه class نوشته شده است البته با پسوند .java سطر بعدی برنامه به این ترتیب است Public static void main(String[ ] arguments) { این سطر به برنامه می گوید که بخش اصلی برنامه از اینجا شروع می شـــود ، در واقع main نقطه شروع برنامه می باشد باید توجه داشت که از آکولاد ها برای گروه بندی بخشهایی از برنامه استفاده می شود ، هر آنچه بین آکولاد باز(}) و آکولاد بسته({) قرار دارد بخشهای یک بلوک (block) حساب می شود . شما باید همواره برای مشخص کردن آغاز و پایان برنامه هایتان بعد از نام برنامه در سطر اول آکولاد را باز کنید و در سطر آخر برنامه آکولاد را ببندید . در درسهای بعدی بیشتر به توضیح این سطر می پردازیم اینک بیایید برنامه را کامپایل کرده و آنرا اجرا نماییم . وارد برنامه commant prompt شوید (start/all programas/Accessibility/commant prompt) یا چنانچه علاقه زیادی به کار در محیط dos ندارید از خط فرمان Run در منوی start خط زیر را تایپ کنید: Javac exampel1.java در صورتی که کامپایل برنامه با موفقیت انجام شود ، فایل جدیدی به نام exampel1.class در همان پوشه حاوی exampel1.java ایجاد خواهد شد . سپس عبارت زیر را در خط فرمان تایپ کنید : Java exampel1 با اجرای برنامه مطمئناً چیزی مشاهده نمی کنید چرا که هیچ فرمانی مبتنی بر print به برنامه ندادید اما نگران نباشید در آینده ای نزدیک خروجی را نیز مشاهده خواهید کرد . 9 لینک به دیدگاه
poor!a 15130 مالک اشتراک گذاری ارسال شده در 17 مهر، ۱۳۹۰ نکته مهمی که در برنامه نویسی جاوا باید به آن توجه کرد آن است که برنامه مورد نظر کجا اجرا می شود. برنامه های جاوایی که به طور محلی روی کامپیوتر اجرا می شوند،برنامه های کاربردی(Applications) و برنامه هایی که در صفحات وب اجرا می شوند، اپلت (Applet) نامیده می شوند . اینک توضیحات ما مربوط به برنامه های کاربردی می باشد ، در درسهای آتی به توضیح اپلتها خواهیم پرداخت. متغییرها: در برنامه های جاوا متغییرها با دستورالعملی ایجاد می شوند که مشتمل بر دو بخش است : نام متغییر نوع اطلاعاتی که متغییر در خود ذخیره خواهد کرد . انواع متغییر برای نگهداری متغییری از نوع اعداد صحیح (اعداد غیر اعشاری) از نوع int می توان استفاده کرد .int هر عدد صحیح بین 14/2 – میلیارد تا 14/2 میلیارد را نگهداری می کند. مثال: int max; یعنی متغییری با نام max و از نوع اعداد صحیح(int) و برای ذخیره متغییرهای اعشاری از نوع float استفاده می شود . مانند: float average; یعنی متغییری با نام average و از نوع اعداد اعشاری(float) و اما برای ذخیره متغییرهای غیر عددی اگر متغییر از نوع کاراکتر بود از عبارت char استفاده می شود و اگر متغییر رشته بود نوعString به کار برده می شود. مانند: char key=’c’; یعنی متغییری با نام key با مقدار c از نوع کاراکتر و String name=”orbitz”; یعنی متغییری با نام name با مقدار orbitz از نوع رشته توجه داشته باشید هنگامی که از مقادیر کارکتری استفاده می کنید باید در دو طرف کارکتری که به متغییر نسبت داده می شود ، علامت نقل قول منفرد قرار دهید و در مورد مقادیر رشته ای ، از علامت نقل قول دوتایی استفاده کنید در ضمن یادتان نرود که همواره در تایپ کلمه String ، S را با حرف بزرگ چاپ کنید . 5 لینک به دیدگاه
poor!a 15130 مالک اشتراک گذاری ارسال شده در 1 آبان، ۱۳۹۰ خب تا الان مقدمات گفتیم ی سری توصیه میکنم و سعی میکنم خیلی خلاصه پیش برم شروع میکنیم جلسه اول : از این با بعد درسنامه هایی تحت عنوان آموزش زبان جاوا خواهیم داشت. هر کس هر جا مشکلی داره حتما بپرسه چون جاوا زبان تقریبا مشکلی هست اما اگه خوب راه بیفتیم مثل هر زبان دیگه ای جذابیت های خاص خودشو داره. بهتر هست کسانی که قصد مطالعه این درسنامه ها رو دارن با زبان C یا C++ آشنایی داشته باشن یا حداقل مبانی یک زبان رو بدونن. اگه کسی باشه که جاوا اولین زبان برای یادگیری اون باشه باید بگم راه سختی رو در پیش داره. البته من سعی می کنم هر جا که لازم شد یه flash back به مطالب C++ داشته باشم. قبل از هر چیزی میخوام سرفصلها رو براتون بگم که دقیقا بدونید قرار هست چه مطالبی رو یاد بگیرید : Unit1 : تاریخچه و سیر تکاملی جاوا Unit2 : اصطلاحات مهم جاوا Unit3 :برنامه سازی شیء گرا Unit4 : انواع داده هاو متغیر ها و آرایه ها Unit5: عملگرها Unit6: عبارات کنترلی Unit7: معرفی کلاسها-قسمت اول Unit 8: معرفی کلاسها-قسمت دوم(متد ها و کلاس ها) Unit 9: وراثت Unit10: پکیج ها و رابطها Unit 11: استثتاها Unit 12: multithreaded برنامه سازی Unit 13: داده های جانبی- فهرست ثابت ها وautoboxing Unit14 : ورودی –خروجی و اپلت ها Unit 15 : داده های عمومی خوب این هم از درس اول: Unit 1 تاریخچه و سیر تکاملی جاوا برای درک کامل جاوا باید دلایل به وجود آمدن آن و نیرو های شکل دهنده آن و میراثی که به ارث برده است رو درک کنیم. زبان برنامه نویسی جاوا هم مثل زبان های برنامه نویسی موفقی که قبل از اون مطرح شده؛ ترکیبی از بهترین عناصر میراث غنی خود است که با مفاهیمی که منحصر به این زبان است ادغام شده است. اگر چه جاوا به طور تنگاتنگی با محیط اینترنت ارتباط داره اما لازمه به خاطر داشته باشید که که بیش از هر چیز یک زبان برنامه نویسی است. ابداع؛توسعه و تکامل زبانها به دو دلیل رخ می دهد: ۱- برای تطبیق با محیط ها و کاربرد های در حال تغییر ۲- برای عملی ساختان موارد خاص و پیشرفته هنر برنامه سازی پیشینیان زبان جاوا زبان جاوا ارتباط تنگاتنگی با C++ دارد که به نوبه خودش؛ به طور مستقیم از زبان C مشتق شده است. بیشتر ویژگی های جاوا از این دو زبان به ارث رسیده است به طور مثال ساختار گرامری جاوا از C مشتق شده است. زبان C++ هم بر بسیاری از ویژگی های شیئ گرایی Object Oriented جاوا تاثیر گذاشته است. علاوه بر این شکل گیری زبان جاوا در فرآیند “تصفیه و تطبیق” Refinement and Adaption ریشه داره که عموما در چند دهه اخیر در زبان های جدید رخ داده است. دلیل هر یک از این نوآوری های مطرح در طراحی هر زبان؛ نیاز به حل مسائلی بوده که زبان های پیشین قادر به حلشون نبودن. تولد زبان برنامه سازی نوین C زبان برنامه سازی C دنیای کامپیوتر ها رو متحول کرد و تغییر اساسی در نگرش برنامه نویسی ایجاد کرد. طراحی و پیاده سازی زبان C نتیجه مستقیم نیاز به یک زبان ساختار یافته ؛ کادآمد و سطح بالا بود که بتونه جایگزین زبان اسمبلی در نوشتن برنامه های سیستمی بشه. زبان C هم مثل هر زبان دیگه ای تونست بین موارد زیر توازن نسبی ایجاد کنه: سهولت استفاده امنیت در مقابل بازدهی استحکام در مقابل گسترش برنامه سازان معمولا قبل از مطرح شدن C باید زبانی رو از بین زبانهای دیگه انتخاب می کردن که تنها یکی از خصوصیات گفته شده رو داشته باشه .مثلا زبان فرترنFORTRAN امکان نوشتن برنامه های نسبتا کارآمد برای کاربرد های علمی رو به ما میده اما این زبان برای نوشتن برنامه های سیستمی مناسب نیست یا با اینکه یادگیری بیسیکBASIC آسونه اما زبان قدرتمندی نیست و در ساختارش نقص داره. با استفاده از زبان اسمبلیAssembly می تونیم برنامه های بسیار کارآمد تولید کنیم اما یادگیری اون مشکله و به کار بردن اونم خیلی سخته علاوه بر این اشکال زدایی در آن هم دشوار و وقت گیره. مشکل دیگه اینه که زبان هایی وثل بیسیک و کوبولCOBOL و فرترن بر اساس اصول ساختار یافته طراحی نشده اند و همه این زبان ها از دستور GOTO برای هدایت کنترل برنامه ها استفاده می کردند و در نتیجه برنامه هایی که با این زبان ها نوشته می شدند منجر به تولید کد اسپاگتی(حجم زیادی از انشعابات شرطی و غیر شرطی که درک برنامه رو سخت میکنه) می شدند. گرچه زبانی مثل پاسکالPascal ساختار یافته است اما طراحی اون با هدف بازدهی و کارایی صورت نگرفته و فاقد ویژگی بود که بشه با اون برنامه های گسترده رو نوشت و علاوه بر این به دلیل استاندارد بودن ساختار گرامری اش قادر به نوشتن برنامه های سیستمی نیست. در اوایل دهه ۷۰ میلادی انقلاب کامپیوتری فراگیر شده بود و نیاز به رسیدن به نرم افزار های بهتر؛برنامه سازان را به شدت برای تولید سریع اینگونه نرم افزار ها تحت فشار قرار میداد. در محافل آکادمیک هم همه نیروی برنامه سازان برای طراحی و پیاده سازی یک زبان بهتر به کار می رفت. برنامه سازان برای اولین بار دستیابی نا محدودی به کامپیوتر ها داشتند و این امر آزادی عمل برای انجام هر آزمایشی رو به اونا میداد. زبان برنامه نویسی C توسط دنیس ریچی طراحی و برای اولین بار در یک کامپیوتر PDP-11 تحت سیستم عامل یونیکس اجرا شد. این زبان نیز نتیجه فرآیندی بود که با زبان قدیمی تری به نامBCPLکه توسط مارتین ریچاردز طراحی شده بود؛ آغاز شده بود. C++ گام بعدی زبان برنامه نویسی C در اواخر دهه ۷۰ و اوایل دهه ۸۰ میلادی با زبان برنامه سازی غالب تبدیل شد و هنوز هم طرفداران مخصوص به خود را دارد. با این وجود سوالی که مطرح است این است که با در نظر گرفتن قابلیت های زیاد این زبان چرا نیاز به تولید یک زبان دیگر با وجود آمد؟ پاسخ این سوال پیچیدگی است. در سرتاسر تاریخ برنامه سازی پیچیدگی رو به رشد برنامه ها؛ موجب مطرح شدن ضرورت روشهای بهتر برای مدیریت این پیچیدگی شده است. روش برنامه سازی جدیدی به نام برنامه سازی شیئ گرا Object Oriented Program برای حل مشکل پیچیدگی ابداع شد.OOP نوعی متدلوژی برنامه سازی است که امکان سازماندهی برنامه های پیچیده را از طریق وراثت inheritance ؛ نهان سازی encapsulation و پلی مورفیزم فراهم می کند. اگر چه C یکی از بزرگترین زبان های برنامه سازی جهان است اما توانایی محدودی جهت مدیریت پیچیدگی دارد. وقتی حجم برنامه ای از ۲۵۰۰۰ تا ۰۰۰/۱۰۰ سطر بیشتر می شود آنقدر پیچیده شده است که تسلط بر تمام آن مشکل است. C++ امکان حل این مشکل رو فراهم کرد. BJarne StroustrupPowerPoint در سال ۱۹۷۹ وقتی در آزمایشگاه بل در نیوجرسی مشغول کار بودC++ را ابداع کرد و در ابتدا نام اونو C with classes گذاشت. زمینه برای جاوا فراهم می شود در اواخر دهه ۸۰ میلادی برنامه سازی شی ئ گرا با C++ فراگیر شد. چون C++ بازدهی بالا و عناصر دارای سبک زبان Cرا با سبک شی ئ گرا ترکیب کرده بود؛ زبانی بود که میشد از اون برای ایجاد محدوده گسترده ای از برنامه ها استفاده کرد. با این وجود مانند قبل نیرو هایی در حال ترکیب شدن هستند تا یا بار دیگه تکاملی در زبان های برنامه سازی ایجاد کنند. ظهور جاوا جاوا در سال ۱۹۸۱ توسط جیمز گاسلینگ ؛ پاتریک نوتون ؛ کریس وارث ؛ اد فرانگ و مایک شرایدن در شرکت سان میکرو سیستم ایجاد شد. نخستین نگارش اون پس از ۱۸ ماه کاری تولید شد .اسم این زبان در ابتداOaK بوداما در سال ۱۹۹۵ به جاوا تغییر کرد. در فاصله زمانی بین نخستین پیاده سازی OaK در پاییز سال ۱۹۹۲ و اعلام موجودیت جاوا در بهار سال ۱۹۹۵ افراد زیادی در طراحی و تکامل این زبان مشارکت داشتن. جالبه بدونید که محرک اولیه برای آماده سازی جاوا اینترنت نبود بلکه در عوض محرک اصلی ؛ نیاز به یک زبان مستقل از محیطPlatform independent یا معماری خنثی بود که بتوننن از اون برای ایجاد نرم افزار های قابل استفاده در تجهیزات الکترونیکی خانگی مثل ماکرو فر و دستگاه های کنترل از راه دور ؛استفاده کنن. می دونید که CPU هایی هستن که به عنوان کنترلر استفاده میشن؛ مشکل CوC++ و اکثر زبانهای دیگه اینه که طراحیشون طوری است که برای یک مقصد خاص کامپایل میشن. هر چند این امکان وجود داره کهبرنامه های C++ رو برای تقریبا هر CPUای کامپایل کرد اما این کار مستلزم داشتن یک کامپایلر خاص برای اون نوعCPU است. تولید کنندگان زبان جاوا برای پیدا کردن راه حلی برای این مشکل کار بر روی زبانهای قابل انتقال و مستقل از محیط رو شروع کردن تا بتونن کدی رو تولید کنن تا در CPUهای مختلف تحت محیط های مختلف قابل اجرا باشه و این منجر به تولید جاوا شد. همزمان با تولید جاوا عامل دوم و مهمتری نیز ایجاد شد که نقش زیادی در آینده جاوا داشت.این نیرو وب جهانی WW بود.هرچند وب جهانی همزمان با پیاده سازی جاوا شکل نگرفته بود اما این امکان وجود داشت که جاوا زبانی مهم و گمنام برای آماده سازی تجهیزات الکترونیکی باقی بمونه. با ظهور وب جهانی جاوا پیشرفت قابل ملاحظه ای کرد زیرا وب جهانی هم نیاز به برنامه های قابل انتقال داشت. گفتیم جاوا شباهت های زیادی به CوC++دارد. طراحان جاوا می دونستن که استفاده از ساختار گرامری C و استفاده از میژگیهای شی ئ گراییC++ به خوبی برنامه نویسان با تجربه این دو زبان رو به جاوا جذب میکنه. جاوا زبانی ست که بر ساسا نیازها و تجربیات کسانی که اونو طراحی و پیاده سازی کردن شکل گرفته پس این زبان؛ زبان برنامه سازان هست. جاوا پیوسته و یکپارچه است و کنترل نا محدودی رو در اختیار شما میذاره(به جز وحدودیت هایی که ممکنه اینترنت ایجاد کنه).اگه برنامه خوبی در جاوا بنویسید کامپایلر اونو منتقل میکنه اگه برنامه بدی بنویسید باز هم اونو منتقل میکنه به عبارت دیگه جاوا زبانی صرفا برای آموزش دیدن نیست این زبان برنامه نویسان حرفه ای است. به دلیل شباهتهای جاوا باCو C++ اغلب به اشتباه تصور میشه که این زبان صرفا نگارش اینترنتی دو زبان ذکر شده است اما جاوا تفاوتهای فلسفی با آنها دارد. ارتباط با C# موفقیت جاوا بسیار مهمتر از اونه که نادیده گرفته بشه. شاید مهمترین مثال از تاثیر جاوا ؛ C# باشه. C# ارتباط تنگاتنگی با جاوا داره و توسط شرکت میکرو سافت به منظور پشتیبامی از.NET Framework طراحی و پیاده سازی شده. ساختار گرامری مشابه ای بین جاوا و C# وجود داره ؛ هر دو اونا از برنامه سازی توزیع شده Distributed و از مدل شی ئ گرای یکسانی بهره مند هستن. خوب این هم یه تاریخچه ای از جاوا. تو این دنیای متنوع و رنگارنگ زبان های برنامه نویسی. بر اساس تجربه شخصی ام بهتون پیشنهاد میکنم همیشه برای خوندن هر زبانی به ریشه های اون توجه کنید. شاید بهتر باشه بگم برای یاد گرفتن هر چیزی؛ اول ریشه های اونو بررسی کنید. این طوری نه تنها گیج نمیشید بلکه به راحتی و در کمترین زمان حرفه ای میشید چون دیگه نیازی نیست در حین اموزش مکررا به عقب برگردید 3 لینک به دیدگاه
poor!a 15130 مالک اشتراک گذاری ارسال شده در 1 آبان، ۱۳۹۰ جلسه دوم اینترنت کمک کرد تا جاوا به صدر جدول برنامه سازی پرتاب شود و جاوا هم به نوبه خود تاثیر زیادی بر اینترنت داشته است زیرا جاوا دنیای اشیایی که آزادانه قادر به حرکت در فضای کامپیوتری Cyberspace هستند را تغییر داده است. در هر شبکه دو دسته گسترده از اشیا در بین سرویس دهنده و کامپیوتر های شخصی منتقل می شوند: اطلاعات غیر فعالPassive و برنامه های پویا و فعال. مثلا وقتی E-mail های خود را چک می کنید یا در حال Download یک برنامه هستید صرفا در حال مشاهده یک سری داده های غیر فعال هستید اما نوع دیگری از اشیا به کامپیوترتان قابل انتقال هستند:یک برنامه پویای خود اجراSelf-executing . این چنین برنامه ها یک عامل یا agent فعال در کامپیوتر سرویس گیرنده به شمار می آیند که می بایست توسط سرویس دهنده آغاز شود.اگرچه برنامه های شبکه ای باید پویا باشند اما مشکلات زیادی در مورد امنیت و قابلیت انتقال فراهم می سازند. قبل از ایجاد جاوا فضای کامپیوتری به نبمی از موجودیتهایی که اینک وجود دارد دسترسی نداشت اما جاوا این مشکلات را حل کرد و با اپلت هاapplet دنیا را با نوع جدیدی از برنامه ها آشنا کرد. اپلت های جاوا هر اپلت نوع ویژه ای از برنامه های جاوا است که برای انتقال در اینترنت و اجزای خودکار توسط مرور گرهای سازگار با وب طراحی شده است.به علاوه ا لت ها در صورت نیاز و تقاضا download می شوند درست مانند یک تصویر با این تفاوت که هر اپلت نوعی برنامه هوشمندintelligent program است و نه صرفا یک فایل رسانه ای به عبارت دیگر هر اپلت برنامه ای است که می تواند نسبت به ورودی کاربر عکس العمل انجام دهد و به طور پویا تغییر کند.اگر جاوا نمی توانست دو مشکل اساسی مرتبط با این برنامه ها یعنی امنیت و قابلیت انتقال را حل کند اپلت ها فقط در حد یک آرزو باقی می ماندند. امنیت هر بار که برنامه معمولی را download می کنیم در واقع خطر آلوده شدن به انواع ویروسها را به جان می خریم. قبل از ایجاد جاوا کاربران برنامه های اجرایی را چندان download نمی کردند یا پیش از اجرا آنها را اسکن می کردند اما با این حال نیز هنوز خطر آلوده شدن به ویروس وجود داشت. جاوا با ارائه یا فایروال در بین برنامه تحت شبکه و کامپیوتر کاربر پاسخی برای دو مسئله امنیت و قابلیت انتقال ایجاد کرد.وقتی از مرورگر سازگار با جاوا استفاده می کنید می توانید به راحتی و بدون ترس و با امنیت کافی اپلت های جاوا را download کنید.جاوا این کار را با محدود کردن برنامه های خود به محیط اجرای جاوا و جلوگیری از دستیابی به سایر بخش های کامپیوتر انجام می دهد. قابلیت انتقال برای آنکه برنامه ها به طور پویا به انواع محیط های متصل به اینترنت download شوند روشی برای تولید کد اجرایی قابل انتقال لازم است.همان مکانیزمی که امنیت را تضمین می کند به دست یافتن به قابلیت انتقال نیز کمک می کند.(در Unitهای بعدی به این مسئله می پردازیم) کد های بایتی؛ فصل تمایز جاوا کلیدی که به جاوا امکان حل کردن مشکل امنیت و قابلیت انتقال را می دهد؛آن است که خروجی کامپایلر آن کد اجرایی نیست بلکه در عوض کد بایتی است.کد بایتی مجموعه ای مفید از دستورالعملهایی است که برای اجرا توسط سیستم”زمان-اجرای”جاوا طراحی شده است.این سیستم ماشین مجازی جاواJVM نام دارد. در حقیقت JVM نوعی مفسرinterpreter برای کد بایتی است.بیشتر زبانهای نوین به گونه ای طراحی شده ان که نتیجه کامپایل آنها کد اجرایی باشد و نه کد قابل تفسیر که دلیل این امر هم همان مسائل مربوط به کارایی است اما این حقیقت که برنامه های جاوا توسطJVM تفسیر می شوند به حل مسائل مربوط به download کردن برنامه ها در اینترنت کمک می کند.ترجمه برنامه های جاوا به کد بایتی باعث می شود که اجرای آنها در محیط های گوناگون آسانتر باشد.دلیل این امر این است که تنها JVM می بایست برای هر محیط پیاده سازی شود.پس از آماده شدن پکیج”زمان-اجرا” برای یک سیستم خاص هر برنامه جاوایی برای آن قابل اجرا خواهد بود.اگرچه جرئیات JVM در محیط های مختلف با هم متفاوت است اما تمام آنها قادر به تفسیر کد بایتی هستند.اگر برنامه های جاوا به کد اصلی جاوا کامپایل شوند در آن صورت نگارشهای مختلف یک برنامه می بایست برای هر یک از انواعCPUهای متصل به اینترنت اماده شوند؛ این امر راه حل قابل قبولی نیست برای همین اجرای کد بایتی توسطJVM آسانترین راه برای ایجاد برنامه های اجرایی حقیقی است.اینکه برنامه های جاوا توسطJVM اجرا می شوند به امنیت آنها نیز کمک می کند زیراJVM کنترل را در دست دارد ؛می تواند در برگیرنده برنامه نیز باشد و از ایجاد تاثیرات جانبی در خارج از سیستم جلوگیری کند.اگر چه جاوا از همان ابتدا به عنوان یک زبان مفسردار طراحی شده است اما از نظر فنی مانعی در رابطه با این زبان وجود ندارد که از کامپایل فوری کد بایتی به کد زبان ماشین و در نتیجه افزایش کارایی جلوگیری کند.به همبن دلیل شرکت سان مدت کمی بعد از ارائه جاوا فناوری HotSpot را نیز عرضه کرداین فناوری کامپایلرJIT(just-in-time) را برای کد بایتی ارائه می دهد. وقتی کامپایلر JIT بخشی ازJVM باشد بخشهای منتخب کد بایتی بلافاصله و قسمت به قسمت بر اساس تقاضا به کد زبان ماشین ترجمه می شوند. اصطلاحات مهم جاوا هیچ بحثی در مورد جاوا بدون بررسی اصطلاحات آن کامل نمی شود پس با هم به بررسی این اصطلاحات می پردازیم: ۱- سادگی جاوا به گونه ای طراحی شده است که فراگیری آن برای برنامه سازان حرفه ای آسان باشد با کمی تجربه در برنامه سازی تسلط یافتن بر جاوا اصلا مشکل نیست.اگر برنامه سازی شی گرا را فراگرفته باشید مثلا با زبانی مثلC++ آشنا باشید تلاش کمی برای روی آوردن به جاوا باید انجام دهید. ۲- شی گرایی اگرچه جاوا تحت تاثیر پیشینیان خود است ام به گونه ای طراحی نشده است که از جهت متن برنامه ها به زبانهای دیگر سازگاری داشته باشد.نتیجه این موضوع آزادی عمل برای گروه طراحان جاوا بوده است تا طراحی خود را از صفر شروع کنند. نتیجه این امر رویه ای شفاف ؛قابل استفاده و واقع بینانه نسبت به اشیا بود.مدل شی ها در جاوا ساده و گسترش آن نیز آسان است و در عین حال انواع داده های اصلی و اولیه در آن حفظ شده اند. ۳- استحکام ایجاد برنامه های با استحکام اولویت بالایی در طراحی جا داشته است. جا برای به دست آوردن مقام قابلیت اطمینان؛ برنامه سازان را در چند زمینه کلیدی محدود کرده تا اشتباهات مراحل اولیه تولید نرم افزارها را سریعا پیدا کند. چون جاوا زبانی است که درستی نوع مقدار داده ها به شدت در آن کنترل می شود؛ کد برنامه ها در زمان کامپایل بررسی می گردد.اما این کار در زمان اجرا نیز انجام می شود. در حقیقت ایجاد بسیاری اشکالاتیbugs که ردگیری آنها دشوار بوده و اغلب خود را در شرایط زمان اجرا نمایان می سازند؛ غیر ممکن است.برای آنکه چگونگی استحکام جاوا ره بهتر درک کنید دو مورد از دلایل اصلی عدم موفقیت برنامه ها را در نظر بگیرید: ۱- اشتباهات مدیریت حافظه و ۲- استثناهایی که به درستی مدیریت نشده اند(خطا های زمان اجرا) . مدیریت حافظه در محیط های برنامه سازی قدیمی می تواند به امری دشوار و کسل کننده تبدیل شود. برنامه سازان در C وC++ باید حافظه پویا را به صورت دستی تخصیص دهند و آزاد کنند و این امر به خاطر دلایلی مثل فراموشی یا اشتباه در آزاد سازی حافظه مشکل آفرین است. جاوا عملا این مشکل را با مدیریت تخصیص و آزاد سازی حافظه حذف کرده است.در حقیقیت این عمل در جاوا به صورت خودکار انجام می شود(جاوا ویژگی مدیریت حافظه های بلااستفاده را برای شی های بدون استفاده فراهم ساخته است). استثناهاexception در محیط های قدیمی در شرایطی مانند تقسیم بر صفر یا عدم وجود فایل ایجاد می شوندو باید با ساختارهای گرامری که درک مشکلی دارند مدیریت شوند اما جاوا با فراهم ساختن امکان مدیریت استثناها به برنامه سازان کمک کرده است. ۴- Multithreadedجاوا برای ایجاد برنامه های محاوره ای و تحت شبکه طراحی شده است و برای رسیدن به این هدف از برنامه سازیMultithreaded پشتیبانی می شود که قادر به نوشتن برنامه هایی است که برای انجام چند عمل در یک زمان است؛ می باشد. سیستم زمان-اجرای جاوا با راه حل ساده و در عین حال پیچیده ای برای همگام سازیSynchronization فرآیند های همزمان ایجاد شده است تا امکان ساخت سیستم های محاوره ای فراهم شود. ۵- معماری مستقل از جمله مسائل اصلی که برنامه سازان با ان مواجه هستند این است که هیچ تضمینی وجود ندارد که برنامه ای که امروز نوشته اند فردا هم اجرا شود حتی در همان کامپیوتر.ارتقاء سیستم عامل؛ ارتقاء پردازنده و تغییرات منابع سیستمی از جمله دلایل بروز این مشکل هستند ما جاوا با طراحی ویژه اش در پی رسیدن به این هدف بود: یک بار بنویسید ؛ هر وقت و برای همیشه در همه جا اجرا کنید.! ۶- مفسر دار و بسیار کارآمد جاوا ایجاد برنامه برای محیط های مختلف را فراهم ساخته و برای انجام این کار برنامه ها به نوعی کد میانجی به نام کد بایتی کامپایل می شوند.این کد در هر سیستمی که ماشین مجازی جاواJVM در آن پیاده سازی شده باشد؛ قابل اجرا است. کد بایتی طوری طراحی شده است تا ترجمه مستقیم آن به کد زبان ماشین جهت رسیدن به کارایی بسیار بالا با استفاده از کامپایلر JIT آسان باشد. ۷- توزیع شده جاوا برای محیط های توزیع شده اینترنت طراحی شده است چرا که پروتکل های TCP/IP را به خوبی مدیریت می کند. جاوا همچنین از RMI(Remote Method Invocation) پشتیبانی می کند که این ویژگی امکان فراخوان متد ها در شبکه را برای برنامه ها فراهم می سازد.۸- پویابرنامه های جاوا حجم قابل ملاحظه ای از اطلاعات انواع داده های زمان اجرا را با خود دارند که برای بررسی صحت شی ها در زمان اجرا و دستیابی به آنها مورد استفاده قرار می گیرند. این امر Link کردن پویای برنامه ها را با روش مقتضی و امن ممکن می سازد که انجام این کار برای استحکام اپلت ها حیاتی است.خوب این هم از قسمت دوم درسنامه جاوا. در قسمت سوم در مورد نوع برنامه سازی جاوا صحبت می کنیم و اولین برنامه های ساده را می نویسیم 3 لینک به دیدگاه
ارسال های توصیه شده