برای کسانی که می خواهند مطمئن شوند که هیچ چیز در برنامه نویسی اختلال ایجاد نمی کند ، ما دو دوره اضافی را آماده کرده ایم که هنگام سفارش بصورت رایگان دریافت خواهید کرد.

بنابراین ، ما اولین دوره اضافی را به شما ارائه می دهیم ، که اختصاص به همه چنگک های دردناکی است که ممکن است در راه خود مواجه شوید:

به عنوان هدیه: 5 اشتباه مرگبار
برنامه نویس تازه کار

دوره فیلم آموزشی


  • چگونه نتوان برنامه نویسی یاد گرفت؟
  • چه چیزی می تواند تمام تلاش های شما را باطل کند؟
  • چه نوع آموزشی بهترین نتیجه را می دهد؟
  • قیمت دانش نظری چقدر است؟
  • آیا دانشگاه ها به شما در تسلط بر برنامه نویسی کمک می کنند؟
  • برای رسیدن به نتیجه خوب چگونه باید تمرین کنید؟
  • "ستاره راهنمای" شما در برنامه نویسی چه باید باشد؟
  • چگونه می توان از آنچه نیازی نیست ، علف هرز کرد؟

همه این پاسخ ها در انتظار شما هستند:

دوره آموزشی فیلم
5 اشتباه مهلک یک برنامه نویس مبتدی

تا پایان تبلیغات باقی مانده است:

  • دقایق
  • ثانیه ها

اکنون در ردیف بعدی ، دوره دوم اضافی از 7 ماژول وجود دارد که با استفاده از آنها می توانید به راحتی در برنامه نویسی از زبان انگلیسی استفاده کنید.

اطلاعات تماس نویسندگان دوره

شاید در فرایند یادگیری بخواهید چیزی را روشن کنید یا با نویسندگان دوره مشورت کنید. برای این مورد است که ما اطلاعات تماس خصوصی نویسندگان دوره را به شما ارائه می دهیم - دوره با چنین کارت همراه با مخاطبین برای ارتباط همراه خواهد بود. با آنها شما از هیچ مشکلی در برنامه نویسی نمی ترسید!

مطمئن باشید با هر مشکلی که روبرو هستید مشاوره عملی و راه حلی برای وضعیت خود از ما دریافت خواهید کرد.

(لطفاً شب ما را اذیت نکنید ، ما معمولاً شب می خوابیم ، البته نه همیشه ؛-))


به عنوان هدیه: آموزش کتاب
"برنامه نویسی از ابتدا"

همانطور که احتمالاً می دانید ، نوشتن برنامه های کامل ویندوز در JAVA بسیار دشوار است ، استفاده از زبان شخص ثالث برای کار با ویندوز آسان تر است.

اگر به یادگیری زبان های برنامه نویسی دیگر فکر کرده اید ، این کتاب به شما دانش لازم برای توسعه در سایر زبان های برنامه نویسی را می دهد که می تواند برنامه های JAVA شما را تکمیل کند.

برای تسلط کامل بر همه برنامه نویسی:

هنگام سفارش "JAVA از ابتدا" این آموزش را نیز دریافت خواهید کرد
رایگان است!

تا پایان تبلیغات باقی مانده است:

  • دقایق
  • ثانیه ها

دستورالعمل تصویری مدیریت خود
به عنوان هدیه: ضربه جادویی
برای یادگیری برنامه نویسی

  • برای کسانی که می خواهند چگونگی برنامه نویسی را بیاموزند ، اما چیزی دائماً مانع آن می شود
  • برای کسانی که نمی توانند خودشان را بیاموزند تا برنامه نویسی کنند
  • تقویت انگیزشی و عاطفی قدرتمند برای یادگیری برنامه نویسی
  • بدون مجبور کردن خود به آنچه می خواهید برسید!

فرض کنید قطعاً باید برنامه نویسی یاد بگیرید! فقط چگونه خود را مجبور به انجام این کار کنید؟ چگونه شروع کنیم؟ چگونه می خواهید وقت بگذارید؟ برای این ، این دوره ویدئویی ایجاد شده است ، انگیزه انگیزشی زیادی به شما می دهد.

قیمت: 4370 روبل (87.4 دلار)

این دوره را همچنین هنگام سفارش "JAVA از ابتدا" به صورت رایگان دریافت خواهید کرد!

تا پایان تبلیغات باقی مانده است:

  • دقایق
  • ثانیه ها

اما این تمام نیست!

برای اینکه شما را در هر موقعیتی هرچه بیشتر شاد و کامل کنیم ، دو هدیه دیگر به شما خواهیم داد:

این بدان معناست که نتیجه هر کار یک برنامه آماده خواهد بود که می تواند به درد شما و دوستانتان بخورد!

هر ماژول آموزشی با تکالیف ویژه ای همراه است که توسط معلمین حرفه ای مرکز ما تهیه شده و پس از اتمام آن دانش به تازگی را به خاطر می آورید و تثبیت می کنید. علاوه بر وظایف معمول ، برخی از ماژول ها دارای وظایف با افزایش پیچیدگی هستند. همه تکالیف در یک دوره خاص اضافه می شوند.

اجرای D / C نقش اصلی را در دریافت گواهینامه آموزش در مرکز برنامه نویسی آرتم کاشواروف ایفا می کند.

دو ساعت مشاوره

قیمت: 2000 روبل (62.2 دلار)

به خصوص برای مشتریان VIP ، ما امکان مشاوره های فردی را با شخص بنیانگذار مرکز خود ، آرتیم کوشاروف ، ارائه داده ایم. به دلیل مشغله زیاد ، معمولاً نمی تواند به همه و در همه مسائل مشاوره دهد.

اما همیشه گزینه "خرید" وقت او وجود دارد. (این کار معمولاً از طریق این فرم انجام می شود -)

هزینه معمول مشاوره / دروس فردی 1000 روبل است. در ساعت

با دوره "JAVA از ابتدا" چنین کارتی با دو ساعت مشاوره رایگان با آرتم کاشواروف ضمیمه خواهد شد.

مشاوره ها در مورد موضوعات مختلف برگزار می شود - این می تواند دروس جداگانه به هر زبان ، مشاوره در مورد توزیع و کسب درآمد از برنامه های شما و پروژه های اینترنتی و همچنین هر گونه کمک دیگری باشد که وی می تواند به شما ارائه دهد.

هنگام سفارش دوره "JAVA از ابتدا" دو ساعت مشاوره فردی با Artyom Kashevarov بصورت رایگان دریافت خواهید کرد

چگونه می توان برای شرکت در دوره سفارش داد؟

متأسفانه ، در حال حاضر شما قادر به سفارش دوره "JAVA از ابتدا" نخواهید بود. اکنون او دوره های پیش فروش را می گذراند - دیسک ها مهر می شوند ، چاپ چاپ می شود. این دوره روزانه برای سفارش و شرکت در دسترس خواهد بود ، اما فقط برای اعضای مرکز برنامه نویسی ما. بعدا (حدود 2-3 ماه دیگر) در دسترس همه قرار خواهد گرفت. ما در وهله اول می خواهیم شرکت کنندگان مرکز ما همه موارد مفید را دریافت کنند.

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

تعداد شرکت کنندگان محدود است: 150 86 نفر (محدودیت فنی)

زبان جاوا معرفی.

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

غیرممکن است به یاد داشته باشیم که رادیو عمومی ملی تابحال یک برنامه ده دقیقه ای را به یک زبان برنامه نویسی اختصاص داده است. خوب یا بد بستگی به دیدگاه دارد. یک سرمایه گذاری 100 میلیون دلاری در تولید نرم افزاربا استفاده از یک زبان برنامه نویسی خاص ایجاد شده است؟! CNN ، CNBC و سایر رسانه ها فقط درباره چگونگی صحبت کردند و هنوز هم صحبت می کنند زبان جاوا و این می تواند ، و آن را انجام خواهد داد.

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

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

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

جاوا به عنوان یک ابزار برنامه نویسی

مثل یک زبان برنامه نویسی جاوا از وعده های تبلیغاتی خود فراتر رفت. بدون شک این یکی از بهترین زبانهادر دسترس برنامه نویسان جدی جاوا توانایی یک زبان برنامه نویسی عالی را دارد اما احتمالاً اکنون خیلی دیر شده است. هنگامی که یک زبان برنامه نویسی جدید ظاهر می شود ، بلافاصله مشکل ناسازگار سازگاری با نرم افزار ایجاد شده قبلی بوجود می آید. علاوه بر این ، حتی اگر تغییرات در این برنامه ها بدون تداخل در متن آنها انجام شود ، برای سازندگان زبانی که با استقبال گسترده مردم از جمله جاوا روبرو شده است ، دشوار است که مستقیماً بگویند: "بله ، ممکن است هنگام توسعه نسخه X اشتباه کرده باشیم ، اما نسخه Y بهتر خواهد بود. " در نتیجه ، در حالی که منتظر پیشرفت های بعدی هستیم ، باید بیان کنیم که ساختار زبان جاوا در آینده نزدیک تغییر چشمگیری نخواهد کرد.

سوال واضح این است: " چگونه زبان جاوا را بهبود بخشید؟". معلوم می شود که این کار نه با بهبود زبان برنامه نویسی ، بلکه با تغییر بنیادی کتابخانه های برنامه های نوشته شده به زبان جاوا. Sun Microsystems همه چیز را تغییر داده است: شروع با نام توابع کتابخانه های مختلف (معنی دارتر کردن آنها) و روش کار ماژول های گرافیکی ( تغییر روش پردازش رویدادها و بازنویسی نسبی برنامه های کاری) و پایان دادن به ایجاد خصوصیات جدید زبان ، به عنوان مثال ، ابزار خروجی اطلاعات برای چاپ ، که در نسخه های جاوا 1.0 نتیجه یک پلت فرم نرم افزاری بسیار مفیدتر از هر چیزی است نسخه های قبلی زبان جاوا

مایکروسافت محصول اختصاصی خود را با نام J ++ منتشر کرده است که مربوط به زبان جاوا است. J ++ هنگام اجرای بایت کد توسط ماشین مجازی جاوا (ماشین مجازی جاوا) تفسیر می شود ، اما رابط های زبان ها با کدهای خارجی تفاوت قابل توجهی دارند. زبانهای J ++ و Java تقریباً نحو یکسانی دارند. با این حال ، مایکروسافت ساختارهای زبانی دیگری ایجاد کرده است. همه آنها به استثنای Windows API دارای ارزش مشکوکی هستند. علاوه بر این که این زبان ها نحو یکسانی دارند ، کتابخانه های اصلی آنها (رشته ها ، برنامه های کاربردی ، ابزار برنامه نویسی شبکه ، ابزارهای چند رشته ای ، کتابخانه های ریاضی و غیره) اساساً یکسان هستند.

با این حال ، کتابخانه های گرافیکی ، رابط کاربری و دسترسی شی از راه دور بین این زبانها کاملاً متفاوت است. مایکروسافت در حال حاضر دیگر از J ++ پشتیبانی نمی کند ، زیرا زبان جدیدی به نام C # توسعه داده است که شباهت های زیادی به جاوا دارد اما از ماشین مجازی دیگری استفاده می کند. این کتاب J ++ یا C # را توصیف نمی کند.

مزایای زبان جاوا

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

2) مزیت دیگر این است که نحو زبان جاوا مشابه نحو زبان C ++ است و برنامه نویسان که زبان C و C ++ را می دانند به راحتی فرا می گیرند... درست است ، برای برنامه نویسان که زبان Visual Basic را می دانند ، این نحو ممکن است غیرمعمول باشد.

اگر شما هرگز در ++ C برنامه نویسی نکرده اید ، ممکن است برخی از اصطلاحات استفاده شده در این بخش برای شما روشن نباشد. در این صورت می توانید از آن صرف نظر کنید. با رسیدن به پایان فصل 6 ، این اصطلاحات برای شما آشنا می شوند.

3) همچنین ، جاوا - زبان کاملاً شی گرا ، حتی بیشتر از C ++... همه موجودات در جاوا شی هستند ، به استثنای چند نوع ابتدایی مانند اعداد. (از آنجا که توسعه پروژه های پیچیده با برنامه نویسی شی گرا آسان است ، جایگزین برنامه نویسی ساختار یافته قدیمی می شود. اگر با برنامه نویسی شی گرا آشنایی ندارید ، فصل های 3-6 همه آنچه را که باید در مورد آن بدانید به شما ارائه می دهند.)

با این حال ، توسعه یک گویش دیگر ، کمی بهبود یافته ، از زبان C ++ کافی نیست. از اهمیت اساسی برخوردار است که تهیه برنامه های بدون خطا در جاوا آسانتر از C ++ است. چرا؟ توسعه دهندگان زبان جاوا مدتها در این فکر بودند که چرا برنامه های نوشته شده با C ++ اینقدر مستعد خطا هستند. آنها زبان جاوا را با ابزارهایی فراهم کردند تا امکان ایجاد برنامه هایی که رایج ترین خطاها را پنهان می کنند ، از بین ببرند. برای این کار زبان جاوا موارد زیر را انجام داده است.

4) امکان تخصیص صریح و آزادسازی حافظه منتفی است.
حافظه جاوا به طور خودکار توسط جمع آوری زباله بازیابی می شود. برنامه نویس در برابر خطاهای مربوط به سو mis استفاده از حافظه تضمین می کند.

5) آرایه های واقعی را معرفی کرد و حساب اشاره گر را ممنوع کرد.
اکنون برنامه نویسان ، به دلیل استفاده نادرست از اشاره گرها ، نمی توانند داده ها را از حافظه پاک کنند.

6) امکان اشتباه گرفتن اپراتور انتساب با اپراتور مقایسه برابری را از بین برد.
اکنون حتی نمی توانید دستور if (ntries \u003d 3) را کامپایل کنید. ... ... (ممکن است برنامه نویسان ویژوال بیسیک در اینجا به هیچ وجه مشکلی مشاهده نکنند ، زیرا این خطا منشا بسیاری از سو تفاهم ها در C و C ++ است).

7) ارث چندگانه مستثنی است. با مفهوم جدیدی جایگزین شده است - رابطی که از زبان Objective C گرفته شده است.
در حالی که از پیچیدگی مدیریت سلسله مراتب کلاس جلوگیری می کند ، رابط کاربری تقریباً هر آنچه را که می تواند از وراثت چندگانه بدست آورد ، به برنامه نویس می دهد.

ویژگی های زبان جاوا

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

ما قبلاً در بخش آخر به برخی از این نکات پرداخته ایم. در این بخش ، ما: نقل قول هایی از کتابچه راهنمای زبان جاوا را ارائه می دهیم که ویژگی های زبان را نشان می دهد. اجازه دهید ما با توجه به تجربه خود با آخرین نسخه ، نظرات خود را در مورد برخی از خصوصیات زبان با خوانندگان در میان بگذاریم.

جلگه

ما می خواستیم سیستمی را ایجاد کنیم که برنامه ریزی آن آسان باشد ، به آموزش اضافی نیاز ندارد و استانداردهای برنامه ریزی شده و عملی را در نظر می گیرد. بنابراین ، اگرچه ما زبان C ++ را برای این اهداف نامناسب می دانستیم ، اما زبان جاوا برای دسترسی بیشتر به سیستم ، تا حد امکان شبیه به آن طراحی شده است. زبان جاوا فاقد بسیاری از ویژگی های C ++ است که به ندرت استفاده می شود ، مبهم و مبهم است ، که به نظر ما بیشتر از این که به ضرر باشد ، آسیب می رساند.

نحو جاوا اساساً نسخه پاک شده نحو C ++ است. این زبان فاقد پرونده هدر ، حساب اشاره گر (و خود اشاره گرها) ، ساختارها ، اتحادیه ها ، اضافه بار اپراتور ، کلاس های پایه مجازی و غیره است. (تفاوت بین جاوا و C ++ در یادداشت های C ++ که در سراسر کتاب پراکنده شده است شرح داده شده است.) با این حال ، توسعه دهندگان به دنبال اصلاح تمام کاستی های زبان ++ C نبودند.

به عنوان مثال ، دستور دستور switch در جاوا بدون تغییر مانده است. با دانستن زبان C ++ ، انتقال به نحو جاوا آسان خواهد بود.
اگر معمولاً از یک محیط برنامه نویسی بصری (مثلاً ویژوال بیسیک) استفاده می کنید ، زبان جاوا برای شما پیچیده به نظر می رسد.
نحو آن غالباً خیلی عجیب به نظر می رسد (اگرچه درک معنای عبارت کار دشواری نیست). از همه مهمتر ، زبان جاوا به برنامه نویسی بسیار بیشتری نیاز دارد. زیبایی ویژوال بیسیک این است که محیط برنامه نویسی بصری آن به شما امکان می دهد تقریباً به طور خودکار یک زیرساخت برنامه ایجاد کنید. دستیابی به همان نتیجه با جاوا نیاز به برنامه نویسی دستی دارد ، اما منجر به برنامه های بسیار کوتاهتری می شود.

با این وجود ، نوع سوم محیط برنامه نویسی وجود دارد که به شما امکان می دهد با استفاده از فناوری "کشیدن و رها کردن" برنامه ایجاد کنید.

جنبه دیگر سادگی ، اختصار است. یکی از اهداف زبان جاوا امکان توسعه برنامه هایی است که می توانند به طور کاملاً مستقل بر روی ماشین های کوچک اجرا شوند. اندازه اصلی مترجم و پشتیبانی کلاس حدود 40 کیلوبایت است. کتابخانه ها و ابزارهای موضوعی استاندارد (به خصوص میکروکرنل خود مختار) 17: KB دیگر می گیرند.
این موفقیت بزرگی است. با این حال توجه داشته باشید که کتابخانه های پشتیبانی GUI بسیار بزرگتر هستند.

شی گرا

به زبان ساده ، برنامه نویسی شی گرا یک تکنیک برنامه نویسی است که روی داده ها (یعنی اشیا) و ابزار دستیابی به آنها متمرکز است. به قیاس با نجاری ، صنعتگر شی گرا عمدتا بر روی صندلی ساخته شده متمرکز شده است و فقط در مرحله دوم او به ابزار مورد نیاز برای انجام آن علاقه مند است. در همان زمان ، نجار غیر شی گرا فقط به ابزار خود فکر می کند. خصوصیات شی گرا Java و C ++ اساساً یکسان هستند.

شی گرایی در 30 سال گذشته ارزش خود را ثابت کرده است و بدون آن تصور یک زبان برنامه نویسی مدرن غیرممکن است. در واقع ، ویژگی های شی گرا زبان جاوا با زبان C ++ قابل مقایسه است. تفاوت اصلی بین آنها در مکانیسم وراثت چندگانه است ، که زبان جاوا بهترین راه حل را برای آن پیدا کرده است ، و همچنین در مدل متا کلاس زبان جاوا.

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

اگر هرگز به زبان های شی گرا برنامه نویسی نکرده اید ، فصل 4-6 را با دقت بخوانید. این فصل ها اصول برنامه نویسی شی گرا را پوشش می دهد و مزایای توسعه پروژه های پیچیده را نسبت به زبانهای سنتی و رویه گرا مانند C یا Basic به شما نشان می دهد.

توزیع شده

جاوا دارای یک کتابخانه بزرگ از برنامه های انتقال داده بر اساس TCP / IP (پروتکل کنترل انتقال / پروتکل اینترنت) ، HTTP (پروتکل انتقال متن فوق العاده) یا FTP (پروتکل انتقال فایل) است. پروتکل انتقال فایل). برنامه های نوشته شده به زبان جاوا می توانند اشیا را باز کرده و از طریق شبکه با استفاده ازURL ها (موقعیت منبع یکنواخت) به آسانی آسان هستند شبکه محلی.

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

Servlets توسط بسیاری از وب سرورهای محبوب پشتیبانی می شود. (شبکه در جلد دوم پوشش داده خواهد شد.) ارتباط بین اشیا distributed توزیع شده در جاوا توسط یک مکانیزم فراخوانی روش از راه دور (موضوعی که در جلد دوم نیز پوشش داده شده است) فراهم می شود.

قابل اعتماد

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

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

اگر قبلاً به زبانی ویژوال بیسیک یا COBOL برنامه نویسی کرده اید که صریحاً از اشاره گر استفاده نمی کند ، ممکن است دلیل اهمیت این مسئله را درک نکنید. برنامه نویسان C اقبال کمتری دارند. آنها برای دسترسی به رشته ها ، آرایه ها ، اشیا، و حتی پرونده ها به نشانگرها نیاز دارند. هنگام برنامه نویسی به زبان ویژوال بیسیک ، هیچ یک از این موارد مورد نیاز نیست و برنامه نویس نگران تخصیص حافظه برای این موجودات نیست. از طرف دیگر ، پیاده سازی بسیاری از ساختارهای داده به زبان غیر اشاره گر بسیار دشوار است. برای ساختارهای رایج مانند رشته ها و آرایه ها ، اشاره گرها مورد نیاز نیست. قدرت اشاره گرها فقط در مواردی به کار می آیند که بدون آنها نمی توانید کار کنید ، مانند ایجاد لیست های پیوندی. برنامه نویس جاوا برای همیشه از اشاره گرهای بد ، تخصیص نادرست و نشت حافظه آزاد است.

بی خطر

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

در چاپ اول ، ما نوشتیم: "هرگز هرگز نگو" و حق با ما بود. گروهی از کارشناسان امنیتی دانشگاه پرینستون اندکی پس از انتشار اولین نسخه JDK ، اولین اشکالات امنیتی را در Java 1.0 کشف کردند. علاوه بر این ، هم آنها و هم متخصصان دیگر ، اشکالات بیشتری را در مکانیسم های امنیتی نسخه های بعدی زبان جاوا پیدا کردند.

از جنبه مثبت این وضعیت ، تیم توسعه زبان جاوا تحمل صفر خود را در برابر هر گونه اشکال امنیتی اعلام کرد و بلافاصله رفع مشکلات موجود در مکانیسم امنیتی applet را آغاز کرد. به ویژه ، Sun با انتشار مشخصات داخلی مفسر جاوا ، یافتن اشکالات امنیتی پنهان را بسیار آسان تر کرده و برای یافتن آنها کارشناسان مستقلی را به کار گرفته است.

این احتمال را افزایش می دهد که به زودی تمام خطاهای امنیتی کشف شود. در هر صورت ، فریب سیستم امنیتی زبان جاوا بسیار دشوار است. اشکالات یافت شده تاکنون ظریف و (نسبتاً) کوچک بوده است.

صفحه وب امنیتی Sun دارای نشانی اینترنتی زیر است: http://java.sun.com/sfaq/.

در اینجا برخی از شرایطی که سیستم امنیتی جاوا از آنها جلوگیری می کند آورده شده است.

1) سرریز پشته از یک برنامه اجرایی ، که ناشی از گسترش یک "کرم" بدنام در اینترنت است.

2) آسیب به قسمت های حافظه خارج از فضای اختصاص یافته به فرآیند.

3) بخوانید و بنویسید پرونده های محلی با استفاده از یک بارگذار کلاس امن ، مانند یک مرورگر وب ، که دسترسی به چنین پرونده ای را مجاز نمی داند.

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

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

سازوکار تحویل کد جایگزین ارائه شده توسط مایکروسافت به فناوری ActiveX متکی است و فقط از امضاهای دیجیتالی برای امنیت استفاده می کند. بدیهی است که این کافی نیست - هر کاربر از نرم افزار مایکروسافت می تواند تأیید کند که برنامه های سازندگان معروف اغلب به طور غیر طبیعی خاتمه می یابند ، در نتیجه خطر خرابی داده ها ایجاد می شود. امنیت جاوا بسیار مطمئن تر از فناوری ActiveX است زیرا از همان لحظه شروع کار برنامه را کنترل می کند و از آسیب رساندن آن جلوگیری می کند.

معماری مستقل

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

این ایده جدیدی نیست. بیش از 20 سال پیش ، هم سیستم پیاده سازی پاسکال نیکلاس ویرث و هم پاسکال UCSD از همان فناوری استفاده کردند. استفاده از بایت کد سود زیادی در اجرای برنامه دارد (اگرچه تلفیق همزمان در بسیاری از موارد جبران می کند). توسعه دهندگان جاوا در توسعه مجموعه ای از دستورات bytecode که در اکثر موارد عالی عمل می کنند ، کار بسیار خوبی انجام داده اند رایانه های مدرنبه راحتی دستورات ماشین واقعی را ترجمه کنید.

ماشین مستقل

برخلاف C و C ++ ، مشخصات جاوا جنبه خاصی برای پیاده سازی ندارد. اندازه انواع داده های اساسی و نیز عملیات حساب بر روی آنها به خوبی مشخص شده است.

به عنوان مثال ، int در جاوا همیشه به معنی یک عدد صحیح 32 بیتی است. در C و C ++ ، نوع int می تواند به معنای یک عدد صحیح 16 بیتی یا 32 بیتی و همچنین یک عدد صحیح به اندازه دلخواه باشد ، که توسط توسعه دهنده یک کامپایلر خاص انتخاب شده است. تنها محدودیت این است که اندازه نوع int نمی تواند از اندازه int کوتاه و اندازه int طولانی باشد. اندازه ثابت انواع عددی از بسیاری از مشکلات مربوط به اجرای برنامه ها در رایانه های مختلف جلوگیری می کند. داده های دودویی در یک قالب ثابت ذخیره و انتقال می یابند ، که همچنین از سوerstand تفاهم در ارتباط با ترتیب مختلف بایت در سیستم عامل های مختلف (تضاد "endian بزرگ / اندین کوچک") جلوگیری می کند. رشته ها با فرمت استاندارد Unicode ذخیره می شوند.

کتابخانه هایی که بخشی از سیستم هستند ، یک رابط مستقل از ماشین را تعریف می کنند. به عنوان مثال ، این زبان کلاس انتزاعی Window و پیاده سازی های آن را برای سیستم عامل های Unix ، Windows و Macintosh فراهم می کند.

هرکسی که سعی کرده است برنامه ای بنویسد که به همان اندازه در ویندوز ، مکینتاش و ده طعم Unix کار کند ، می داند که این کار بسیار دشواری است. نسخه جاوا با ارائه یک جعبه ابزار ساده که عناصر مشترک رابط کاربری را با طیف گسترده ای از سیستم عامل های نرم افزاری سازگار می کند ، برای حل این مشکل یک قهرمانانه تلاش کرد. متأسفانه ، کتابخانه که زحمت زیادی کشید ، به ما اجازه نداد در سیستم عامل های مختلف به نتایج قابل قبولی برسیم. (در همان زمان ، خطاهای مختلفی در برنامه های گرافیکی در سیستم عامل های مختلف ظاهر شد.)

با این حال ، این تنها آغاز کار بود. در بسیاری از برنامه ها ، استقلال ماشین بسیار مهمتر از پیچیدگی رابط کاربری گرافیکی است. این برنامه ها هستند که از Java 1.0 بهره مند شده اند. با این حال ، Graphical User Interface Toolkit اکنون کاملاً دوباره طراحی شده است و دیگر به رابط کاربری در رایانه میزبان بستگی ندارد. نسخه جدید از نظر کاربر معنی دار تر و از نظر ما جذاب تر از کاربران قبلی است.

تفسیر شده

مفسر جاوا را می توان به هر دستگاهی فرستاد و بایت کد را مستقیماً روی آن اجرا کرد. از آنجا که ویرایش پیوند فرآیند آسان تری است ، توسعه نرم افزار می تواند بسیار سریعتر و کارآمدتر شود.

این ممکن است در هنگام توسعه برنامه ها یک مزیت باشد ، اما این نقل قول اغراق آمیز است. در هر صورت ، کامپایلر جاوا در کیت توسعه نرم افزار جاوا (JSDK) نسبتاً کند است. (بعضی از کامپایلرهای نوع سوم ، مانند آنهایی که از IBM تهیه شده اند ، بسیار سریعتر هستند.) سرعت دوباره کامپایل کردن تنها یکی از فاکتورهای کارآیی محیط برنامه نویسی است. هنگام مقایسه سرعت جاوا با محیط های برنامه نویسی ویژوال بیسیک ، ممکن است ناامید شوید.

عملکرد بالا

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

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

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

چند جریان

تعامل بهتر و اجرای برنامه را فراهم می کند.

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

پویا

از بسیاری جهات ، جاوا پویاتر از C یا C ++ است. این طراحی شده بود تا به راحتی با یک محیط همیشه در حال تغییر سازگار شود. روش ها و اشیا New جدید را می توان آزادانه به کتابخانه ها اضافه کرد و هیچ آسیبی نرساند. زبان جاوا دستیابی به اطلاعات در مورد پیشرفت یک برنامه را آسان می کند.

این مورد بسیار مهم است وقتی که شما نیاز به افزودن کد به برنامه ای دارید که از قبل اجرا شده است. نمونه بارز این کد ، کدی است که برای اجرا توسط مرورگر از اینترنت بارگیری می شود. در Java 1.0 به دست آوردن اطلاعات در مورد پیشرفت برنامه در حال اجرا آسان نبود ، اما نسخه فعلی زبان جاوا هم ساختار و هم رفتار اشیا of برنامه اجرا شده را در معرض برنامه نویس قرار می دهد.
این برای سیستمهایی که در حین اجرای برنامه نیاز به تجزیه و تحلیل اشیا دارند ، بسیار ارزشمند است. چنین سیستم هایی شامل سازندگان رابط کاربر گرافیکی ، اشکال زدای هوشمند ، افزونه ها و پایگاه داده های اشیا است.

جاوا و اینترنت

ایده ساده است - کاربران کدهای جاوا را از اینترنت بارگیری می کنند و آنها را بر روی دستگاه های خود اجرا می کنند. برنامه های جاوا را که در مرورگرهای وب اجرا می شوند ، applet می نامند. برای استفاده از اپلت ، به یک مرورگر وب با قابلیت جاوا نیاز دارید که بتواند کد های بایت را تفسیر کند. منبع زبان جاوا به Sun مجوز دارد ، که اصرار دارد که هم زبان و هم ساختار کتابخانه های اصلی آن بدون تغییر باقی بمانند. متأسفانه ، در واقعیت اینگونه نیست. نسخه های مختلف مرورگرهای Netscape و اینترنت اکسپلورر پشتیبانی نسخه های مختلف زبان جاوا ، و برخی از این نسخه ها به طور قابل توجهی منسوخ شده اند. این وضعیت ناخوشایند موانع بیشتر و بیشتری را در تولید سیب هایی ایجاد می کند که از آنها استفاده می کنند آخرین نسخه زبان جاوا برای رفع این مشکل ، سان افزونه جاوا را ایجاد کرده است که مدرن ترین محیط را برای اجرای برنامه های جاوا بر اساس مرورگرهای Netscape و Internet Explorer فراهم می کند.

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

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

در شکل 1.1 مثال خوبی از یک صفحه وب پویا را نشان می دهد که محاسبات پیچیده ای را انجام می دهد و از یک اپلت برای نمایش مولکول ها استفاده می کند. برای درک بهتر ساختار مولکول ، می توانید آن را بچرخانید یا با استفاده از ماوس بزرگنمایی کنید. چنین دستکاری هایی را نمی توان در صفحات وب ثابت اجرا کرد ، اما اپلت ها این امکان را می دهند. (این اپلت را می توان در http یافت: //jmol.sourceforge.net.)

شکل: 1.1 اپلت Jmol

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

با استفاده از فرم های Dynamic HTML ، Hypertext Markup Language (HTML) یا یک زبان برنامه نویسی مانند JavaScript می توان موارد مشابهی را انجام داد. البته اولین اپلت ها برای انیمیشن در نظر گرفته شده بودند: چرخیدن کره زمین ، رقص شخصیت های کارتونی ، متن های خیالی و غیره با این حال ، بسیاری از موارد فوق می توانند GIF های متحرک را نیز انجام دهند ، و HTML پویا ، همراه با برنامه نویسی ، بسیار بیشتر از اپلت ها است.

در نتیجه عدم سازگاری مرورگر و بارگیری ناسازگار بر روی اتصالات کند شبکه ، برنامه های کاربردی برای صفحات وب پیشرفت چشمگیری نبوده است. در شبکه های محلی (اینترانت) اوضاع کاملاً متفاوت است. آنها معمولاً از نظر پهنای باند مشکلی ندارند ، بنابراین زمان بارگیری اپلت ها مهم نیست. در شبکه محلی می توانید مرورگر مورد نظر خود را انتخاب کنید یا از برنامه Java Plug-In استفاده کنید. کارمندان نمی توانند برنامه تحویل داده شده از طریق شبکه را به مکان اشتباه منتقل کنند یا آن را به اشتباه نصب کنند و مدیر سیستم نیازی به دور زدن همه ماشین های کلاینت و به روزرسانی برنامه ها روی آنها نیست. تعداد زیادی از برنامه های طراحی شده برای حسابداری موجودی ، برنامه ریزی تعطیلات ، بازپرداخت سفر و مواردی از این دست توسط بسیاری از شرکت ها به عنوان برنامه های مبتنی بر مرورگر طراحی شده اند.

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

جاوا نه تنها نام خود زبان است ، بلکه بستری برای ایجاد برنامه های سطح سازمانی مبتنی بر این زبان است.

در ابتدا به زبان برنامه نویسی Oak (روسی) گفته می شد. بلوط) و توسط جیمز گاسلینگ برای لوازم الکترونیکی مصرفی ساخته شد ، اما بعداً به جاوا تغییر نام یافت و برای نوشتن برنامه های کلاینت و نرم افزار سرور مورد استفاده قرار گرفت. با نام تجاری قهوه جاوا که توسط برنامه نویسان محبوب است ، آرم رسمی جاوا یک فنجان قهوه بخارپز را نشان می دهد.

ویژگی های اصلی زبان

آخرین نسخه نسخه 1.6 است که باعث بهبود سیستم امنیتی و پشتیبانی از اسکریپت نویسی شده است زبان موزیلا Rhino ، بهبود ادغام دسک تاپ ، برخی از ویژگی های جدید را برای ایجاد رابط های گرافیکی اضافه کرده است.

جاوا و مایکروسافت

شرکت های زیر بیشتر به جای دات نت به فناوری های جاوا (J2EE) توجه دارند ، اگرچه با دومی نیز سر و کار دارند: IBM ، Oracle. به طور خاص ، Oracle DBMS شامل JVM به عنوان بخشی جدایی ناپذیر از آن است که توانایی برنامه ریزی مستقیم DBMS به زبان جاوا ، از جمله ، به عنوان مثال ، روش های ذخیره شده را فراهم می کند.

ویژگی های اصلی

برنامه نمونه

برنامه ای که "سلام ، جهان!" را تولید می کند:

کلاس عمومی HelloWorld (public static void main (رشته های آرایه ای)) (System .out .println ("سلام ، جهان!") ؛))

نمونه ای از استفاده از الگوها:

وارد کردن java.util. *؛ نمونه کلاس عمومی (public static void main (رشته های آرایه ای)) ( // ایجاد یک شی از یک الگو. لیست کنید رشته ها \u003d LinkedList جدید () strings.add ("سلام")؛ رشته ها. افزودن ("جهان")؛ رشته ها. افزودن ("!") ؛ for (رشته s: رشته ها) (System .out .print (s)؛ System .out .print ("")؛)))

ایده های کلیدی

انواع بدوی

در جاوا فقط 8 نوع اسکالر وجود دارد: boolean ، byte ، char ، short ، int ، long ، float ، double.

کلاسهای بسته بندی نوع ابتدایی

طول و دامنه مقادیر انواع بدوی توسط استاندارد تعریف می شودبه جای اجرا و در جدول نشان داده شده است. نوع char برای راحتی محلی سازی دو بایت ساخته شد (یکی از اصول ایدئولوژیکی جاوا): وقتی استاندارد شکل گرفت ، Unicode-16 از قبل وجود داشت ، اما Unicode-32 نه. از آنجا که در نتیجه نوع تک بایت باقی نماند ، نوع جدید بایت اضافه شد. انواع float و double می توانند مقادیر خاصی داشته باشند و "عددی نیست" (

یک نوع طول (بایت) محدوده یا مجموعه ای از مقادیر
بولی تعریف نشده درست غلط
بایت 1 −128..127
کاراکتر 2 0..2 16 -1 ، یا 0..65535
کوتاه 2 152 15 ..2 15 -1 یا -32768..32767
int 4 312 31 ..2 31 -1 ، یا −2147483648..2147483647
طولانی 8 632 63 ..2 63 -1 ، یا تقریباً − 9.2 · 10 18 ..9.2 · 10 18
شناور 4 - (2-2 -23) · 2 127 .. (2-2 -23) · 2 127 یا تقریباً 3،4 − · 3 38 · 3،4 · 10 38 و NaN
دو برابر 8 - (2-2 -52) · 2 1023 .. (2-2 -52) · 2 1023 یا تقریباً 1.8 − · 10 308 ..1.8 · 10 308 و NaN

این استاندارد سازی دقیق برای مستقل کردن بستر زبان ضروری بود که یکی از الزامات ایدئولوژیک جاوا و یکی از دلایل موفقیت آن است. با این حال ، هنوز یک مشکل کوچک در مورد استقلال سیستم عامل باقی مانده است. برخی پردازنده ها از ثبت 10 بایت برای ذخیره متوسط \u200b\u200bنتایج یا به روش های دیگر دقت محاسبات را بهبود می بخشند. به منظور ایجاد جاوا تا حد امکان بین سیستم های مختلف، در نسخه های قبلی ، هیچ روشی برای بهبود دقت محاسبات ممنوع بود. با این حال ، این منجر به کاهش عملکرد می شود. معلوم شد که تعداد کمی از مردم به دلیل استقلال بسترهای نرم افزاری ، به تخریب دقت نیاز دارند ، به خصوص اگر مجبور باشید با کاهش سرعت برنامه ها هزینه آن را پرداخت کنید. پس از اعتراضات فراوان ، این ممنوعیت لغو شد ، اما کلید واژه strikfp برای جلوگیری از پیشرفت های دقیق اضافه شد.

تحولات در عملیات ریاضی

در جاوا ، قوانین زیر اعمال می شود:

  1. اگر یک عملوند از نوع double باشد ، دیگری نیز به نوع double تبدیل می شود.
  2. در غیر این صورت ، اگر یک عملوند از نوع float باشد ، دیگری نیز به نوع float تبدیل می شود.
  3. در غیر این صورت ، اگر یک عملوند طولانی باشد ، دیگری نیز به طولانی تبدیل می شود.
  4. در غیر این صورت ، هر دو عملوند به int تبدیل می شوند.

قانون دوم جاوا را از پیاده سازی های قدیمی و ++ C متمایز کرده و کد را از امنیت بیشتری برخوردار می کند. بنابراین ، به عنوان مثال ، در جاوا پس از اجرای کد

کوتاه x \u003d 50 ، y \u003d 1000 ؛ int z \u003d x * y ؛

z بر روی 50000 تنظیم شده است ، نه -15536 \u200b\u200bمانند بسیاری از پیاده سازی های ناامیدکننده منسوخ شده C و C ++. در برنامه کامپایل شده با MS VC ++ ، با شروع نسخه 7 ، و همچنین بسیاری از کامپایلرهای مدرن دیگر (gcc ، Intel C ++ ، Borland C ++ ، Comeau و غیره) ، مقدار آن نیز 50000 خواهد بود.

متغیرهای شیject ، اشیا، ، منابع و اشاره گرها

زبان جاوا فقط اشیایی را ایجاد کرده است. علاوه بر این ، متغیرهای نوع شی و اشیا in در جاوا موجودات کاملاً متفاوتی هستند. متغیرهای اشیا refe منابع هستند ، یعنی اشاره گرهای ضمنی به اشیا ایجاد شده به صورت پویا. این توسط نحو برای اعلام متغیرها تأکید می شود. بنابراین ، در جاوا نمی توانید بنویسید:

دو برابر [10] [20] ؛ Foo b (30) ؛

Double a \u003d دو برابر جدید [10] [20]؛ Foo b \u003d Foo جدید (30)؛

در حین تعیین تکالیف ، زیرروال ها و مقایسه ها ، متغیرهای شی مانند نشانگر رفتار می کنند ، یعنی آدرس اشیا object اختصاص داده می شوند ، کپی می شوند و مقایسه می شوند. و هنگام دسترسی به فیلد های داده یا روش های یک شی object با استفاده از یک متغیر شی object ، هیچ عملیات ارجاع مجدد خاصی لازم نیست - این دسترسی به گونه ای انجام می شود که گویی متغیر شی object خود شی the است.

متغیرهای هر نوع غیر از انواع عددی ساده متغیرهای شی هستند. در جاوا هیچ اشاره گر صریحی وجود ندارد. برخلاف اشاره گرها در C ، C ++ و سایر زبان های برنامه نویسی ، منابع در جاوا به دلیل محدودیت های شدید در استفاده از آنها ، به ویژه امن هستند:

  • شما نمی توانید یک شی از نوع int یا هر نوع ابتدایی دیگر را به یک اشاره گر یا مرجع و بالعکس تبدیل کنید.
  • عملیات ++ ، - ، + ، - یا هرگونه حساب دیگر در پیوندها ممنوع است.
  • تبدیل نوع بین پیوندها بسیار تنظیم شده است. به استثنای ارجاع به آرایه ها ، مجاز است که منابع فقط بین یک نوع ارثی و وارث آن تبدیل شود ، و تبدیل یک نوع ارثی به یک نوع ارثی باید به صراحت مشخص شود و معنی آن در زمان اجرا بررسی شود. تبدیل مرجع آرایه فقط زمانی مجاز است که تبدیل به نوع پایه آنها مجاز باشد و هیچ تعارض ابعادی وجود ندارد.
  • جاوا عملیات گرفتن آدرس (&) یا بردن شی در آدرس (*) را ندارد. ستاره در جاوا به معنای ضرب است ، همین. ampersand (&) فقط به معنای "bitwise و" است (ampersand دو به معنی "منطقی و" است).

با توجه به چنین محدودیت های ویژه ای ، دستکاری مستقیم حافظه در سطح آدرس های فیزیکی در جاوا غیرممکن است (اگرچه مراجعی وجود دارد که به چیزی اشاره نمی کنند: مقدار چنین مرجعی با null نشان داده می شود).

پیوند و شبیه سازی پیوند

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

Foo foo، bar؛ … نوار \u003d foo ؛

سپس آدرس از متغیر foo به متغیر bar کپی می شود. به این معنی که foo و bar به همان ناحیه حافظه ، یعنی به همان جسم اشاره خواهند کرد. تلاش برای تغییر قسمتهای یک شی object مورد اشاره توسط foo ، شی that مرتبط با آن را تغییر می دهد و بالعکس. اگر شما نیاز به دریافت دقیقا یکی دیگر دارید کپی 🀄 شی object اصلی ، یا از روش (تابع عضو ، در اصطلاح C ++) کلون () استفاده می شود ، که یک کپی از شی creates یا سازنده کپی ایجاد می کند.

روش clone () برای اجرای رابط Cloneable به کلاس نیاز دارد (برای رابط ها به زیر مراجعه کنید). اگر کلاس رابط Cloneable را پیاده سازی کند ، به طور پیش فرض clone () همه زمینه ها را کپی می کند ( کپی کم عمق) اگر نیازی به کپی برداری نیست ، بلکه برای شبیه سازی فیلدها (و همچنین قسمت های آنها و غیره) ، باید روش clone () را نادیده بگیرید. تعریف و استفاده از روش clone () اغلب کار بی اهمیتی نیست.

مجموعه زباله

زبان جاوا به وضوح نمی تواند یک شی object را از حافظه حذف کند - در عوض جمع آوری زباله اجرا می شود. یک ترفند سنتی برای دادن زباله به حافظه آزاد کردن حافظه ، اختصاص مقدار خالی خالی به یک متغیر است. این بدان معنا نیست که یک شی replaced جایگزین شده با مقدار null لزوماً و بلافاصله حذف خواهد شد. این روش فقط ارجاع به جسم را از بین می برد ، یعنی نشانگر را از شی در حافظه جدا می کند. باید در نظر داشت تا زمانی که حداقل یک منبع از متغیرهای استفاده شده یا اشیا به آن اشاره کند ، شی توسط جمع کننده زباله برداشته نمی شود. روش هایی نیز برای شروع جمع آوری زباله اجباری وجود دارد ، اما تضمین نمی شود که در زمان اجرا فراخوانی شود و برای عملکرد طبیعی توصیه نمی شود.

کلاسها و توابع

جاوا یک زبان رویه ای نیست: هر تابعی فقط در داخل یک کلاس می تواند وجود داشته باشد. این اصطلاحات زبان جاوا را تأکید می کند ، جایی که هیچ مفهومی از "عملکرد" \u200b\u200bیا "تابع عضو" وجود ندارد (انگلیسی). عملکرد عضو)، اما تنها روش... توابع استاندارد نیز به روش تبدیل شده اند. به عنوان مثال ، در جاوا هیچ تابع sin () وجود ندارد ، اما یک کلاس Math.sin () از کلاس Math وجود دارد (که علاوه بر sin () ، روش های cos () ، exp () ، sqrt () ، abs () و بسیاری دیگر).

روش ها و زمینه های ایستا

برای اینکه مجبور نباشید هر بار که فراخوانی sin () (و سایر توابع مشابه) یک شی از کلاس ریاضی (و سایر کلاسهای مشابه) ایجاد شود ، این مفهوم ارائه شد روشهای ایستا (مهندسی روش استاتیک؛ بعضی اوقات در روسی آنها را ساکن می نامند). یک روش ایستا (که در توضیحات با کلمه کلیدی استاتیک مشخص شده است) را می توان بدون ایجاد یک شی در کلاس خود فراخوانی کرد. بنابراین ، می توانید بنویسید

x x \u003d ریاضی .sin (1) ؛

ریاضی m \u003d ریاضی جدید ()؛ x دو برابر \u003d m.sin (1) ؛

محدودیت در روشهای ساکن این است که در این شی فقط می توانند به زمینه ها و روشهای ایستا دسترسی داشته باشند.

فیلدهای استاتیک همان معنای C ++ را دارند: هر یک فقط در یک نمونه وجود دارند.

نهایی بودن

کلمه کلیدی نهایی هنگام توصیف متغیر ، روش یا کلاس به معنای چیزهای مختلف است. متغیر نهایی (به نام ثابت) در حین توصیف مقداردهی اولیه می شود و نمی توان بیشتر تغییر داد. روش نهایی را نمی توان با وراثت نادیده گرفت. کلاس آخر به هیچ وجه نمی تواند فرزندان داشته باشد.

انتزاعی بودن

در جاوا ، روش هایی که صریحاً به عنوان نهایی یا خصوصی اعلام نشده اند ، در اصطلاح C ++ مجازی هستند: وقتی روشی در کلاس های پایه و وراثت به طرز متفاوتی فراخوانی می شود ، همیشه یک بررسی زمان اجرا انجام می شود.

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

آموزش جاوا

مبانی برنامه نویسی جاوا

اطلاعات عمومی در مورد برنامه نویسی

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

برنامه نویسی جاوا (این یک زبان کامپایلر است) این مزیت را دارد که کدهای نوشته شده در یک زبان برنامه نویسی معین با استفاده از یک برنامه مترجم مناسب به اصطلاح bytecode ترجمه می شود ، و این ، به نوبه خود ، با استفاده از ماشین مجازی جاوا به کد ماشین ترجمه می شود ( جاوا ماشین مجازی یا فقط JVM). بنابراین ، نوشته شده در برنامه جاوا تا زمانی که یک ماشین مجازی جاوا روی آن نصب شده باشد ، روی هر رایانه با هر سیستم اجرا کنید. بنابراین ، یکی از اصلی ترین مزایای زبان جاوا فراهم شده است - قابلیت حمل برنامه های ایجاد شده روی آن برای انواع مختلف رایانه.

دو نوع برنامه نویسی وجود دارد: سیستمی و کاربردی.
برنامه نویسی سیستم به ما امکان می دهد تا در سیستم ، به عنوان مثال در ویندوز ، برنامه ریزی کنیم تا مشکلات جهانی را برطرف کنیم.
برنامه نویسی کاربردی با هدف ایجاد برنامه های کاربردی ، به عنوان مثال برنامه هایی که برخی از عملکردهای خاص را انجام می دهند ، به عنوان مثال Microsoft Word، WordPad ، ماشین حساب و غیره در این کتاب ، ما به برنامه نویسی برنامه خواهیم پرداخت.

جاوا (به عنوان مثال جاوا) یک جزیره در اندونزی است ، انواع قهوه و زبان برنامه نویسی است. سه معنی کاملاً متفاوت ، و همه آنها در نوع خود مهم هستند. با این حال ، برای بیشتر برنامه نویسان این زبان برنامه نویسی جاوا است که مورد توجه است. طی چند سال گذشته (شروع از اواخر سال 1995) جاوا توانسته است جامعه توسعه دهندگان را تسخیر کند. موفقیت خارق العاده آن باعث شد جاوا سریعترین زبان برنامه نویسی در حال رشد باشد. در مورد زبان و قابلیت های آن هیاهوی زیادی وجود دارد. و بسیاری از برنامه نویسان ، و همچنین کاربران نهایی ، کاملاً درک نمی کنند که جاوا چیست و چه فرصت هایی را فراهم می کند.

جاوا یک زبان برنامه نویسی انقلابی است

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

بیایید نگاهی دقیق به برخی از خواص این زبان بیندازیم:

  • شی گرا
  • قابل حمل بودن
  • پشتیبانی چند رشته ای
  • جمع آوری خودکار زباله
  • قابلیت اطمینان
  • پشتیبانی برای کار با شبکه و "اینترنت"
  • سادگی و سهولت استفاده

شی گرا

بسیاری از زبانهای قبل از جاوا ، مانند C و Pascal ، بودند رویه ای زبان ها. رویه ها (یا توابع) بلوک هایی از کد هستند که بخشی از یک ماژول یا برنامه بودند. پارامترها (انواع داده های بدوی: اعداد صحیح ، نویسه ها ، رشته ها و اعداد شناور) به رویه ها منتقل می شوند. کد جدا از داده پردازش شد. شما باید در ساختار داده ها عبور می کردید ، و رویه ها می توانستند به راحتی محتوای آنها را اصلاح کنند. به همین دلیل ، بسیاری از مشکلات بوجود آمد ، زیرا استفاده از برخی قسمتهای برنامه در قسمتهای دیگر آن می تواند نتایج غیرقابل پیش بینی داشته باشد. برای یافتن روش نادرست ، زمان و تلاش زیادی لازم بود. مخصوصاً وقتی صحبت از برنامه های بزرگ می شود.

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

جاوا است شی گرا زبان یک زبان شی گرا با آن کار می کند اشیاء... اشیا حاوی داده (فیلدها) و کد (روش ها) هستند. هر شی متعلق به یک خاص است کلاسکه یک "طرح اصلی" است که زمینه ها و روشهایی را که جسم ارائه می دهد توصیف می کند. در جاوا ، تقریباً هر متغیری یک شی یا نوع دیگر است - حتی رشته ها. برنامه نویسی شی گرا به طرز تفکر دیگری احتیاج دارد اما این روش توسعه نرم افزار بهتر از برنامه نویسی رویه ای است.

امروزه بسیاری از زبانهای شی گرا محبوب هستند. برخی از آنها در ابتدا به صورت شی گرا طراحی شده اند ، مانند Java و Smalltalk. برخی دیگر مانند C ++ تا حدودی شی گرا و تا حدودی رویه ای هستند. در C ++ ، هنوز هم می توانید محتوای ساختار داده ها و اشیاw را دوباره بنویسید و باعث خراب شدن برنامه شوید. خوشبختانه ، جاوا دسترسی مستقیم به محتوای حافظه را ممنوع می کند ، در نتیجه یک سیستم قابل اعتماد تر ایجاد می کند.

قابل حمل بودن

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

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

جاوا بهترین نتیجه را از هر دو روش می گیرد. کد جاوا در یک کد ماشین آلات مستقل به نام پلت فرم وارد می شود کد بایت جاوا... مترجم ویژه ، ماشین مجازی جاوا یا "ماشین مجازی جاوا (JVM)" کد بایت را خوانده و پردازش می کند. در شکل 1 نمودار یک برنامه کوچک جاوا را نشان می دهد. کد بایت مشخص شده با فلش متنی است ، اما برای صرفه جویی در فضا به صورت بایت وارد شده است.



شکل: 1 - جدا کردن کد بایت برای "HelloWorld"

رویکردی که جاوا در پیش گرفته چندین مزیت قابل توجه نسبت به زبانهای تفسیری دارد. ابتدا کد منبع از مشاهده و اصلاح محافظت می شود - فقط کد بایت در دسترس کاربران است. دوم ، مکانیسم های محافظتی می توانند کد بایت را برای یافتن نشانه های تغییر یا کد مخرب اسکن کنند ، و این سایر مکمل های دفاعی جاوا است. با این حال مهمترین نکته این است که کد جاوا فقط یکبار قابل کامپایل شدن است و سپس بر روی هر دستگاه یا سیستم عاملی که از ماشین مجازی جاوا (JVM) پشتیبانی می کند قابل اجرا است. کد جاوا را می توان روی سیستم های Unix ، Windows ، Macintosh و حتی Palm Pilot اجرا کرد. جاوا حتی می تواند در یک مرورگر وب یا سرور وب اجرا شود. قابلیت جابجایی به شما امکان می دهد فقط یکبار برنامه را بنویسید و سپس آن را روی دستگاه های مختلف اجرا کنید. این باعث صرفه جویی در وقت و هزینه زیادی می شود.

چند رشته ای

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

یک روش بسیار بهتر ، استفاده از چندین موضوع اجرایی است که به همین سادگی مخفف می شوند جریان ها... جریان ها می توانند داده ها و کد ها را به اشتراک بگذارند و انتقال داده ها را بین نمونه های جریان آسان تر می کنند. آنها همچنین از حافظه و منابع پردازنده کمتری استفاده می کنند. برخی از زبان ها مانند C ++ از جریان ها پشتیبانی می کنند ، اما اجرای آنها بسیار دشوار است. در جاوا ، پشتیبانی چند رشته ای ساخته شده است. جریان ها به طرز تفکر کمی متفاوت نیاز دارند ، اما درک آنها بسیار آسان است. پشتیبانی جاوا از جریان ها بسیار آسان است و در برنامه ها و برنامه ها کاملاً رایج است.

جمع آوری خودکار زباله

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

زبانهایی مانند C ++ به برنامه نویسان نیاز دارند تا به صورت دستی حافظه را برای داده ها و اشیا اختصاص دهند و پاک کنند. این برنامه را پیچیده می کند و به مشکل دیگری منجر می شود - نشت حافظه. وقتی برنامه نویسان پاک کردن حافظه را فراموش می کنند ، میزان حافظه آزاد موجود برای استفاده کاهش می یابد. برنامه هایی که به طور مکرر اشیا create را ایجاد و تخریب می کنند ، می توانند به مرور زمان تمام حافظه موجود را پر کنند. در جاوا ، برنامه نویس نیازی به نگرانی در مورد چنین مواردی ندارد زیرا JVM جمع آوری زباله خودکار را برای اشیا انجام می دهد.

قابلیت اطمینان

امنیت نقش بسیار مهمی در جاوا دارد. از آنجا که اپلت های جاوا از راه دور بارگیری و در مرورگر اجرا می شوند ، با توجه زیادی به امنیت. ما نمی خواهیم که اپلت ها به اسناد شخصی ما دسترسی پیدا کنند ، پرونده هایمان را حذف کنند یا صدمه ای وارد کنند. هنگام ورود به پرونده و دسترسی به شبکه برای برنامه ها ، محدودیت های امنیتی شدیدی در سطح API وجود دارد. علاوه بر این ، از امضاهای دیجیتال برای تأیید صحت کد بارگیری شده پشتیبانی می شود. در سطح بایت کد ، هک های واضحی مانند دستکاری پشته یا کد بایت بد بررسی می شود. مکانیسم های امنیتی قدرتمند جاوا به محافظت در برابر نقض امنیت ناخواسته یا عمدی کمک می کنند ، اما لازم به یادآوری است که هیچ سیستم کاملی وجود ندارد. ضعیف ترین حلقه در این زنجیره ماشین مجازی جاوا است که همه چیز در آن فعال و در حال کار است - JVM می تواند در برابر حملات آسیب پذیر باشد زیرا نقاط ضعف شناخته شده ای دارد. شایان ذکر است که اگرچه چندین آسیب پذیری در JVM مشاهده شده است ، اما این اتفاق بسیار نادر است و معمولاً به سرعت برطرف می شود.

پشتیبانی برای کار با شبکه و "اینترنت"

جاوا با نگاه به "اینترنت" و برای پشتیبانی از برنامه نویسی شبکه ایجاد شده است. Java API پشتیبانی گسترده ای برای عملکرد شبکه ، از سوکت ها و آدرس های IP گرفته تا URL ها و HTTP فراهم می کند. هیچ چیز آسانتر از نوشتن یک برنامه شبکه در جاوا نیست. در این حالت ، کد بدست آمده می تواند به هر سیستم عامل منتقل شود. در زبانهایی مانند C / C ++ ، کد شبکه برای هر یک باید دوباره بازنویسی شود سیستم عامل، و معمولاً ساختار پیچیده تری دارد. شبکه جاوا می تواند در وقت و تلاش شما صرفه جویی کند.

جاوا همچنین از انواع عجیب و غریب برنامه نویسی شبکه ، مانند فراخوانی روش از راه دور (RMI) ، معماری پردازشگر درخواست شی object تعمیم یافته (CORBA) و معماری سیستم های توزیع شده Jini پشتیبانی می کند. این فناوری های سیستم های توزیع شده جاوا را به زبانی جذاب برای پروژه های بزرگ تبدیل می کند.

سادگی و سهولت استفاده

زبان جاوا ریشه در زبان C ++ دارد. C ++ بسیار محبوب و گسترده است. و با این حال این یک زبان پیچیده در نظر گرفته شده است که دارای ویژگی هایی مانند وراثت چندگانه ، الگوها و اشاره گرها است که ضد تولید هستند. به نوبه خود ، جاوا بیشتر یک زبان شی گرا "خالص" است. دسترسی به اشاره گرهای حافظه وجود ندارد ، اما به جای آن از منابع مرجع استفاده می شود. پشتیبانی از ارث چندگانه نیز برداشته شد. این اجازه می دهد نمودارهای کلاس واضح و ساده تر باشد. استفاده از کتابخانه های ورودی و خروجی و شبکه بسیار آسان است. Java API کد زیادی را برای صرفه جویی در وقت (ویژگی های شبکه و ساختار داده ها) در اختیار توسعه دهندگان قرار می دهد. بعد از مدتی کار با جاوا ، بیشتر توسعه دهندگان به دلیل سادگی و ظرافت جاوا تمایلی به بازگشت به زبان های دیگر ندارند.

نتیجه

جاوا مزایای بسیاری را به توسعه دهندگان ارائه می دهد. اگرچه تعداد زیادی از آنها به زبانهای دیگر وجود دارد ، اما در جاوا گرد هم آمده اند. رشد سریع جاوا واقعاً خارق العاده است و هنوز برنامه ای برای کاهش سرعت ندارد. در مقاله بعدی ، ما در مورد قلب جاوا صحبت خواهیم کرد - ماشین مجازی جاوا.