صفحه 1:
زبان برنامه نویسی جاوا
استاد راهنما:
استاد مریم شکوهی
تهیه شده توسط:
الهه جوادی
صفحه 2:
چه زبان هایی از جاوا مشتق شده اند؟
جاوا چه تفاوتی با جاوا اسکرییت دارد؟
ل مورک های جاوا چه هستند؟
مزیت های جاوا در چیست؟
معایب برنامه نویسی جاوا چیست؟
جاوا چه کاربردهایی دارد؟
موقعیت های شغلی برای برنامه نویسان جاوا چطور
سخن پایانی
صفحه 3:
زبان برنامه نویسی جاوا 0۷۸ در ۲۳ مه ۱۹۹۵ (برابر با ۲ خرداد ۱۳۷۴) از سوی جیمز
گاسلینگ(60511۳9) 31065ل) طراحی شده است. جاوا به گواهی سایت معتبر 11006"
از سال ۲۰۰۱ همواره به عنوان اولین یا دومین زبان برنامهنویسی دنیا مطرح بوده است. در
تصویر زیر درصد رتبه کسب شده لین زبان را بین همه زبانهای برنامهنویسی در طی ۱۸ سال
اخیر مشاهده میکنید. همچنین:زبان برنامه نویسی- 00 ]60 نیز یکی از زبانهای برتر در
حوزه تجاری و wale Glo 4 Mainframe
صفحه 4:
TIORE Programming Community index
تا جایی که به جاوا مربوط میشود, همه چپز از اوایل دهه 1990
آغاز شد, یعنی زمانی که شرکت سان مایکروسیستمز۹
5 شروع به توسعه نسخه بهتری از ++) کرد که
بتواند به آسانی پرتابل شود, برای افراد مبتدی مطلوب باشد و به
مدیریت خودکار حافظه بپردازد. تحقیقات این شرکت منجر به خلق
ان کاملا جدید شد كه نام ن ازمیان دهها نام پیشتها 7
اق جلسه معرفیش انتخاب شد. امروزه لوگوی جاوا به صورت
فنجان قهوهای که از آن بخار میدمد, به نماد جهانی برنامهنویسی
صفحه 5:
زبان برنامنویسی چندمنظوره و شی گرا است که تا حدودی زیادی به ت) و +۷ شباهت
دارد؛ اما استفاده از آن آسانتر است و امکان ساخت برنامههایی قدرتمند با ن وجود دارد. البته
تعریفی که شرکت سان مایکروسیستمز در سال ۲۰۰۰ ارائه کرده لست. شاید از تعریف فوق
گویاتر باشد؛
جاوا زبان رلینهای ساده. شیگرا. مناسب شبکه. تفسیرشدنی؛ مستحکم. امن» فارغ از معماری»
پرتابل. با عملکرد بالاه چندنخی و دینامیک است.
JAVA Java Java Java"
صفحه 6:
ادامه جاوا چیست؟
see
جاوا در ابتدا بر اساس زبانهای -) و ++2) وبا حذف برخی ویژگیهلیی که قابلیت سردرگم
کننده داشتند مدلسازی شد. از جمله لین ویژگیها میتوان به اشارهگرهاء پیادهسازی چندباره
ورائت و بارگذاری بیش از حد عملگرها اشاره کرد که در جاوا حذف شدند. یکی از
ویژگیهایی که در 2/++) وجود نداشت؛ اما جزو ویژگیهای اساسی جاوا به شمار میآید.
امکان بازیافت cI Qarbage-collection) abil> که به طور خودکار اشیا و
آرایههای بی استفاده را حذف میکند.
*جاوا یک زبان مبتنی بر شبکه است
کتابخانه وسیع شبکه در جاوا باعث شده است که امکان کار جا پروتکل کنترل انتقال/پروتکل
اینترنت (۲0:۳/۱۳) و پروتکلهای شبکه مانند ۳۱۲۲۳ (پروتکل انتقال ابرمتن) و ۴۴
(پروتکل انتقال فایل) سادهتر شود و همچنین وظیفه ایجاد لتصالهای شبکه آسانتر گشته
است. به علاوه برنامههای جاوا میتوانتد از طریق شبکه ۰۲0۳/1۴ از طریق -اآلاهاء به اشیا
٠ سی داشته باشند ولين دسترسی به همان سادکن دسترسی روی سیستم فایل م1
صفحه 7:
*جاوا يك زبان تفسير شده است
چگ برنامه جاوا در زمان لجرا به طور غير مستقيم مز طريق يك ماشین مجازی (که بازتایی
نرمافزاری از یک پلتفرم فرضی است) و محیط زمان اجرای مرتبط با آن با واسطه روی یک پلتفرم
2-۰ (مانتد ویندوز یا لینوکس) اجرا میشود. لین ماشین مجازی بایتکدها (دمتورا [ 1
و دادههای مرتبط) رالز طریق تفسیر به دستورلمملهای خاص پلتفرم ترجمه میکند. منظور از
تفسیره عمل شناسایی معنی دسئورالعملها و سپس انتخاب دستورالعملهای خاص پلتفرم بر
اجرا است. در ادامه ماشین مجازی لین دستورالعملهای خاص پلتفرم را اجیط میکند. لین ویژگی
تفسیری بودن جاوا باعث شده است که خطایابی برنامههای جاوا آسانتر شود. چون [غلب
اطلاعات در زمان کامپلیل در واقع در محیط اجرا وجود دارند. تفسیری بودن جاوا همچنین امکان
ابه تأخیر انداختن پیوند بین قطعات مختلف برنامه جاوا تا زمان اجرا را فراهم ساخته است و این
له موجب افزایش سرعت توسعه برنامه میشود:
صفحه 8:
*جاوا یک زبان امن است
برنامههای جاوا در محیطهای شبکهبندی شده/ توزیع یافته مورد استفاده قرار میگيرند. از
آنجا که برنامههای جاوا میتوانند روی پلتفرمهای مختلف شبکه اجرا شوند. امن ساختن این
پلتفرمها در برابر کدهای مخرب که موجب گسترش ویروسها. سرقت اطلاعات کارتهای
پاتکی یا اجرای اعمال خرابکارلنه میشوند. امری حلئز اهمیت است. ویگیهایی که موجب
استحکام زبان جاوا میشوند شامل کنار گناشتن اشارهگرها هستند که به همراه ویژگیهای
امنیتی مانتد مدل امن 53110100 جاوا و رمزنگاری کلید عمومی فعالیت میکنند. این دو
نوع از ویژگیها در کنار هم از تأثیر ویروسها و دیگر کدهای خطرناک روی پلتفرمهای
مشکوک جلوگیری میکنند. جاوا از لحاظ تثوریک امن است؛ اما در عمل آسیبپذیریهای
آمنیتی مختلفی شناسایی و مورد نوهاستفاده قرار گرفته است. در نتيجه در زمانهای قبل؛
شرکت سان مایکروسیستمز و اینک شرکت اوراکل همواره اقدام به انتشار بهروزرسانیهای
آمنیتی برای جاوا میکنند.
صفحه 9:
oe تال مت
عدم وابستگی به معماری موجب شدن جاوا شده است. با لین حال پرتابل بودن جاوا
چیزی فراتر از مستقل بودن دستورالعملهای بایتکدها از پلتفرم است. برای مثال در نظر
بگیرید که اندازه نوع عدد صحیح روی پلتفرمهای مختلف یکسان خواهد بود. برای نمونه یک
نوع عدد صحیح ۳۲ بیتی. صرفنظر از لین که روی پلتفرمهای با رجیسترهای ۱۶ بیتی. ۲۲
دی با ۶۲ بیتی پردازش شود؛ در هر حال به صورت علامتدار بوده و ۳۲ بيت أز حافتلا ١١
اشغال میکند. کتابخانههای جاوا نیز به پرتابل بودن آن کمک میکنند. این کتابخانهها در
موارد ضرورىء لنواع دادهای را ارلئه میکنند که به روشی تا حد امکان پرتلبل. کد جاوا را به
9 وی خاس پلتفرم متصل میسازد.
صفحه 10:
*جاوا یک زبان پویا (دبنامیک) است
به دلیل ارتباطهای متقلبل بین کد برنامه و کتابخانها که در زمان "جرا به صورت دینامیک
صورت میپذیرند. نیازی به ایجاد لینک صریح بين آنها وجود ندارد. در نتیجه زمانی که یک
برنامه یا یکی از کتایخانههای آن تکامل sage (براى مثال باك اصلاح میشود يا عملكرك
بهیود مىيلبد) توسعهدهنده تنها بايد برنامه يا كتابخلنه بهروزرسانى شده را منتشر سازد. با
ن که رفتار دینامیک جاوا موجب شده لست به کد کمتری هنگام تفییر کد نیاز باشده اما
روش انتشار میتولند موجب تداخلهایی نیز بشود. برای نمونه یک توسعهدهنده ممکن
است یک نوع کلاس را از یک کتابخلنه حذف کند یا نام ن را تغيير دهد. وقتی شرکتی
کثابخانه به روز شده را منتشر میکند. برنامههای موجود که به آن نوع کلاس وابسته هستند.
از کار میافتند. براى حل اين مشكل جاوا از نوع رابط 006 1۳6۳۲36 پشتیبانی
میکند که مانند تعامل بین دو طرف است.
با توجه به ویژگیهای فوق متوجه میشویم که جاوا علاوه بر نوعی زبان. یک پلتفرم
برنامهنویسی نیز محسوب میشود. لین پلتفرم از دو بخش مهم تشکیل یافته است که شامل
ماشین مجازی جاوا و محیط اجرایی جاوا است.
صفحه 11:
ریشههای پیدایش جاوا
جاوا از سوی تیمی در شرکت سان مایکروسیستمز به رهبری جیمز گاسلینگ توسعه يافته و در
سال ۱۹۹۵ منتشر شد. این زبان متعاقباً از سوی شرکت اوراکل خریداری شده است.
هدف bel خالقان جاوا این بوده که زبانی را ایجاد کنند که بتوانند آن را روی کاربردهای
مصرفی اجرا کنند. لین طراحان میتوانستهاند دنیلیی را تصور کنند که در ن کدها روی بخچال
یا دستگاه توستر اجرا میشوند. یعنی آن چه که امروز به نام اینترنت اشیا میشناسیم. ما تنها در
طی سالهای اخیر دستگاههایی ساختهايم که چنین قابلیتهایی داشته باشند و از لین رو باید
گفت که این طراحان اولیه بسیار از زمان خود جلوتر بوداند. هدف طراحی این زبان منجر به
چنین معماری برای لن شده است. یکی از شعارهای مهم زبان برنامه جاوا چنین است: «یک بار
پیس, همه جا اجرا کن» به بیان دیگر شما با جاوا میتوانید کدی بنویسید که أن را برای
اجرای روی هر نوع دستگاهی کامپایل کنید.
صفحه 12:
ادامه ریشههای پیدایش جاوا
تکته جللب این است که جاوا به دلیل لین ویژگی خود محبوب نشده است؛ بلکه از مریت
فناوری نوظهوری که در همان نیمههای دهه ٩۰ میلادی ظهور یافت و چهره دنیا را دگرگون
ساخت بهره گرفت؛ منظور ما فناوری وب است. جاوا لین قابلیت را داشت که با آن میشد
برنامههایی به نام :20016 نوشت. لین اپلتها برنامههای کوچکی بودند که میشد داخل
مرورگرهای وب آنها را اجرا کرد. با رشد خیرهکننده وب جاوا نیز سوار لين موج شد و به
یک زبان برنامهنویسی بسیار محبوب تبدیل شد. بدین ترتیب علیرغم این که قصد اولیه
طراحان این زبان چیز دیگری بود؛ اما بسیاری از وب اپلیکیشنها به زبان جاوا نوشته شدند,
واقعیت این لست که طراحان اولیه زبان برنامهنویسی تا حدود زیادی تحت تا
مانتد ن) و +ب) بودهاند و جاوا نیز شباهتهای دستور زبائی ز
خالقان جاوا از لین زبانها به عنوان نمونهای برای انجام کارها استفاده کردند و از این رو
ویژگیهای خاصی وجود داشتند که طراحان جاوا قصد نداشتند در جاوا آنها را پیادهسازی
شده بود که در ) و )++ موجب بروز مشكلاتى مى شوند.
صفحه 13:
مروری بر پلتفرم جاوا
جاوا هم یک زبان برنامهنویسی و هم پلتفرمی برای اجرای کد جاوای
1[ شده است. اين پلتفرم به طور عمده شامل زاس ۲۰۱
محيط اجرايى 0 شامل میشود که از اجرای۷۲( روی
زیرساختی .
wl Sag
ee
| execute
Interpretertrr Comper | S*eestel
[oma nate trtertace cate
| Native Piattorm |
۷ شاملی کمولفه »uL. classloader. Meets) 9
ر و کامپایلر در جا براعب ارگذاری تأیید و اجرایی کف ا
صفحه 14:
ادامه مروری بر پلتفرم جاوا
در پخش فوقانی نمودار صفحه ی قبل یک سری از فایلهای کلاس برنامه را مشاهده میکنید که
یکی از آنها به نام فایل کلاس اصلی نامیده شده است. برنامه جاوا دست كم بايد يك فايل كلاس
اصلی داشته باشد که نخستین کلاسی است که بارگذاری. تأیید و اجرا خواهد شد.
بر کنابیک اسرا به مولفه 6185510806۲ میسپرد. whl Classloader
ااسرا از منابع مختلفمانند مسیستههای فایلل شبکهها و فایلا ف_شرده ب ارگناریم یک :
لیرمولفه. |۷۷[ را از مسائلو مشکلاتمرتبط با بارگناریک لاسبر جر میدارد.
فت هل لاس بارگذاری شده در حافظه نگهداری میشود ونبه صورت یک شی ابا ۱۰۰۳
Class os نمایش میيابد. هنگام بارگذاری؛ ۷6۲166۲ 0۱/6006 دستورالعملهای
مختلف بایتکد را بررسی میکند تا مطمثن شود که معتبر هستند و امنیت را به مخاطره
نمیاندازند.
اگر بایتکد فلیل کلاس معتبر نباشد. ۷1۷[ خاتمه مییابد. در غیر این صورت مولفه مفسر آن:
بایتکد را یک به یک به دستورالعملها تفسیر میکند. در این فرایند تفسیر, دستورالعملهای
بایت کد شناسایی شده و دستورالعملهای بومی معادل آنها اجرا میشوند.
برخی توالیهای دستورالعملهای بایتکد بیش از دیگر موارد تکرار میشوند. وقتى مفسر اين
موقعیت را تشخیص میدهد. کامپایلر درجای JVM نام ۲ ال لین توالیهای بایتکد رابه کد
بومی کامپایل میکند تا سریعتر اجرا شون
صفحه 15:
در زمان اجرا. مفسر معمولا با درخواستی برای اجرای بایتکد فایل کلاس دیگر مواجه
میشود که به لین برنامه يا یک کتابخلنه تعلق دارد. در چنین مواردی 125510306۳
فایل کلاس را بارگذاری میکند و ۷6۲1۴6۲ 966006 بایتکد فایل كلاس
بارگذاری شده را پیش از اجرا تأیید میکند. همچنین در زمان اجرا نیز دستورالعملهای
بایت کد ممکن است از ۷1۷[ بخواهند که یک فایل را باز کند. چیزی را روی صفحه نمایش
دهد. صدایی ایجاد کند یا وظیفه دیگری انجام دهد که نیازمند همکاری با پلتفرم بومی
است. در لین موارد !با استفاده از رلبط بومی جاواا لا[ که یک پل فناوری برای تعامل
با پلتفرم بومی برای اجرای وظایف است این کار را انجام میدهد.
صفحه 16:
چه زبانهایی از جاوا مشتق
برخی زبانها مانند اسکالا56312 و گرووی/3۲00۷) وجود دارند که برلی اجرا روی
41 طراحی شدهلند و یا زبانهلیی هستند که برای اجرا روی محیط جاوا توسعه یافتهاند.
همچنین ممکن است برخی افراد ادعا کنند که زبان #07 تا حدود زیادی تحت تأثیر جاوا
توسعه یافته است. زبان سی شارپ مایکروسافت پس از جاوا توسعه یافت وبه طور خاص By
مقدار زیادی از جاوا الهام گرفته است. سی شارپ موجب برخی بهبودها در جاوا نیز شده است
و ازاين رو اين دو زبان به طور متقابل بر هم تأثیرگذار بودهاند
صفحه 17:
جاوا چه تفاوتی با جاوا اسکریپت
دارو
on
فهرست
مطالبٍ
هیچ رابطه فنی بین جاوا و جاوا اسکریپت وجود ندارد و لین دوه دو زبان کاملا مستقل هستند.
جاوا اسکریپت از سوی نت اسکیپ6]56306! در دهه ٩۰ میلادی توسعه یافته است و در
لبتدا LiveScript نامیده میشد. زملنی که نت اسکیپ دید هیچ کس از LiveScript
استفاده نمیکند و جاوا محبوبیت روزافزونی دلرد. نام آن را به جاوا اسکریبت تغییر داد ]
پتونند از لین موج محبوبیت جاوابهرهمند شوند. در واقع لین لیده موقق بود و جوا اسکریپت
نیز محبوب شد؛ اما از منظر فتی
آسمی هستند. شلید تنها مشابهت فنی بین جاوا و جاوا اسکرییت را در لین بدانيم که هر نو
آنها دستور زبانشان را از زبان برنامهنویسی -) گرفتهاند. به همین دلیل اگر با جاوا آشنا باشیده
وجود ندارد و صرفاً دارای تشابه
در این صورت یادگیری جاوا اسکریپت آسان خواهذ بود و برعکسر
صفحه 18:
فریمورکهای جاوا چه هستند؟
نکته جللب در مورد جاوا لین است که یک زبان برنامهنویسی چندمنظوره محسوب میشود و از
ogee تيطهاى بسيار متفاوتى مورد استفاده قرار میگیرد. جاوا اسول به ۰۶ ۱۱۱
روی پلتفرمهای مختلف طراحی شده است و بنابراین میتوان ol را روی ماشینهای لینوکس:
ote Sais مک ویندوز یا حتی گوشی تلفن همراه اجرا کرد. در واقع میتوان گنت که
جاوا را مىشود همه جا استفاده کرد.
با این که جاوا شايد زيان جندان سرراستى نباشد؛ اما شما مجبور نیستید کدهای جاوا را از صفر
بنویسید. فریمورکهای عللی زیادی برای جاوا وجود دارند که با آنها میتوان اپلیکیشنهای
وب. موبايل. میکروسرویس و ۵۴۱ ٩5۲ هلیی نوشت که روی ماشین مجازی جاوا اجرا
بر
فریمورکهای جاوا امکان تمرکز روی منطق تجاری اپلیکیشن به جای نوشتن کارکردهای
ابتدلیی مانند ایجاد اتصال به پایگاه دلده یا مدیریت خطاها را فرلهم میسازند. ضمناً اگر تجربه
کدنویسی با جاوا را داشته باشید. با استفاده از فریمورکها متوانید بسیار سریعتر کار
بابهتویسی را آغاز کنید. همه فریمورکها از دسئور زیان یکسانی استفاده میکنند و
| طلامها پارآدایمها و مفاهیم یکسانی از زبان برنامهنویسی جاوا ارائه میکند.
صفحه 19:
مزیتهای جاوا در چیست؟
با این که جاوا دیگر تنها زبانی نیست که برای توسعه اپلیکیشنهای
اندرویدی استفاده میشود؛ و دیگر به هیچ وجه تنها گزینه برای
برنامهنویسی وب محسوب نمیشود؛ اما جاوا همچنان در اين عرصهها
حضور دارد. همه این توفیق را نمیتوان صرفاً به قدمت آن نسبت داد,
فلذا در ادامه برخی از مزیتهای جاوا را بررسی میکنیم.
ا نویسی شیگرا
جاواء برنامهنویسی شیگرا0066۲-0۳6۳۱60) ) را کاملاً پذیرفته
لت حتظور از برنامهنویسی شیگرا سبکی از کدتویسی اس ۳۱۳۰
ul نه تنها انواع داده و ساختمان داده تعریف میشوند؛ بلکه مجموعه
توابع مورد استفاده این دادهها نیز تعریف میشوند. بدین ترتیب
۲ داده تبدیل به یک شی میشود که میتوان آن ,۱ .۱ ۲
روابطی بین شیهای مختلف دستکاری کرد.
برخلاف رویکرد متضادش یعنی برنامهنویسی Proceduralslas,
119 ) كه در أن يك توالى از دستورالعملها با استفاده از
متغيرها و توابع استفاده مىشوند؛ در برنامهنويسى شیگرا امکان
كروهبندى اين متغيرها و توزيع بر اساس زمينه ارائه شده است و از اين
صفحه 20:
ادامه مزیتهای جاوا در چیست؟
ان سطح بالا با دستور زبان ساده و یادگیری نسبتاً آسان
جاوا یک زبان سطح بالا است. یعنی شباهت زیادی با زبان انسان دارد. برخلاف زبانهای سطح
پایین که به کد ماشینی شبیه هستند. زبانهای سطح بالا بلید با استفاده از کامپایلرها و مفسرها
تبدیل شوند. لین فرایند سادهسازی موجب میشود که نوشتن, خواندن و نگهداری زبان آسانتر
شود.
جاوا دستور زبان (به معنی قواعد و ساختارهای مورد استفاده از سوی برنامهنوبسان) خود را از +
+ن) اخذ کرده است و به همین دلیل ساختاری شبیه به کد م) دارد. با لین وجود بسیار سادهتر
است وبه افراد مبتدی امکان یادگیری سریعتر فناوری و کدنویسی موثرتر برای رسیدن به نتايج
مشخص را ارائه میکند.
جاوا ممکن است به قدر پایتون برای افراد مبتدی مطلوب نباشد؛ اما هر توسعهدهندهای با درکی
مقدملتی از فریمورکهاء بستههاء کلاسها و اشیا میتولند الگوی ن را خیلی زود متوجه شود.
جاوا سرراست و دارای نوعهای کاملاً تعریف شده است که انتظارات کاملاً مشخصی دارد و بدین
سبب باعث میشود خیلی زود تفکر شما در مسیر صحیح قرار گیرد. علاوه بر آن راهنماها و
دورههای آموزشی رایگان بسیار زیادی روی اینترنت وجود دارد که به افراد مبتدی کمک میکند
جاوا را بسيار سريع بياموزند.
صفحه 21:
ادامه مزیتهای جاوا در چیست؟
*استاندارد برای محاسبات سازمانی
اپلیکیشنهای سازمانی ۴1۱۳6۲0۲156 بزرگترین دارایی جاوا هستند. لین روند به دهه ٩۰
میلادی باز ميگردد که سازمانها شروع به جستجوی ابزارهای برنامهنویسی مستحکمی کردند.
که از جنس 2) نباشند. جاوا از کتابخانههای زیادی پشتیبلنی میکند که بلوکهای سازنده هر
٩ نم سازمانی هستند و این مسئله به توسعهدهندگان کمک کرد تا هر کارکردی که ۴۹۱
شرکت لازم داشت را با استفاده از جاوط بنویسند. البته افراد با استعداد زیادی که جاوا
میدانستند نیز بیتأثیر نبود. جاوا زبانی است که در اغلب مدارس و دانشگاهها به عنوان یک
مقدمه برای برنامهنویسی رایانهای محسوب میشود. علاوه بر لین قابلیتهای یکپارچه شدن جاوا
:یار وسیع است. چون اغلب ارائهدهندههای خدمات میزبلنی از جاوا پشتیبانی میکنند. نکن
آخر این که نگهداری جاوا نسبتأ ارزان است. چون به سختافزار خاصی وابسته نیست و میتواند
روی سرورهایی از هر نوع اجرا شود.
صفحه 22:
*کاهش ریسکهای امنیتی
مکی است شنیده باشید که جاوا زبان برنامهنویسی امنی است؛ اما این گزاره کاملاً صحیح ز ۳
خود زبان نمیتواند در ply آسیبپذیریها حفاظتی ایجاد کند. بلکه برخی لز ویژگیهای آن
Ge که میتوانند شما را در برابر رخنههای امنیتی رایج محافظت کنند. نخستین ورگ 3
قاس با -) این است که جاوا از اشارهگرها استفاده نمیکند. اشارهگر شیثی است که آدرس
حافظه یک مقدار دیگر را نگهداری میکند و موجب میشود که دسترسی ناخواستهلی به حافظه
نو ویژگی دوم است که جوا یک ابزار مدیریت امتیت دازد که نوعی سیاست ۰۱ ۲۲۱۰
هر اپلیکیشن است و در آن قواعد دسترسی خاصی تعریف میشود. بدین ترتیب امکان اجرای
اپلیکیشنهای جاوا درون یک 5310000 وجود دارد و بدین ترتیب ریسک آسیب حذف
as
صفحه 23:
ادامه مزیتهای جاوا در چیست؟
*مدیریت خودکار حافظه
توسعهدهندههای جاوا به لطف مدیریت حافظه خودکار آن (/۸۱) که در زبان برنامهنویسی
سوئیفت (5۷1) نیز استفاده میشود. نباید نگران نوشتن دستی کد برای وظایف مدیریت
حافظه باشند. ضمناً gph 4 oS Cu! ot LI garbage collection) ail cal 3b
خودکار تخصیص و آزادسازی حافظه را مدیریت میکند. شاید بپرسید بازیافت حافظه دقیقً به
جه معنا است؟
كارليى يك برنامه به طور مستقيم با حافظه ارتباط دارد و حافظه محدود است. هنگام استفاده از
la, برنامهنويسى با مديريت دستى حافظه. توسعهدهندكان با ريسك فراموش كردن
تخصیص حافظه مواجه هستند که منجر به افزایش استفاده از حافظه و کند شدن برنامه و
سیستم میشود. بازیاب حافظه (60۱16610۲ 93۳0396) میتواند شیهایی که دیگر از
سوی برنامه شما ارجاعی ندلرند را شناسایی کرده و حذفشان کند. علیرغم این واقعیت که این
وضعیت روی جنبه (ا۳) برنامه تأثیر منفی می گذارد؛ اما میتوان با بهینهسازی یا تنظیم دقیق
اين تأثر منفی را کاهش داده یا به کلی از آن جلو گیری کرد.
صفحه 24:
(Multithreading) *چندنخی
نخ01 ۳۱۳68) ) در برنامهنویسی به کوچکترین واحد پردازشی گفت میشود. جاوا
ساختن بهرمبرداری از زمان [2۳1) امکان اجرای همزمان نخها را میدهد و این فرایند اجرای
الك خی نام دارد.
نخها ناحیه مشترکی از حافظه را اشغال میکنند. بنابراین سوئیج كردن بين آنها به زمان
Sail نیاز دارد. با اين حال نخها مستقل از هم هستند و از این رو اگر نخی با خطا مواجه شود.
روی نخهای دیگر تأثیری ندلرد. لین وضعیت به طور خاص در مورد بازیها و برنامههایی که
شیهای سنگین دارنده مفید اسنت:
صفحه 25:
معایب برنامهنویسی جاوا چیست ؟
اگر همه مزایای جاوا را تا اینجا خوانده باشید. شلد مشتاقلنه قصد دارید در پروژه بعدی خود از
زبان برنامهنویسی جاوا لستفاده اما از آنجا که هیچ گلی بیخار نیست. باید گفت که جاوا
"ار ی دارد که در ادامه به برخی از آنها اشاره کردهايم.
*لایسنس تجاری پولی
شرکت اورلکل اخیرا اعلام کرده است که از ابتدلی سال ۲۰۱۹ استفاده از نسخه 8 5۶ ]۵1۷[
در محیطهای تجاری, کسب و کار یا 0۳00/۵101 نیازمند پرداخت هزینه خواهد بود. بدین
ترتیب برای دریافت همه اصلاحیههای باگ و بهروزرسانیها بلید بر اساس تعداد کاربران یا تعداد
پردازندهها هزینهای پرداخت کنید.
لمروزه نسخه کنونی جاوا رایگان است و امکان بازتوزیع لّن برای محاسبات با مقاصد عمومی
وجود دارد. اما در جهت آمادهسازی برای طرح پولی؛ هر شرکت باید میزان استفاده از جاوا ر
ارزیلبی کرده و در صورتی که ارتقا به نسخه پهلی مقرونبهصرفه نباشد. به دنبال فناوریهای
صفحه 26:
ادامه معایب برنامهنویسی جاوا
3
*عملکرد پایین
هر زبان سطح بالایی خواهناخواه به دلیل مسئله کامپلیل و سطح تجرید به یک ماشین مجازی
پلید با مشکل عملکرد پایین دست و پنجه نرم کند. با لین وجود. لین تنها دلیل انتقاد عمومی
از سرعت پایین جاوا نیست. ابزار S lye Garbage collector) abil> Gib
ویژگی مفید است؛ اما متأسفانه در صورتی که بیش از ۲۰ درصد زمان eh JIL, CPU
میتواند منجر به مسائل مهم عملکردی بشود. پیکربندی کش بد نیز میتولند منجر به استفاده
بیش از حد از حافظه و کاربرد زیاد ابزار بازیلبی حافظه شود. همچنین برخی بنبستهای نخ
AIS SS که وقتی چند نخ نبعی.میکنند به منابع یکسانی دسترسی یاپند رح میدهت ۲۰۰
اين وضعيت کابوس هر توسعهدهنده جاوا یعنی خطاهای «خارج از حافظه» 0۱-0۴
رخ میدهند. با اين که هر یک از اين مسائل با برنامهریزی ماهرلنه قابل
پیشگیری هستند؛ اما در برخی موارد روی هم جمع میشوند و آسیبهای مختلفی ایجاد
ميکنند.
صفحه 27:
ادامه معایب برنامهنویسی جاوا
*جاوا روی دسکتاپ ظاهر و شمایل یکسانی ندارد
توسعهدهندگان برای ایجاد رلبط گرافیکی برنامه «ال31)) از ابزارهای مختلفی که خاص هر
زبان استفاده میکنند. بدین ترتیب برای اپلیکیشنهای اندروید نرمافزار اندروید استودیو وجود
دارد که به ایجاد اپلیکیشنهلیی که حس و ظاهر بومی دارند کمک میکند. با لین حال وقتی
در مورد لا اپلیکیشنهای دسکتاپ صحبت میکنیم. جاوا فاقد شکل و شمایل شایان ذکری
cal
چند سازنده Swing. SWT. JavaFX. JSF ast: Ul وجود دارند که برنامهتویسهای
جاوا میتوانند از میان آنها انتخاب کنند و لین مورد آخر از همه محبوبتر است. 5۷۷/1۲10
یک سازنده الات) قدیمی؛ اما مطمتن چند پلتفرمی و ادغام شده در چندین ]| شامل
ایکلیپس و 1608685 است. اما به جز در موارد استفاده از قالبهای از پیشساخته
مواردی از ناسازگاری در رابط مشاهده خواهید کرد. 5۷۷۲ از مولفههای بومی استفاده
میکند؛ اما برای الا های پیچیده مناسب نیست. pals JAVAFX تمیز و مدرنی دلرد؛ اما
جندان به بلوغ نرسيده است. هر مجموع انتخاب یک رویکرد کاملاً مناسب پرای ساخت ال
ايليكيشن نيازمند تحقيقات بيشترى است.
صفحه 28:
ادامه معایب برنامهنویسی جاوا
3
*کد طولانی و پیچیده
منظور ما از کد طولانی لین است که کدهای جاوا از کلمات زیادی استفاده میکنند. با لین که
این وضعیت هنگام تلاش برای درک زبان برنامنویسی» شلید یک مزیت به حساب بیلید؛ اما
جملههای طولانی و بسیار پیچیده باعث میشوند که کد خوانایی کمتری داشته باشد و نتوان به
سادگی ن را اسکن کرد. زبانهای سطح بالای زیادی در تلاش برای تقلید از زبان انگلیسی
silat Gorge که شلوفی زیادی در کد ایجاد شود. جاوا برای کاهش کد غیر قابل درک 67+
ایجاد شده تا برنامنویسان را وادلرد دقیقاً آنچه در نظر دارند را تلیپ کنند. همین نکته باعث
شده است که لین زبان شفافیت بیشتری برای افراد غیر خبره داشته باشد؛ اما از سوی دیگر
متأسفانه فشردگی آن کاهش یافته است.
Al جاوا رابا رقیبش پایتون مقایسه کنیم. مىبينيم كه كد يايتون نیاز به نقطهوبرگول انتهایی
ندارد و از «0۲» 3۳0«۰» و «008» به جای عملگرهای 66 «|» و «» در جوا به
عنوان عملگر استفاده میکند. به طور کلی پایتون تشریفات کفتری مانند پرانتز و آکولاد دارد.
صفحه 29:
جاوا چه کاربردهایی دارد ؟
از جاوا در توسعه اپلیکیشنهای اندرویدی» نرمافزارهای وب و دسکتاپ. بازیسازی و دیگر موارد
استفاده میشود. گستره وسیع لستفاده از جاوا باعث شده است که لین کاربردها تقریباً از چشم
پنهان بمانند وبه همین دلیل غالبا پرسیده میشود که از جاوا در کجا میتوان استفاده کرد. در
ادامه برخی از زمینههای کاربرد جاوا را فهرست کردهايم:
۳ نهای اندرویدی
با وجود رشد گسترده کاتلین (60110)؛ جاوا همچنان زبان پیشفرض برای اپلیکیشنهای
آنذرویدی محسوب میشود که به طور خودکار جمع عظیمی از توسعهدهندگان جاوا را به
برنامهنویسان اندروید تبدیل کرده است. با لین که اندروید از 5101 81301010 به جاى 016[
استفاده میکند؛ اما کد آن همچنان به صورت جاوا نوشته میشود.
*محصولات نرمافزاری ۱
علاوه بر ۳۵000۵ و be Apache Storm برای Eclipse. stu!
۸2550 ,6۳0۵۱ ,006۳۱0۵۲۲166 و بسیاری از موارد دیگر مورد استفاده قرار گرفته
است.
*برنامههای مالی
جاوا با توجه به لین که یکی از پر تقاضاترین مهارتهای زبان در بخش مالی محسوب میشود.
هم در سمت سرور و هم کلاینت برای ساخت وبسایتهای مطمئن» سریع و ساده مورد استفاده
قرار میگیرد. از جاوا به عنوان زبان برنامهنویسی مناسب برای شبیهسازی و مدلسازی دادهها نیز
ee
صفحه 30:
موقعیتهای شغلی برای برنامهنویسان
و همواره +ر فهرست یتح زیان برتامهویی مجو eee
متعدد و متنوع و درآمد عللی بوده است. یک اصل مهم در مورد یادگیری زبانهای برنامهنویسی
وجود دارد که هرگز نباید فراموش کرد. و آن این است که یادگیری یک زبان برنامهنویسی خاص
111 ناوا اصرف يادكيرى لن زبان نيست» بلکه بدین ترتیب شما با همه زیانهای ۳٩
برنامهنویسی نیز آشنا میشوید. بنابرلین جاوا به عنوان یک زبان با مشخصاتی که در بخشهای
پیشین اشاره کردیم یک زبان خوب برای شروع یادگیری برنامهنویسی محسوب میشود. BES
که جاوا رابه خوبی یاد میگیرند. میتوانند هر زبان دیگری شامل ۸6. پایتون و حتی روبی را
3 ده سادگی بیاموزند. بنابراین باید این نکته را به خاطر داشته باشید که یادگیری لو 2
عنوان زبان برنامهنویسی شماره یک دنیا در طى قريب به دو دهه اخیر ضرورتی فرلتر از یافتن
شغل مرتبط دارد
برنامنویسان جاوا به طور عمده از جاوا برای طرلحی اپلیکیشنها و وبسایتهایی استفاده
میکنند که اجزای دینامیک درند. برخی از آنها روی اپلیکیشنها و برخی دیگر روی
وبسایتها کار میکنند اما در هر صورت اغلب توسعهدهندگان جاوا باید با مفهوم پروژه بودن
کارشان آشنا باشند.
صفحه 31:
فناوری جاوا به معنی ترکیبی از زبان برنامهنویسی جاوا و پلتفرم اجرایی آن ۷1۷[ برای توسعه
طیف گستردهای از اپلیکیشنها از دستگاههای مصرفی تا سیستمهای سازمانی ناهمگون مورد
استفاده قرار میگیرد. زبان جاوا مانند هر زبان برنامهتوبسی دیگری دستور زبان, ساختار و
پارادایم برنامهنویسی خاص خود را دارد. پارادایم برنامهنویسی این زبان مبتنی بر مفهوم
شیگرلیی است. زبان جاوا را میتوان یکی از مشتقات زبان 2) دانست و قواعد ساختاری آن بر
Caan است.
در لین مطلب سعی کردیم جمعبندی کاملی لز جوانب مختلف در مورد زبان برنامهنویسی جاوا
به عنوان محبوبترین زبان برنامهنویسی سالهای آخر در دنیا داشته باشیم و معایب و مزایای
لن را بررسی کردیم. در ادامه فریمورکهایی که برای جاوا وجود دارند را معرفی نمودیم و
ویژگیهای اين زبان را در قیاس با زبانهای دیگر به تفصیل مورد بررسی قرار دادیم. چشمانداز
بارار کار و وضعیت درآمد برنامهنویسان این زبان نیز ارائه شده است.
صفحه 32: