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

context: زبان جاوا شبیه به سی‌پلاس‌پلاس است؛اما مدل شیءگرایی آسان‌تری دارد و از قابلیت‌های سطح پایین کمتری پشتیبانی می‌کند. ایدهٔ شیءگرایی جاوا از زبان اسمال‌تاک گرفته شده‌است. یکی از قابلیت‌های بنیادین جاوا این است که مدیریت حافظه را به‌طور خودکار انجام می‌دهد. ضریب اطمینان عملکرد برنامه‌های نوشته‌شده به این زبان نسبت به زبان‌های نسل اول C بالاتر است. برنامه‌های جاوا به صورت بایت کد می‌شوند و توسط ماشین مجازی جاوا (JVM) به کدهای ماشین تبدیل و اجرا می‌شوند. در صورت وجود JVM مانند سایر زبان‌های مبتنی بر آن که وابسته به سیستم‌عامل خاصی نیستند برنامه‌های نوشته شده به جاوا بر روی هر نوع سیستم عامل و هرگونه وسیلهٔ الکترونیکی قابل اجرا می‌باشند. شعار جاوا «یک‌بار بنویس و همه‌جا اجرا کن» (Write once, Run anywhere) است که به همین ویژگی اشاره دارد. این ویژگی جاوا را مستقل از سکو می‌نامند.
qas: answers: text: زبان اسمال‌تاک

text: اسمال‌تاک
question: ایدهٔ شیءگرایی جاوا از چه چیزی گرفته شده‌است؟

answers: text: ماشین مجازی جاوا
question: برنامه‌های جاوا بعد از بایت کد شدن توسط چه چیزی به کدهای ماشین تبدیل و اجرا می‌شوند؟

answers: text: یک‌بار بنویس و همه‌جا اجرا کن
question: شعار جاوا چیست؟

question: زبان جاوا نخستین بار توسط چه کسی منتشر گردید؟

context: این زبان قسمت‌های بسیاری از گرامر خود را از C و ++C گرفته اما دارای مدل شی‌گرایی ساده‌ای است و امکانات سطح پایین کمی دارد. کاربرد جاوا در کامپایل به صورت بایت کد است که صرف نظر از معماری و خصوصیات آن کامپیوتر، قابلیت اجرا روی تمامی ماشین‌های شبیه‌سازی جاوا را دارد. اجزای اصلی کامپایلرهای جاوا، ماشین‌های پیاده‌سازی و کتابخانه‌های آن توسط شرکت مذکور از سال ۱۹۹۵ منتشر شد. در مه ۱۹۹۷ این شرکت، نرم‌افزار رایگان این زبان را فراهم کرد. دیگران هم کاربردهای دیگری از این زبان مثل کامپایلر GNU برای جاوا یا OPENJDK را منتشر کردند.
qas: answers: text: C و ++C
question: زبان جاوا قسمت‌های بسیاری از گرامر خود را از کدام برنامه‌ها گرفته‌است؟

answers: text: به صورت بایت کد است که صرف نظر از معماری و خصوصیات آن کامپیوتر، قابلیت اجرا روی تمامی ماشین‌های شبیه‌سازی جاوا را دارد
question: کاربرد جاوا در کامپایل به چه صورت است؟

answers: text: ۱۹۹۵

text: سال ۱۹۹۵

text: از سال ۱۹۹۵
question: اجزای اصلی کامپایلرهای جاوا، ماشین‌های پیاده‌سازی و کتابخانه‌های آن از چه سالی منتشر شد؟

answers: text: ۱۹۹۷

text: مه ۱۹۹۷

text: در مه ۱۹۹۷
question: در چه سالی نرم‌افزار رایگان زبان جاوا فراهم شد؟

question: پنج هدف اصلی جاوا را ذکر کنید؟

context: قابلیت خاصی در جاوا وجود دارد به نام اپلت. اپلت‌ها امکانات فراوانی برای نوشتن برنامه‌های تحت وب در اختیار برنامه‌نویسان قرار می‌دهند. [نیازمند منبع] البته وجود ماشین مجازی جاوا برای اجرای اپلت لازم است. اپلت‌ها نظیر فناوری سیلورلایت شرکت مایکروسافت هستند که برنامه‌نویسان را قادر می‌سازد تا امکاناتی را به مرورگر کاربر بیفزایند. البته تفاوت این دو در امنیت می‌باشد به گونه‌ای که سیلورلایت به دلیل اینکه در محیطی به نام جعبه شنی (sandbox) اجرا می‌شوند امن هستند ولی اپلت‌ها فاقد چنین امنیتی هستند و به سادگی هدف حملات استاندارد Social Engineering Toolkit واقع می‌شوند.
qas: answers: text: اپلت‌ها امکانات فراوانی برای نوشتن برنامه‌های تحت وب در اختیار برنامه‌نویسان قرار می‌دهند

text: امکانات فراوانی برای نوشتن برنامه‌های تحت وب در اختیار برنامه‌نویسان قرار می‌دهند
question: کار اپلت‌ها که قابلیت خاصی از جاوا هستند چیست؟

answers: text: اپلت‌ها
question: کدام قابلیت جاوا امکانات فراوانی برای نوشتن برنامه‌های تحت وب در اختیار برنامه‌نویسان قرار می‌دهند؟

answers: text: اپلت‌ها
question: کدام قابلیت جاوا برنامه‌نویسان را قادر می‌سازد تا امکاناتی را به مرورگر کاربر بیفزایند؟

question: ماشین مجازی جاوا چیست؟

context: شرکت سان‌مایکروسیستمز مجوز رسمی برای پلتفرم استاندارد جاوا را به مایکروسافت ویندوز، لینوکس، و سولاریس داده‌است. همچنین محیط‌های دیگری برای دیگر پلت فرم‌ها فراهم آورده‌است. علامت تجاری مجوز شرکت سان‌میکروسیستمز طوری بود که با همهٔ پیاده‌سازی‌ها سازگار باشد. به علت اختلاف قانونی که با مایکروسافت پیدا کرد، زمانی که شرکت سان ادعا کرد که پیاده‌سازی مایکروسافت از RMI یا JNI پشتیبانی نکرده و ویژگی‌های خاصی را برای خودش اضافه کرده‌است. شرکت سان در سال ۱۹۹۷ پیگیری قانونی کرد و در سال ۲۰۰۱ در توافقی ۲۰ میلیون دلاری برنده شد. در نتیجه کمی بعد مایکروسافت جاوا را به ویندوز فرستاد. در نسخهٔ اخیر ویندوز، مرورگر اینترنت نمی‌تواند از جاوا پلت فرم پشتیبانی کند. شرکت سان و دیگران یک سیستم اجرای جاوای رایگان برای آن‌ها و نسخه‌های دیگر ویندوز فراهم آوردند.
qas: answers: text: شرکت سان‌مایکروسیستمز

text: سان‌مایکروسیستمز
question: کدام شرکت مجوز رسمی برای پلتفرم استاندارد جاوا را به مایکروسافت ویندوز، لینوکس، و سولاریس داده‌است؟

answers: text: طوری بود که با همهٔ پیاده‌سازی‌ها سازگار باشد
question: علامت تجاری مجوز شرکت سان‌میکروسیستمز چگونه بود؟

answers: text: ۲۰۰۱

text: سال ۲۰۰۱

text: در سال ۲۰۰۱
question: در چه سالی شرکت سان در توافقی ۲۰ میلیون دلاری برنده شد؟

question: شرکت سان‌مایکروسیستمز از چه سالی فعالیت خود را آغاز کرد؟

context: هدف جاوا سازگاری کلیه پیاده سازی های جاوا است. از نظر تاریخی ، مجوز مارک تجاری Sun برای استفاده از مارک جاوا اصرار دارد که همه پیاده سازی ها سازگار باشد. پس از آنکه سان ادعا کرد که اجرای مایکروسافت از RMI یا JNI پشتیبانی نمی کند و ویژگی های مختص پلتفرم را به خود اختصاص داده است ، این منجر به اختلاف حقوقی با مایکروسافت شد. سان در سال 1997 شکایت کرد و ، در سال 2001 ، به مبلغ 20 میلیون دلار و همچنین حکم دادگاه برای اجرای شرایط مجوز از سان پیروز شد.  در نتیجه ، مایکروسافت دیگر جاوا را با ویندوز ارسال نمی کند.
qas: answers: text: کلیه پیاده سازی های جاوا
question: هدف جاوا سازگاری چه چیزهایی است؟

answers: text: 2001

text: سال 2001

text: در سال 2001
question: در چه سالی شرکت سان از مایکروسافت شکایت کرد؟

answers: text: مایکروسافت
question: سان در سال 1997 از کدام شرکت شکایت کرد؟

question: مایکروسافت توسط چه کسی راه‌اندازی شد؟

context: جاوا از حافظهٔ بازیافتی خودکار برای ادارهٔ حافظه در چرخهٔ زندگی یک شیء استفاده می‌کند. برنامه‌نویس زمانی که اشیاء به وجود می‌آیند، این حافظه را تعیین می‌کند؛ و در زمان اجرا نیز، زمانی که این اشیاء در استفادهٔ زیاد طولانی نباشند، برنامه‌نویس مسئول بازگرداندن این حافظه‌است. زمانی که مرجعی برای شی‌های باقی‌مانده نیست، شی‌های غیرقابل دسترس برای آزاد شدن به صورت خودکار توسط بازیافت حافظه، انتخاب می‌شوند. اگر برنامه‌نویس مقداری از حافظه را برای شی‌هایی که زیاد طولانی نیستند، نگه دارد، چیزهایی شبیه سوراخ حافظه اتفاق می‌افتند.
qas: answers: text: حافظهٔ بازیافتی خودکار

text: از حافظهٔ بازیافتی خودکار
question: جاوا از چه حافظه‌ای برای ادارهٔ حافظه در چرخهٔ زندگی یک شیء استفاده می‌کند؟

answers: text: برنامه‌نویس زمانی که اشیاء به وجود می‌آیند، این حافظه را تعیین می‌کند

text: زمانی که اشیاء به وجود می‌آیند
question: برنامه‌نویس چه زمانی حافظهٔ بازیافتی خودکار را تعیین می‌کند؟  

answers: text: زمانی که این اشیاء در استفادهٔ زیاد طولانی نباشند
question: چه زمانی برنامه‌نویس مسئول بازگرداندن حافظهٔ بازیافتی خودکار است؟

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

context: یکی از عقایدی که پشت سر مدل ادارهٔ حافظهٔ خودکار جاوا وجود دارد، این است که برنامه‌نویس هزینهٔ اجرای ادارهٔ دستی حافظه را نادیده می‌گیرد. در بعضی از زبان‌ها حافظه لازم برای ایجاد یک شیء، به صورت ضمنی و بدون شرط، به پشته تخصیص داده می‌شود؛ یا به‌طور صریح اختصاص داده شده و از heap بازگردانده می‌شود. در هر کدام از این راه‌ها، مسئولیت ادارهٔ اقامت حافظه با برنامه‌نویس است. اگر برنامه شیء را برنگرداند، سوراخ حافظه اتفاق می‌افتد. اگر برنامه تلاش کند به حافظه‌ای را که هم‌اکنون بازگردانده شده، دستیابی پیدا کند یا برگرداند، نتیجه تعریف شده نیست و ممکن است برنامه بی‌ثبات شده یا تخریب شود. این ممکن است با استفاده از اشاره‌گر مدتی باقی بماند، اما سرباری و پیچیدگی برنامه زیاد می‌شود. بازیافت حافظه اجازه دارد در هر زمانی اتفاق بیفتد. به‌طوری‌که این زمانی اتفاق می‌افتد که برنامه بی‌کار باشد. اگر حافظهٔ خالی کافی برای تخصیص شیء جدید در هیپ وجود نداشته باشد، ممکن است برنامه برای چند دقیقه متوقف شود. در جایی که زمان پاسخ یا اجرا مهم باشد، ادارهٔ حافظه و منابع اشیاء استفاده می‌شوند.
qas: answers: text: ممکن است برنامه برای چند دقیقه متوقف شود
question: اگر حافظهٔ خالی کافی برای تخصیص شیء جدید در هیپ وجود نداشته باشد چه اتفاقی ممکن است رخ دهد؟

answers: text: برنامه‌نویس
question: یکی از عقایدی که پشت سر مدل ادارهٔ حافظهٔ خودکار جاوا وجود دارد، نادیده‌گرفتن هزینهٔ اجرای ادارهٔ دستی حافظه توسط چه کسی است؟

answers: text: ممکن است برنامه بی‌ثبات شده یا تخریب شود
question: اگر برنامه تلاش کند به حافظه‌ای که هم‌اکنون بازگردانده شده، دستیابی پیدا کند یا برگرداند ممکن است چه اتفاقی برای برنامه رخ دهد؟

question: قابل حمل بودن جاوا به چه معناست؟

context: حذف اشاره‌گرها در جاوا به دلیل مشکلاتی بوده که آن‌ها در طول تاریخشان به وجود آورده‌اند (البته در زمان گذشته که در برنامه‌هایی مانند ++c برنامه‌نویس مستقیماً به مدیریت اشاره گر اقدام می‌نمود)، اگرچه این موارد در برنامه‌های سیستمی لازم به‌نظر می‌رسد ولی در محیط‌های تحت‌وب که بستر اصلی جاوا هستند می‌توانند اثراتی به مراتب شدیدتر نسبت به آنچه در برنامه‌های سیستمی دارند داشته باشند و باعث می‌شود که توجه برنامه‌نویسان از مسائلی چون کارایی، قابلیت اطمینان و مقیاس‌پذیری برنامه به تنظیم اشاره‌گرها معطوف گردد.
qas: answers: text: محیط‌های تحت‌وب
question: بستر اصلی جاوا کدام محیط‌ها هستند؟

answers: text: حذف اشاره‌گرها در جاوا به دلیل مشکلاتی بوده که آن‌ها در طول تاریخشان به وجود آورده‌اند
question: حذف اشاره‌گرها در جاوا به دلیل چه مشکلاتی بوده‌است؟

answers: text: حذف اشاره‌گرها در جاوا
question: چه عاملی باعث می‌شود که توجه برنامه‌نویسان از مسائلی چون کارایی، قابلیت اطمینان و مقیاس‌پذیری برنامه به تنظیم اشاره‌گرها معطوف گردد؟

question: منظور از توزیع جاوا چیست؟

context: جاوا امروزه به عنوان یک زبان پر کاربرد به خصوص در برنامه‌های کاربردی تجاری مطرح است و بسیاری از سازمان‌ها و شرکت‌های از این زبان و تکنولوژی‌های مربوط به آن استفاده می‌کنند. ابزارهای زیادی برای تست برنامه‌های نوشته شده توسط جاوا مورد استفاده قرار می‌گیرند. برای مثال: در جاوا به دلیل مدیریت حافظه توسط Garbage collection ممکن است به دلیل نوشتن غیر استاندارد برنامه در حافظه نشتی داشته باشیم (memory leakage)که این امر سبب می‌شود حافظه گرفته شده آزاد نشود و با پر شدن حافظه برنامه دچار خلل شود. برای حل این مشکل و سایر مشکلات نیاز به تست نرم‌افزارهای نوشته شده در جاوا هستیم. با بزرگ شدن حجم نرم‌افزار تست آن نیز سخت‌تر می‌شود. بهتر از قبل از نوشتن برنامه‌های تجاری بزرگ به تست و نحوه تضمین کیفیت آن هم فکر شود.
qas: answers: text: ممکن است به دلیل نوشتن غیر استاندارد برنامه در حافظه نشتی داشته باشیم
question: در جاوا به دلیل نوشتن غیر استاندارد برنامه در حافظه ممکن است چه اتفاقی بیفتد؟

