جاوا (پروگرامنگ زبان)

جاوا ایک عمومی مقصد کی پروگرامنگ زبان ہے جو کلاس پر مبنی ، آبجیکٹ پر مبنی ، اور اس کے لئے ڈیزائن کی گئی ہے کہ ممکنہ حد تک عمل درآمد پر انحصار کم ہو۔ اس کا مقصد ایپلی کیشن ڈویلپرز کو ایک بار لکھنے دینا ، کہیں بھی چلانے دینا ہے۔ (ڈبلیو او آر اے) ، اس کا مطلب یہ ہے کہ مرتب شدہ جاوا کوڈ ایسے تمام پلیٹ فارمز پر چل سکتا ہے جو دوبارہ تالیف کی ضرورت کے بغیر جاوا کی حمایت کرتے ہیں۔ جاوا ایپلی کیشنز کو عام طور پر بائیک کوڈ پر مرتب کیا جاتا ہے جو کسی بھی جاوا ورچوئل مشین (JVM) پر چل سکتے ہیں اس سے قطع نظر کہ بنیادی کمپیوٹر فن تعمیر سے قطع نظر۔ جاوا کا نحو C اور C ++ کی طرح ہے ، لیکن اس میں ان دونوں میں سے کم سطح کی سہولیات موجود ہیں۔ 2019 تک ، جاٹہ گٹہب کے مطابق استعمال ہونے والی ایک خاص طور پر مقبول پروگرامنگ زبان تھی ، خاص طور پر کلائنٹ سرور ویب ایپلیکیشنز کے لئے ، جن کی اطلاع 9 ملین ڈویلپرز کے ساتھ ہے 

جاوا کو اصل میں سن مائکرو نظام میں جیمز گوسلنگ نے تیار کیا تھا (جو اس کے بعد اوریکل نے حاصل کیا تھا) اور سن مائکرو سسٹم کے جاوا پلیٹ فارم کے بنیادی جزو کے طور پر 1995 میں جاری کیا گیا تھا۔ اصل اور حوالہ پر عمل درآمد جاوا کمپائلرز ، ورچوئل مشینیں ، اور کلاس لائبریریاں اصل میں اتوار کے ذریعہ ملکیتی لائسنس کے تحت جاری کی گئیں۔ مئی 2007 تک ، جاوا کمیونٹی پروسیس کی وضاحتوں کی تعمیل میں ، سن نے GNU جنرل پبلک لائسنس کے تحت اپنی زیادہ تر جاوا ٹکنالوجیوں کو دوبارہ سے منسلک کردیا تھا۔ دریں اثنا ، دوسروں نے ان سن ٹکنالوجیوں کے متبادل نفاذ تیار کیے ہیں ، جیسے جاوا (بائٹ کوڈ مرتب) کے لئے GNU کمپلر ، GNU Classpath (معیاری لائبریری) ، اور IcedTea-Web (اپلیٹس کے لئے براؤزر پلگ ان)۔ 

تازہ ترین ورژن جاوا 13 ہیں ، جو ستمبر 2019 میں ریلیز ہوئے ہیں ، اور جاوا 11 ، جو فی الحال تعاون یافتہ طویل مدتی سپورٹ (ایل ٹی ایس) ورژن ہے ، جو 25 ستمبر ، 2018 کو جاری کیا گیا تھا۔ اوریکل جاوا 8 ایل ٹی ایس کو جنوری 2019 میں تجارتی استعمال کے لئے آخری مفت عوامی اپ ڈیٹ کے لئے جاری کیا گیا ہے ، جبکہ یہ دوسری صورت میں جاوا 8 کی کم از کم دسمبر 2020 تک ذاتی استعمال کے لئے عوامی اپ ڈیٹ کے ساتھ تعاون کرے گا۔ اوریکل (اور دیگر) بڑی عمر کے انسٹال کرنے کی انتہائی سفارش کرتے ہیں غیر حل شدہ سیکیورٹی امور کی وجہ سے سنگین خطرات کی وجہ سے جاوا کے ورژن۔ چونکہ جاوا 9 (اور 10 اور 12) اب تعاون یافتہ نہیں ہے ، اوریکل اپنے صارفین کو فوری طور پر تازہ ترین ورژن (فی الحال جاوا 13) یا ایل ٹی ایس کی رہائی میں منتقلی کا مشورہ دیتا ہے۔ 

جیمس گوسلنگ ، مائک شیریڈن ، اور پیٹرک نحٹن نے جون 1991 میں جاوا زبان کے منصوبے کا آغاز کیا۔  جاوا کو اصل میں انٹرایکٹو ٹیلی ویژن کے لئے ڈیزائن کیا گیا تھا ، لیکن اس وقت ڈیجیٹل کیبل ٹیلی ویژن انڈسٹری کے لئے یہ بہت ترقی یافتہ تھا۔  زبان کو ابتدائی طور پر بلوط کے درخت کے بعد اوک کہا جاتا تھا جو گوسلنگ کے دفتر کے باہر کھڑا تھا۔ بعد میں یہ منصوبہ گرین کے نام سے چلا گیا اور آخر کار جاوا کافی سے ، انڈونیشیا کی کافی سے جاوا کا نام تبدیل کر دیا گیا۔  گوسلنگ نے جاوا کو C / C ++ اسٹائل نحو کے ساتھ ڈیزائن کیا تھا جس میں سسٹم اور ایپلیکیشن پروگرامرز واقف ہوں گے۔  

سن مائکرو سسٹم نے جاوا کے طور پر پہلا عوامی عمل جاری کیا   1996 میں 1.0۔  اس نے ایک بار لکھنے ، کہیں بھی چلانے (WORA) کا وعدہ کیا تھا ، جس سے مشہور پلیٹ فارمز پر بغیر لاگت رن رن اوقات مہیا ہوگا۔ کافی حد تک محفوظ اور قابل تشکیل سیکیورٹی کی خصوصیت ، اس نے نیٹ ورک اور فائل تک رسائی کی پابندی کی اجازت دی۔ بڑے ویب براؤزروں نے جلد ہی ویب صفحات میں جاوا ایپلٹ چلانے کی صلاحیت کو شامل کرلیا ، اور جاوا تیزی سے مقبول ہوگیا۔ جاوا   جاوا کے ساتھ سختی سے عمل کرنے کے لئے آرتھر وین ہوف کے ذریعہ جاوا میں 1.0 مرتب دوبارہ لکھا گیا تھا   1.0 زبان کی تصریح۔  جاوا کی آمد کے ساتھ   2 (ابتدائی طور پر J2SE کے طور پر جاری کیا گیا   1.2 دسمبر 1998 میں    1999) ، نئے ورژنوں میں پلیٹ فارم کی مختلف اقسام کے لئے متعدد تشکیلات تشکیل دی گئیں۔ جے 2 ای ای میں عام طور پر سرور ماحول میں چلنے والی انٹرپرائز ایپلی کیشنز کے ل technologies ٹکنالوجی اور API شامل ہیں ، جبکہ موبائل ایپلی کیشنز کے ل optim جے 2 ایم ای کی خصوصیت والے API شامل ہیں۔ ڈیسک ٹاپ ورژن کا نام J2SE رکھا گیا ہے۔ 2006 میں ، مارکیٹنگ کے مقاصد کے لئے ، سن نے نئے J2 ورژن کا نام بالترتیب جاوا EE ، جاوا ME ، اور جاوا SE رکھا ۔ 

1997 میں ، سن مائکرو سسٹمز نے جاوا کو باقاعدہ بنانے کے لئے آئی ایس او / آئ سی سی جے ٹی سی 1 اسٹینڈرڈ باڈی اور بعد میں ایکما انٹرنیشنل سے رابطہ کیا ، لیکن جلد ہی اس عمل سے دستبردار ہوگیا۔    جاوا میں ایک رہتا ہے <i id="mwqg">اصل</i> معیار کے ذریعے کنٹرول کیا، اعلی درجے کا Java کمیونٹی عمل .  ایک زمانے میں ، سن نے اپنے ملکیتی سافٹ ویئر کی حیثیت کے باوجود ، زیادہ تر جاوا پر عمل درآمد کئے۔ جاوا انٹرپرائز سسٹم جیسے خصوصی مصنوعات کے لائسنسوں کی فروخت کے ذریعے سورج نے جاوا سے محصول وصول کیا۔ 

13 نومبر ، 2006 کو ، سن نے GNU جنرل پبلک لائسنس (GPL) کی شرائط کے تحت ، اپنی جاوا ورچوئل مشین (JVM) کو مفت اور اوپن سورس سافٹ ویئر (FOSS) کے طور پر جاری کیا۔ 8 مئی 2007 کو ، سورج نے یہ عمل ختم کیا ، اپنے تمام JVM کا بنیادی کوڈ مفت سافٹ ویئر / اوپن سورس تقسیم کی شرائط کے تحت دستیاب کروایا ، کوڈ کے ایک چھوٹے حصے کو چھوڑ کر جس میں سورج کاپی رائٹ نہیں رکھتا تھا۔  

سن کے نائب صدر امیر گرین نے کہا کہ جاوا کے حوالے سے سورج کا مثالی کردار ایک مبشر کی حیثیت سے تھا۔  اوریکل کارپوریشن کے سن rosrosysterosms–––– Sun Sun Sun Sun Sun Sun Sun Sun Sun Sun Sun Sun Sun............. acquisition acquisition acquisition acquisition. acquisition. acquisition.................................. of of ste ste Java Java جاوا ٹکنالوجی کا کارخانہ ہونے کی حیثیت سے اپنے آپ کو شرکت اور شفافیت کی ایک جماعت کو فروغ دینے کے ل re عہد وابستہ کے ساتھ بیان کیا ہے۔  اس سے اوریکل نے گوگل کے خلاف اینڈروئیڈ ایس ڈی کے کے اندر جاوا استعمال کرنے کے لئے ( اینڈروئیڈ سیکشن ملاحظہ کریں) قانونی چارہ جوئی کرنے سے کچھ نہیں روکا۔ جاوا سافٹ ویئر لیپ ٹاپ سے لے کر ڈیٹا سینٹرز تک ، گیم کنسولز سے سائنسی سپر کمپیوٹر تک ہر چیز پر چلتا ہے۔  2 اپریل ، 2010 کو ، جیمز گوسلنگ نے اوریکل سے استعفیٰ دے دیا۔  

جنوری 2016 میں ، اوریکل نے اعلان کیا کہ جے ڈی کے 9 پر مبنی جاوا رن ٹائم ماحول براؤزر پلگ ان کو بند کردے گا۔

اصول 
جاوا زبان کی تخلیق میں پانچ بنیادی اہداف تھے:  
 یہ سادہ ، آبجیکٹ پر مبنی اور واقف ہونا ضروری ہے۔ 
 یہ مضبوط اور محفوظ ہونا چاہئے۔ 
 یہ فن تعمیر غیر جانبدار اور پورٹیبل ہونا ضروری ہے۔ 
 اسے اعلی کارکردگی کے ساتھ عملدرآمد کرنا چاہئے۔ 
 اس کی ترجمانی ، تھریڈ اور متحرک ہونا ضروری ہے۔ 

     ، جاوا   8 کی حمایت کی ہے؛ اور جاوا دونوں   8 اور 11 بطور لانگ ٹرم سپورٹ (ایل ٹی ایس) ورژن۔ جاوا کے اہم ریلیز ورژن ، ان کی ریلیز کی تاریخوں کے ساتھ: 
 جے ڈی کے 1.0 (23 جنوری ، 1996)  
 جے ڈی کے 1.1 (19 فروری ، 1996) 
 جے 2 ایس ای 1.2 (8 دسمبر ، 1998) 
 جے 2 ایس ای 1.3 (8 مئی ، 2000) 
 جے 2 ایس ای 1.4 (6 فروری ، 2002) 
 جے 2 ایس ای 5.0 (30 ستمبر ، 2004) 
 جاوا ایس ای 6 (11 دسمبر ، 2006) 
 جاوا ایس ای 7 (28 جولائی ، 2011) 
 جاوا SE 8 (18 مارچ ، 2014) 
 جاوا SE 9 (ستمبر 21 ، 2017) 
 جاوا SE 10 (20 مارچ ، 2018) 
 جاوا SE 11 (ستمبر 25 ، 2018)  
 جاوا SE 12 (19 مارچ ، 2019) 
 جاوا SE 13 (17 ستمبر ، 2019) 

سن نے جاوا کے چار ایڈیشن کی وضاحت کی ہے اور اس کی تائید کی ہے جس میں مختلف اطلاق کے مختلف ماحول کو نشانہ بنایا گیا ہے اور اس کے بہت سے APIs کو منقسم کیا گیا ہے تاکہ وہ پلیٹ فارم میں سے ایک سے تعلق رکھتے ہوں۔ پلیٹ فارم یہ ہیں: 
 اسمارٹ کارڈز کے لئے جاوا کارڈ۔  
 جاوا پلیٹ فارم ، مائکرو ایڈیشن (جاوا ME) - محدود وسائل والے ماحول کو نشانہ بنانا۔  
 جاوا پلیٹ فارم ، معیاری ایڈیشن (جاوا SE) - ھدف بنائے جانے والے ورک سٹیشن کے ماحول۔  
 جاوا پلیٹ فارم ، انٹرپرائز ایڈیشن (جاوا ای ای) - بڑے تقسیم شدہ انٹرپرائز یا انٹرنیٹ ماحول کو نشانہ بنانا۔  

جاوا APIs میں کلاسز کو الگ الگ گروپوں میں منظم کیا جاتا ہے جسے پیکیجز کہتے ہیں ۔ ہر پیکیج میں متعلقہ انٹرفیس ، کلاس اور مستثنیات کا ایک مجموعہ ہوتا ہے ۔ دستیاب پیکیجز کی تفصیل کے لئے علیحدہ پلیٹ فارم سے رجوع کریں۔    ] 

سن نے پرسنل جاوا کے نام سے ایک ایڈیشن بھی فراہم کیا جس کو بعد میں ، معیار پر مبنی جاوا ایم ای کنفیگریشن پروفائل جوڑیاں بھی خارج کردی گئیں۔

عملدرآمد کا نظام 
جاوا کا ایک ڈیزائن مقصد پورٹیبلٹی ہے ، جس کا مطلب یہ ہے کہ جاوا پلیٹ فارم کے لئے لکھے گئے پروگراموں کو ہارڈ ویئر اور آپریٹنگ سسٹم کے کسی بھی مجموعہ پر مناسب رن ٹائم سپورٹ کے ساتھ چلنا چاہئے۔ یہ جاوا لینگویج کوڈ کو براہ راست فن تعمیر کے مخصوص مشین کوڈ کے بجائے ، انٹرمیڈیٹ کی نمائندگی کے لئے جاوا بائیک کوڈ نامی مرتب کرکے حاصل کیا گیا ہے۔ جاوا بائٹ کوڈ کی ہدایات مشین کوڈ کے مشابہ ہیں ، لیکن ان کا مقصد ایک ورچوئل مشین (VM) کے ذریعہ انجام دیا جانا ہے جو خاص طور پر میزبان ہارڈ ویئر کے لئے لکھا گیا ہے۔ اختتامی صارف عام طور پر جاوا رن ٹائم ماحولیات (JRE) ان کی اپنی مشین پر اسٹینڈ جاوا ایپلی کیشنز کے لئے استعمال کرتے ہیں ، یا جاوا ایپلٹ کے لئے کسی ویب براؤزر میں استعمال کرتے ہیں۔ 

معیاری لائبریریاں میزبان سے متعلق خصوصی خصوصیات جیسے گرافکس ، تھریڈنگ اور نیٹ ورکنگ تک رسائی حاصل کرنے کا ایک عمومی طریقہ مہیا کرتی ہیں۔ 

آفاقی بائیک کوڈ کا استعمال پورٹنگ کو آسان بنا دیتا ہے۔ تاہم ، مشین کی ہدایات میں بائیک کوڈ کی ترجمانی کرنے کے اوور ہیڈ نے توضیحی پروگراموں کو تقریبا ہمیشہ ہی مقامی پھانسیوں سے زیادہ آہستہ آہستہ چلایا۔ صرف وقتی وقت (جے آئی ٹی) مرتب کرنے والے جو رن ٹائم کے دوران بائی کوڈ کو مشین کوڈ میں مرتب کرتے ہیں ابتدائی مرحلے سے متعارف کرایا گیا تھا۔ جاوا خود پلیٹ فارم سے آزاد ہے اور اس کے لئے جاوا ورچوئل مشین کے ذریعہ چلانے والے مخصوص پلیٹ فارم کے مطابق ہے ، جو جاوا کے بائیک کوڈ کو پلیٹ فارم کی مشین زبان میں ترجمہ کرتا ہے۔

کارکردگی 
جاوا میں لکھے جانے والے پروگراموں میں ساکھ اور سی ++ میں لکھے ہوئے پروگراموں کی نسبت زیادہ میموری کی ضرورت ہوتی ہے۔   تاہم، اعلی درجے کا Java پروگراموں 'پر عملدرآمد کی رفتار کے تعارف کے ساتھ نمایاں طور پر بہتر صرف میں وقت تالیف لئے 1997/1998 میں جاوا <span typeof="mw:Entity" id="mwAS4">&nbsp;</span> 1.1 ،  بہتر کوڈ تجزیہ (جیسے اندرونی طبقات ، سٹرنگ بلڈر کلاس ، اختیاری دعوے وغیرہ) کی حمایت کرنے والی زبان کی خصوصیات میں اضافہ ، اور جاوا ورچوئل مشین میں اصلاح ، جیسے ہاٹ سپاٹ 2000 میں سن کے جے وی ایم کے لئے ڈیفالٹ بن گیا۔ . جاوا کے ساتھ   1.5، کارکردگی سمیت java.util.concurrent پیکج کے علاوہ کے ساتھ بہتر کیا گیا تھا تالا مفت کے نفاذ ConcurrentMaps اور دیگر ملٹی کور مجموعوں، اور یہ جاوا کے ساتھ مزید بہتر کیا گیا تھا   1.6۔

نان جے وی ایم 
کچھ پلیٹ فارم جاوا کے لئے براہ راست ہارڈ ویئر کی مدد کی پیش کش کرتے ہیں۔ ایسے مائکرو کنٹرولر موجود ہیں جو جاوا بائٹ کوڈ کو سافٹ ویئر جاوا ورچوئل مشین کے بجائے ہارڈ ویئر میں چلا سکتے ہیں ،  اور کچھ اے آر ایم پر مبنی پروسیسرز کو جازلی بائیک کوڈ کو اپنے جازیل آپشن کے ذریعہ انجام دینے کے لئے ہارڈ ویئر سپورٹ حاصل کرسکتا ہے ، حالانکہ موجودہ عمل میں زیادہ تر حمایت چھوڑ دی گئی ہے۔ بازو کی

خودکار میموری کا نظم و نسق 
آبجیکٹ لائف سائیکل میں میموری کا نظم کرنے کے لئے جاوا خود کار طریقے سے کچرا جمع کرنے والا استعمال کرتا ہے۔ پروگرامر اس بات کا تعین کرتا ہے کہ آبجیکٹ کب بنائے جاتے ہیں ، اور جاوا رن ٹائم میموری کو بازیافت کرنے کا ذمہ دار ہے جب ایک بار اشیاء استعمال میں نہیں آتی ہیں۔ ایک بار جب کسی شے کا کوئی حوالہ باقی نہیں رہ جاتا ہے ، تو ناقابل رسائی میموری کوڑے دان جمع کرنے والے کے ذریعہ خود بخود آزاد ہونے کا اہل ہوجاتا ہے۔ میموری لیک کی طرح کچھ اس وقت بھی ہوسکتا ہے اگر ایک پروگرامر کا کوڈ کسی ایسی چیز کا حوالہ رکھتا ہے جس کی ضرورت نہیں رہ جاتی ہے ، عام طور پر جب اب جن اشیاء کی ضرورت نہیں ہوتی ہے وہ کنٹینر میں محفوظ ہوجاتے ہیں جو اب بھی استعمال میں ہیں۔ اگر غیر موجود شے کے طریقوں کو کہا جاتا ہے تو ، ایک نو پوائنٹر استثناء پھینک دیا جاتا ہے۔   

جاوا کے خودکار میموری مینجمنٹ ماڈل کے پیچھے ایک خیال یہ ہے کہ پروگرامرز کو دستی میموری کا نظم و نسق انجام دینے کے بوجھ سے بچایا جاسکتا ہے۔ کچھ زبانوں میں، اشیاء کی تخلیق کے لئے میموری لپیٹ پر مختص کیا جاتا ہے اسٹیک یا واضح طور پر مختص اور سے deallocated ڈھیر . بعد کے معاملے میں ، میموری کو سنبھالنے کی ذمہ داری پروگرامر پر عائد ہوتی ہے۔ اگر پروگرام کسی شے کا تعل .ق نہیں کرتا ہے تو ، میموری کا رساو ہوتا ہے۔ اگر یہ پروگرام میموری تک رسائی حاصل کرنے یا اسے ختم کرنے کی کوشش کرتا ہے جو پہلے ہی غیر معزول ہوچکا ہے تو ، اس کا نتیجہ وضاحتی اور پیش گوئی کرنا مشکل ہے ، اور امکان ہے کہ یہ پروگرام غیر مستحکم یا حادثے کا شکار ہوجائے گا۔ اسمارٹ پوائنٹرز کے استعمال سے جزوی طور پر اس کا تدارک کیا جاسکتا ہے ، لیکن اس سے اوورہیڈ اور پیچیدگی بڑھ جاتی ہے۔ نوٹ کریں کہ کوڑا کرکٹ اکٹھا کرنا منطقی میموری کو روکنے سے نہیں روکتا ، یعنی وہ جگہ جہاں میموری کا حوالہ دیا جاتا ہے لیکن کبھی استعمال نہیں ہوتا ہے۔ 

کچرا جمع کرنا کسی بھی وقت ہوسکتا ہے۔ مثالی طور پر ، یہ تب ہوگا جب کوئی پروگرام بیکار ہو۔ اس کی ضمانت دی گئی ہے کہ اگر کسی نئے شے کو مختص کرنے کے لئے ڈھیر پر ناکافی میموری موجود ہو۔ یہ ایک پروگرام لمحہ بہ لمحہ رکنے کا سبب بن سکتا ہے۔ جاوا میں واضح میموری کا انتظام ممکن نہیں ہے۔ 

جاوا C / C ++ اسٹائل پوائنٹر ریاضی کی حمایت نہیں کرتا ہے ، جہاں آبجیکٹ کے پتوں کو ریاضی کے ساتھ جوڑ توڑ کیا جاسکتا ہے (جیسے آفسیٹ کو جوڑ کر یا گھٹا کر)۔ اس سے کوڑا کرکٹ جمع کرنے والا حوالہ دینے والی اشیاء کو منتقل کرنے کی اجازت دیتا ہے اور قسم کی حفاظت اور حفاظت کو یقینی بناتا ہے۔ 

جیسا کہ C ++ اور کچھ دوسری آبجیکٹ پر مبنی زبانوں میں ہے ، جاوا کی ابتدائی اعداد و شمار کی اقسام کے متغیرات یا تو ڈھیروں کی بجائے سیدھے کھیتوں (اشیاء کے لئے) یا اسٹیک (طریقوں کے لئے) میں محفوظ ہیں ، جیسا کہ غیر قدیم اعداد و شمار کے لئے عام طور پر سچ ہے اقسام (لیکن فرار تجزیہ دیکھیں)۔ جاوا کے ڈیزائنرز نے کارکردگی کی وجوہات کی بناء پر یہ شعوری فیصلہ کیا۔ 

جاوا میں متعدد قسم کے کچرے جمع کرنے والوں پر مشتمل ہے۔ بطور ڈیفالٹ ، ہاٹ اسپاٹ متوازی اسکینج کچرا جمع کرنے والا استعمال کرتا ہے۔  تاہم ، وہاں بہت سے دوسرے کوڑے دان جمع کرنے والے بھی موجود ہیں جو ڈھیروں کا انتظام کرنے میں استعمال ہوسکتے ہیں۔ جاوا میں 90٪ ایپلی کیشنز کے لئے ، کونکورینٹ مارک-سویپ (CMS) کوڑے دان جمع کرنے والا کافی ہے۔  اوریکل کا ارادہ ہے کہ CMS کو کچرے کے پھلے کلیکٹر (G1) سے تبدیل کریں۔  

میموری مینجمنٹ کے مسئلے کو حل کرنے سے پروگرامر کو دوسرے طرح کے وسائل جیسے نیٹ ورک یا ڈیٹا بیس کنیکشنز ، فائل ہینڈلز وغیرہ کو خاص طور پر مستثنیات کی موجودگی میں ہینڈل کرنے کے بوجھ سے نجات نہیں ملتی۔    
[ حوالہ کی ضرورت ]

نحو 

جاوا کا نحو زیادہ تر C ++ سے متاثر ہوتا ہے۔ سی ++ کے برعکس ، جو ساخت ، عمومی اور آبجیکٹ پر مبنی پروگرامنگ کے نحو کو جوڑتا ہے ، جاوا تقریبا خاص طور پر آبجیکٹ پر مبنی زبان کے طور پر بنایا گیا تھا۔  تمام کوڈ کلاسوں کے اندر لکھا ہوا ہے ، اور ہر اعداد و شمار کی ایک شے ایک ایسی چیز ہے ، جس میں اعداد و شمار کے ابتدائی اقسام (یعنی اعداد ، اعداد ، عدد نمبر ، بولین اقدار ، اور حرف) کو چھوڑ کر ، جو کارکردگی کی وجوہات کی بناء پر اشیاء نہیں ہیں۔ جاوا نے C ++ کے کچھ مشہور پہلوؤں کو دوبارہ استعمال کیا (جیسے    طریقہ)۔ 

C ++ کے برعکس ، جاوا آپریٹرز سے زیادہ بوجھ  یا کلاسوں کے لئے متعدد وراثت کی حمایت نہیں کرتا ہے ، حالانکہ انٹرفیس کے لئے متعدد وراثت کی حمایت کی جاتی ہے۔  

جاوا C ++ کی طرح کے تبصرے استعمال کرتا ہے۔ تبصرے کے تین مختلف اسٹائل ہیں: ایک ہی لائن اسٹائل جس میں دو سلیش ( // ) کے ساتھ نشان لگا ہوا ہے ، ایک سے زیادہ لائن اسٹائل /* ساتھ کھولا گیا ہے اور */ ساتھ بند ہوا ہے ، اور جاواڈوک تبصرہ کرنے کا انداز /** ساتھ کھلا اور */ ساتھ بند ہوا . تبصرہ کا Javadoc سٹائل صارف پروگرام کے لئے دستاویزات کی تخلیق کرنے Javadoc کارکردگی کو چلانے کے لئے اور کچھ پڑھ سکتا اجازت دیتا مربوط ترقی کے ماحول جیسے (IDEs کے) چاند اور سورج گرہن IDE کے اندر رسائی دستاویزات کے لئے ڈویلپرز کی اجازت دینے کے لئے.

ہیلو دنیا کی مثال 
روایتی ہیلو ورلڈ پروگرام جاوا میں لکھا جاسکتا ہے:  public class HelloWorldApp {
  public static void main(String[] args) {
    System.out.println("Hello World!"); // Prints the string to the console.
  }
} ماخذ فائلوں کو عوامی کلاس کے نام سے منسوب کرنا ضروری ہے ، جس میں اس کا لاحقہ ہوتا ہے۔ .java ، مثال کے طور پر ، HelloWorldApp.java .java ۔ اس کو سب سے پہلے جاوا کمپلر کا استعمال کرتے ہوئے ، HelloWorldApp.class نامی ایک فائل تیار کرتے ہوئے مرتب کیا جانا چاہئے۔ تب ہی اس کو پھانسی دی جاسکتی ہے ، یا لانچ کیا جاسکتا ہے۔ جاوا سورس فائل میں صرف ایک پبلک کلاس ہوسکتی ہے ، لیکن اس میں ایک عوامی سطح پر رسائی نہ کرنے والے متعدد کلاسوں اور متعدد عوامی داخلی کلاسوں پر مشتمل ہوسکتی ہے۔ سورس فائل میں ایک سے زیادہ کلاسوں پر مشتمل ہے تو، یہ ایک کلاس (کی طرف سے متعارف کرایا بنانے کے لئے ضروری ہے کہ class عوامی (کی طرف سے پہلے مطلوبہ الفاظ کی) public مطلوبہ الفاظ) اور یہ کہ عوام کے طبقے کے نام کے ساتھ سورس فائل کا نام. 

ایک ایسی کلاس جس کو پبلک نہیں قرار دیا گیا وہ کسی بھی جاوا فائل میں اسٹور ہوسکتا ہے۔ مرتب ماخذ فائل میں بیان کردہ ہر کلاس کے لئے ایک کلاس فائل تیار کرے گا۔ کلاس فائل کا نام منسلک .کلاس کے ساتھ، کلاس کا نام ہے. کلاس فائل بنانے کے ل anonym ، گمنام کلاسوں کے ساتھ ایسا سلوک کیا جاتا ہے جیسے ان کا نام ان کی منسلک کلاس ، ایک $ ، اور ایک عدد اعداد کا مجموعہ تھا۔ 

کلیدی لفظ public اشارہ کرتا ہے کہ دوسرے کلاسوں میں کوڈ سے کسی طریقہ کو طلب کیا جاسکتا ہے ، یا یہ کہ کلاس کو درجہ بندی کے باہر کی جماعتیں استعمال کرسکتی ہیں۔ کلاس درجہ بندی کا تعلق اس ڈائریکٹری کے نام سے ہے جس میں .جاوا فائل واقع ہے۔ اسے ایک رس لیول موڈیفائر کہا جاتا ہے۔ دیگر رسائی کی سطح میں تبدیلی کرنے والوں میں private اور protected مطلوبہ الفاظ شامل ہیں۔ 

کسی طریقہ کار کے سامنے کلیدی لفظ static  ایک مستحکم طریقہ کی نشاندہی کرتا ہے ، جو صرف طبقے سے وابستہ ہوتا ہے نہ کہ اس طبقے کی کسی خاص مثال سے۔ کسی بھی چیز کے حوالہ کے بغیر صرف جامد طریقوں کی مدد کی جاسکتی ہے۔ جامد طریقے کسی بھی طبقے کے ممبروں تک رسائی حاصل نہیں کرسکتے جو جامد بھی نہیں ہوتے ہیں۔ مستحکم نامزد کردہ طریقے مثال کے طریقے نہیں ہیں اور کام کرنے کیلئے کلاس کی ایک مخصوص مثال درکار ہوتی ہے۔ 

کلیدی لفظ void ہے اس بات کا اشارہ ہے کہ اہم طریقہ کال کرنے والے کو کوئی قیمت نہیں دیتا ہے۔ اگر جاوا پروگرام میں کسی خامی کے کوڈ کے ساتھ باہر نکلنا ہے تو اسے سسٹم ڈاٹ ایسٹ () کو واضح طور پر کال کرنا چاہئے۔ 

طریقہ کا نام main جاوا زبان میں کلیدی لفظ نہیں ہے۔ جاوا لانچر پروگرام پر قابو پانے کے ل calls یہ صرف اس طریقہ کا نام ہے۔ جاوا کی کلاسیں جو منظم ماحول میں چلتی ہیں جیسے ایپلٹ اور انٹرپرائز جاوا بین main() طریقہ استعمال نہیں کرتے ہیں اور نہ ہی ان کی ضرورت ہوتی ہے۔ جاوا پروگرام میں متعدد کلاسیں شامل ہوسکتی ہیں جن کے main طریقے ہیں ، اس کا مطلب یہ ہے کہ VM کو واضح طور پر بتانے کی ضرورت ہے کہ کونسی کلاس شروع کرنا ہے۔ 

بنیادی طریقہ کار میں String اشیاء کی ایک صف کو قبول کرنا چاہئے۔ کنونشن کے ذریعہ ، اسے args طور پر حوالہ دیا جاتا ہے حالانکہ کوئی دوسرا قانونی شناخت کنندہ نام استعمال کیا جاسکتا ہے۔ جاوا کے بعد سے   5 ، مرکزی طریقہ کار متغیر دلائل بھی استعمال کرسکتا ہے ، public static void main(String... args) ، جس کے ذریعہ String دلائل کی صوابدیدی تعداد کے ساتھ اہم طریقہ کار کی اجازت دی جاسکتی ہے۔ اس متبادل اعلامیے کا اثر Semantically یکساں ہے ( args پیرامیٹر سے جو اب بھی String اشیاء کی ایک صف ہے) ، لیکن یہ صف کو تخلیق کرنے اور پاس کرنے کے لئے متبادل نحو کی اجازت دیتا ہے۔ 

جاوا لانچر نے دی گئی کلاس (کمانڈ لائن پر یا JAR میں ایک وصف کے طور پر مخصوص) لوڈ کرکے اور اس کا public static void main(String[]) طریقہ کار شروع کرکے جاوا لانچ کیا۔ کھڑے اکیلے پروگراموں کو واضح طور پر اس طریقہ کار کا اعلان کرنا چاہئے۔ String[] args پیرامیٹر String آبجیکٹ کی ایک صف ہے جس میں کلاس کو منظور ہونے والے کسی بھی دلائل پر مشتمل ہوتا ہے۔ main پیرامیٹرز اکثر کمانڈ لائن کے ذریعہ گزر جاتے ہیں۔ 

پرنٹنگ جاوا کی معیاری لائبریری کا ایک حصہ ہے: System کلاس ایک عوامی جامد فیلڈ کی وضاحت کرتی ہے جسے کال کی out ۔ out اعتراض کی ایک مثال ہے PrintStream کلاس اور پر ڈیٹا پرنٹنگ کے لئے بہت سے طریقے فراہم کرتا معیار کے باہر سمیت println(String) بھی گزر سٹرنگ کے لئے ایک نئی لائن شامل پیدا ہوا. 

تار "Hello World!" مرتب کرنے والے کے ذریعہ خود بخود اسٹرنگ آبجیکٹ میں تبدیل ہوجاتا ہے۔

طریقوں کے ساتھ مثال کے طور پر 
// This is an example of a single line comment using two slashes

/* This is an example of a multiple line comment using the slash and asterisk.
 This type of comment can be used to hold a lot of information or deactivate
 code, but it is very important to remember to close the comment. */

package fibsandlies;
import java.util.HashMap;

/**
 * This is an example of a Javadoc comment; Javadoc can compile documentation
 * from this text. Javadoc comments must immediately precede the class, method, or field being documented.
 */
public class FibCalculator extends Fibonacci implements Calculator {

  private static Map<Integer, Integer> memoized = new HashMap<Integer, Integer>();

  /*
   * The main method written as follows is used by the JVM as a starting point for the program.
   */
  public static void main(String[] args) {
    memoized.put(1, 1);
    memoized.put(2, 1);
    System.out.println(fibonacci(12)); //Get the 12th Fibonacci number and print to console
  }

  /**
   * An example of a method written in Java, wrapped in a class.
   * Given a non-negative number FIBINDEX, returns
   * the Nth Fibonacci number, where N equals FIBINDEX.
   * @param fibIndex The index of the Fibonacci number
   * @return The Fibonacci number
   */
  public static int fibonacci(int fibIndex) {
    if (memoized.containsKey(fibIndex)) {
      return memoized.get(fibIndex);
    } else {
      int answer = fibonacci(fibIndex - 1) + fibonacci(fibIndex - 2);
      memoized.put(fibIndex, answer);
      return answer;
    }
  }
}

خصوصی کلاسیں 
جاوا ایپلٹ ایک ایسے پروگرام تھے جو دوسرے پروگراموں میں سرایت کرتے تھے ، عام طور پر کسی ویب براؤزر میں دکھائے جانے والے ویب صفحے میں۔ جاوا ایپلٹ API جاوا کے بعد اب فرسودہ ہے   2017 میں 8۔

سریلیٹ 
جاوا سرویلیٹ ٹیکنالوجی ویب ڈویلپرز کو ایک ویب سرور کی فعالیت کو بڑھانے اور موجودہ کاروباری سسٹم تک رسائی کے ل a ایک سادہ ، مستقل میکانزم فراہم کرتی ہے۔ سرولیٹس سرور کی طرف سے جاوا EE اجزاء ہیں جو مؤکلوں کی طرف سے درخواستوں (عام طور پر HTTP درخواستوں) کو جواب دیتے ہیں (عام طور پر HTML صفحات)۔

آبجیکٹ اوریئنٹڈ پروگرامنگ زبانیں
پروگرامنگ زبانیں
تصویر کا متروک پیرامیٹر استعمال کرنے والے صفحات
جاوا پلیٹ فارم
جے وی ایم پروگرامنگ لینگویجز
خاندان سی پروگرامنگ زبان
سن مائکروسسٹمز
غیر نظر ثانی شدہ تراجم پر مشتمل صفحات
کلاس بیسڈ پروگرامنگ زبانیں
ویب آرکائیو سانچے مع وے بیک روابط
ویکی ڈیٹا سے مطابقت رکھنے والی مختصر تفصیل