answers: text: این امر سبب می‌شود حافظه گرفته شده آزاد نشود و با پر شدن حافظه برنامه دچار خلل شود

text: حافظه گرفته شده آزاد نشود و با پر شدن حافظه برنامه دچار خلل شود

text: سبب می‌شود حافظه گرفته شده آزاد نشود و با پر شدن حافظه برنامه دچار خلل شود
question: اگر به دلیل نوشتن غیر استاندارد برنامه در حافظه نشتی داشته باشیم سبب چه می‌شود؟

answers: text: تست و نحوه تضمین کیفیت آن
question: بهتر است قبل از نوشتن برنامه‌های تجاری بزرگ به چه مسئله‌ای توجه شود؟

question:  توزیع‌کننده اصلی جاوا و مبدأ آن چیست؟

context: هر ماژول دارای یک اسم است، کدهای مرتبط و پکیج‌ها را در درون خود نگه می‌دارد و کامل است به این معنی که یک کار مشخص را انجام می‌دهد و وظایفش را از طریق APIهای مشخص شده در دسترس دیگران قرار می‌دهد. یک ماژول به صورت صریح بیان می‌کند برای کار کردن به چه ماژول‌هایی نیاز دارد و کدام بخش از پکیج‌هایش برای دیگر ماژول‌ها قابل دسترسی است. این‌گونه به سادگی می‌توانیم وابستگی بین ماژول‌ها را تشخیص دهیم، بر روی Internal APIهایمان کنترل داشته باشیم و در صورت نبود یک ماژول در آغاز برنامه از نبود آن فوراً مطلع شویم و در صورت وجود هرگونه تداخلی به سرعت به خطا بربخوریم.
qas: answers: text: یک اسم

text: یک
question: هر ماژول دارای چند اسم است؟

answers: text: برای کار کردن به چه ماژول‌هایی نیاز دارد و کدام بخش از پکیج‌هایش برای دیگر ماژول‌ها قابل دسترسی است
question: یک ماژول به صورت صریح چه مواردی را بیان می‌کند؟

answers: text: در درون خود

text: درون خود
question: هر ماژول کدهای مرتبط و پکیج‌ها را در کجا نگه می‌دارد؟

question: ماژول چیست؟

context: جاوا یکی دیگر از گزینه های محبوب در سازمان های بزرگ می باشد و ده ها سال است که به همان شکل باقی مانده است. جاوا به طور گسترده ای برای ساخت برنامه های تحت وب در مقیاس سازمانی استفاده می شود و مدت هاست که در لیست بهترین زبان های برنامه نویسی دیده می شود. جاوا بسیار پایدار است و بنابراین ، بسیاری از سازمانهای بزرگ آن را پذیرفته اند. اگر به دنبال شغل مبتنی بر توسعه در یک سازمان بزرگ هستید ، جاوا زبانی است که شما باید یاد بگیرید. جاوا همچنین در توسعه برنامه اندروید کاربرد گسترده ای دارد. تقریباً هر شغلی امروز به یک برنامه اندروید نیاز دارد. با توجه به اینکه امروز میلیاردها کاربر اندروید وجود دارد و با توجه به این واقعیت که گوگل یک چارچوب عالی برای توسعه مبتنی بر جاوا - Android Studio - ایجاد کرده است.
qas: answers: text: ده ها سال
question: جاوا چند سال است که به همان شکل باقی مانده است؟

answers: text: برنامه های تحت وب در مقیاس سازمانی
question: جاوا به طور گسترده ای برای ساخت چه برنامه‌هایی استفاده می‌شود؟

answers: text: گوگل
question: کدام شرکت یک چارچوب عالی برای توسعه مبتنی بر جاوا ایجاد کرده‌است؟

question: مدیر شرکت گوگل چه کسی است؟