جاوا (پروگرامنگ زبان)
پیراڈائم | Multi-paradigm: generic, اوبجیکٹ اوریئنٹڈ پروگرامنگ (class-based), imperative, reflective |
---|---|
اشاعت | ۲۳ مئی ۱۹۹۵[۱] |
ڈیزائنر | James Gosling |
ترقی دہندہ | Sun Microsystems |
مستحکم اشاعت | Java SE 13 (۱۷ ستمبر ۲۰۱۹ | )
شعبہ تحریر | Static, strong, safe, nominative, manifest |
اہم اطلاقات | Compilers: OpenJDK (javac, sjavac), GNU Compiler for Java (GCJ), Eclipse Compiler for Java (ECJ) Virtual machines: OpenJDK JRE, Oracle JRockit, Azul Zing, IBM J9, Excelsior JET, Gluon VM, Microsoft JVM, Apache Harmony JIT compilers: HotSpot, GraalVM, Azul Falcon (LLVM) |
متاثر | Ada 83, C++,[۲] C#,[۳] Eiffel,[۴] Mesa,[۵] Modula-3,[۶] Oberon,[۷] Objective-C,[۸] UCSD Pascal,[۹][۱۰] Object Pascal[۱۱] |
موثر | Ada 2005, BeanShell, C#, Chapel,[۱۲] Clojure, ECMAScript, Fantom, Gambas,[۱۳] Groovy, Hack,[۱۴] Haxe, J#, Kotlin, پی ایچ پی, پائیتھن (پروگرامنگ زبان), Scala, Seed7, Vala |
فائل دی توسیع | .java, .class, .jar |
ویب سائٹ | oracle |
[[wikibooks:{{{Wikibooks}}}|{{{Wikibooks}}}]] بر ویکی کتب |
جاوا نوں اصل وچ سن مائکرو نظام وچ جیمز گوسلنگ نے تیار کيتا سی (جو اس دے بعد اوریکل نے حاصل کيتا سی) تے سن مائکرو سسٹم دے جاوا پلیٹ فارم دے بنیادی جزو دے طور اُتے 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 اُتے مبنی جاوا رن ٹائم ماحول براؤزر پلگ انہاں نوں بند کردے گا۔ [۲۷]
اصول
سودھوجاوا بولی دی تخلیق وچ پنج بنیادی اہداف سن : [۲۸]
- ایہ سادہ ، آبجیکٹ اُتے مبنی تے واقف ہونا ضروری اے۔
- ایہ مضبوط تے محفوظ ہونا چاہیدا۔
- ایہ فن تعمیر غیر جانبدار تے پورٹیبل ہونا ضروری اے۔
- اسنوں اعلیٰ کارکردگی دے نال عملدرآمد کرنا چاہیدا۔
- اس دی ترجمانی ، تھریڈ تے متحرک ہونا ضروری اے۔
بمطابق مارچ 2019[update] ، جاوا 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"> </span> 1.1 ، [۳۸] بہتر کوڈ تجزیہ (جداں اندرونی طبقات ، سٹرنگ بلڈر کلاس ، اختیاری دعوے وغیرہ) دی حمایت کرنے والی بولی دی خصوصیات وچ اضافہ ، تے جاوا ورچوئل مشین وچ اصلاح ، جداں ہاٹ سپاٹ 2000 وچ سن دے جے وی ایم دے لئی ڈیفالٹ بن گیا۔ . جاوا دے نال 1.5، کارکردگی سمیت java.util.concurrent پیکج دے علاوہ دے نال بہتر کيتا گیا سی تالا مفت دے نفاذ ConcurrentMaps تے ہور ملٹی کور مجموعےآں، تے ایہ جاوا دے نال ہور بہتر کيتا گیا سی 1.6۔
نان جے وی ایم
سودھوکچھ پلیٹ فارم جاوا دے لئی براہ راست ہارڈ ویئر دی مدد کيتی پیش کش کردے نيں۔ ایداں دے مائکرو کنٹرولر موجود نيں جو جاوا بائٹ کوڈ نوں سافٹ ویئر جاوا ورچوئل مشین دے بجائے ہارڈ ویئر وچ چلا سکدے نيں ، [۳۹] تے کچھ اے آر ایم اُتے مبنی پروسیسرز نوں جازلی بائیک کوڈ نوں اپنے جازیل آپشن دے ذریعہ انجام دینے دے لئی ہارڈ ویئر سپورٹ حاصل کرسکدا اے ، حالانکہ موجودہ عمل وچ زیادہ تر حمایت چھڈ دتی گئی اے۔ بازو کی
خودکار میموری دا نظم و نسق
سودھوآبجیکٹ لائف سائیکل وچ میموری دا نظم کرنے دے لئی جاوا خود کار طریقے توں کچرا جمع کرنے والا استعمال کردا اے۔ پروگرامر اس گل دا تعین کردا اے کہ آبجیکٹ کدوں بنائے جاندے نيں ، تے جاوا رن ٹائم میموری نوں بازیافت کرنے دا ذمہ دار اے جدوں اک بار اشیاء استعمال وچ نئيں آندی نيں۔ اک بار جدوں کسی شے دا کوئی حوالہ باقی نئيں رہ جاندا اے ، تاں ناقابل رسائی میموری کوڑے دان جمع کرنے والے دے ذریعہ خود بخود آزاد ہونے دا اہل ہوجاندا اے۔ میموری لیک دی طرح کچھ اس وقت وی ہوسکدا اے جے اک پروگرامر دا کوڈ کسی ایسی چیز دا حوالہ رکھدا اے جس دی ضرورت نئيں رہ جاندی اے ، عام طور اُتے جدوں ہن جنہاں اشیاء دی ضرورت نئيں ہُندی اے اوہ کنٹینر وچ محفوظ ہوجاندے نيں جو ہن وی استعمال وچ نيں۔ جے غیر موجود شے دے طریقےآں نوں کہیا جاندا اے تاں ، اک نو پوائنٹر استثناء سُٹ دتا جاندا اے۔ [۴۰][۴۱]
جاوا دے خودکار میموری مینجمنٹ ماڈل دے پِچھے اک خیال ایہ اے کہ پروگرامرز نوں دستی میموری دا نظم و نسق انجام دینے دے بجھ توں بچایا جاسکدا اے۔ کچھ زباناں وچ ، اشیاء دی تخلیق دے لئی میموری لپیٹ اُتے مختص کيتا جاندا اے اسٹیک یا واضح طور اُتے مختص تے توں deallocated ڈھیر . بعد دے معاملے وچ ، میموری نوں سنبھالنے دی ذمہ داری پروگرامر اُتے عائد ہُندی اے۔ جے پروگرام کسی شے دا تعل .ق نئيں کردا اے تاں ، میموری دا رساو ہُندا اے۔ جے ایہ پروگرام میموری تک رسائی حاصل کرنے یا اسنوں ختم کرنے دی کوشش کردا اے جو پہلے ہی غیر معزول ہوچکيا اے تاں ، اس دا نتیجہ وضاحتی تے پیش گوئی کرنا مشکل اے ، تے امکان اے کہ ایہ پروگرام غیر مستحکم یا حادثے دا شکار ہوجائے گا۔ اسمارٹ پوائنٹرز دے استعمال توں جزوی طور اُتے اس دا تدارک کيتا جاسکدا اے ، لیکن اس توں اوورہیڈ تے پیچیدگی ودھ جاندی اے۔ نوٹ کرن کہ کوڑا کرکٹ اکٹھا کرنا منطقی میموری نوں روکنے توں نئيں رکدا ، یعنی اوہ جگہ جتھے میموری دا حوالہ دتا جاندا اے لیکن کدی استعمال نئيں ہُندا اے۔
کچرا جمع کرنا کسی وی وقت ہوسکدا اے۔ مثالی طور اُتے ، ایہ تب ہوئے گا جدوں کوئی پروگرام بیکار ہوئے۔ اس دی ضمانت دتی گئی اے کہ جے کسی نويں شے نوں مختص کرنے دے لئی ڈھیر اُتے ناکافی میموری موجود ہوئے۔ ایہ اک پروگرام لمحہ بہ لمحہ رکنے دا سبب بن سکدا اے۔ جاوا وچ واضح میموری دا انتظام ممکن نئيں اے۔
جاوا C / C ++ اسٹائل پوائنٹر ریاضی دی حمایت نئيں کردا اے ، جتھے آبجیکٹ دے پتےآں نوں ریاضی دے نال جوڑ توڑ کيتا جاسکدا اے (جداں آفسیٹ نوں جوڑ دے یا گھٹا کر)۔ اس توں کوڑا کرکٹ جمع کرنے والا حوالہ دینے والی اشیاء نوں منتقل کرنے دی اجازت دیندا اے تے قسم دی حفاظت تے حفاظت نوں یقینی بناندا اے۔
جداں کہ C ++ تے کچھ دوسری آبجیکٹ اُتے مبنی زباناں وچ اے ، جاوا دی ابتدائی اعداد و شمار دیاں قسماں دے متغیرات یا تاں ڈھیراں دی بجائے سِدھے کھیتاں (اشیاء دے لئی) یا اسٹیک (طریقےآں دے لئی) وچ محفوظ نيں ، جداں کہ غیر قدیم اعداد و شمار دے لئی عام طور اُتے سچ اے قسماں (لیکن فرار تجزیہ دیکھو)۔ جاوا دے ڈیزائنرز نے کارکردگی دی وجوہات دی بناء اُتے ایہ شعوری فیصلہ کيتا۔
جاوا وچ متعدد قسم دے کچرے جمع کرنے والےآں اُتے مشتمل اے۔ بطور ڈیفالٹ ، ہاٹ اسپاٹ متوازی اسکینج کچرا جمع کرنے والا استعمال کردا اے۔ [۴۲] اُتے ، اوتھے بوہت سارے دوسرے کوڑے دان جمع کرنے والے وی موجود نيں جو ڈھیراں دا انتظام کرنے وچ استعمال ہوسکدے نيں۔ جاوا وچ 90٪ ایپلی کیشنز دے لئی ، کونکورینٹ مارک-سویپ (CMS) کوڑے دان جمع کرنے والا کافی اے۔ [۴۳] اوریکل دا ارادہ اے کہ CMS نوں کچرے دے پھلے کلیکٹر (G1) توں تبدیل کرن۔ [۴۴]
میموری مینجمنٹ دے مسئلے نوں حل کرنے توں پروگرامر نوں دوسرے طرح دے وسائل جداں نیٹ ورک یا ڈیٹا ویہہ کنیکشنز ، فائل ہینڈلز وغیرہ نوں خاص طور اُتے مستثنیات دی موجودگی وچ ہینڈل کرنے دے بجھ توں نجات نئيں ملدی۔ سانچہ:Cns [ <span title="This claim needs references to reliable sources.<nowiki/> (November 2019)">حوالہ دی ضرورت ]
نحو
سودھوجاوا دا نحو زیادہ تر C ++ توں متاثر ہُندا اے۔ سی ++ دے برعکس ، جو ساخت ، عمومی تے آبجیکٹ اُتے مبنی پروگرامنگ دے نحو نوں جوڑدا اے ، جاوا تقریبا خاص طور اُتے آبجیکٹ اُتے مبنی بولی دے طور اُتے بنایا گیا سی۔ [۲۸] تمام کوڈ کلاساں دے اندر لکھیا ہويا اے ، تے ہر اعداد و شمار دی اک شے اک ایسی چیز اے ، جس وچ اعداد و شمار دے ابتدائی قسماں (یعنی اعداد ، اعداد ، عدد نمبر ، بولین اقدار ، تے حرف) نوں چھڈ کے ، جو کارکردگی دی وجوہات دی بناء اُتے اشیاء نئيں نيں۔ جاوا نے C ++ دے کچھ مشہور پہلوآں نوں دوبارہ استعمال کيتا (جداں سانچہ:Java طریقہ)۔
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 صفحات)۔
- ↑ سانچہ:Cite magazine
- ↑ Chaudhary، Harry H. (۲۰۱۴-۰۷-۲۸). «Cracking The Java Programming Interview :: 2000+ Java Interview Que/Ans». دریافتشده در ۲۰۱۶-۰۵-۲۹.
- ↑ Java 5.0 added several new language features (the enhanced for loop, autoboxing, varargs and annotations), after they were introduced in the similar (and competing) C# language. [۱] Archived March 19, 2011, at the وے بیک مشین [۲] Archived January 7, 2006, at the وے بیک مشین
- ↑ Gosling, James؛ McGilton, Henry (مئی ۱۹۹۶). «The Java Language Environment». بایگانیشده از اصلی در مئی ۶, ۲۰۱۴. دریافتشده در مئی ۶, ۲۰۱۴. نامعلوم پیرامیٹر دا
|url-status=
نظر انداز کردا (کمک) - ↑ Gosling, James؛ Joy, Bill؛ Steele, Guy؛ Bracha, Gilad. «The Java Language Specification, 2nd Edition». بایگانیشده از اصلی در اگست ۵, ۲۰۱۱. دریافتشده در فروری ۸, ۲۰۰۸. نامعلوم پیرامیٹر دا
|url-status=
نظر انداز کردا (کمک) - ↑ «The A-Z of Programming Languages: Modula-3». Computerworld.com.au. بایگانیشده از اصلی در جنوری ۵, ۲۰۰۹. دریافتشده در جون ۹, ۲۰۱۰. نامعلوم پیرامیٹر دا
|url-status=
نظر انداز کردا (کمک) - ↑ Niklaus Wirth stated on a number of public occasions, e.g. in a lecture at the Polytechnic Museum, Moscow in September 2005 (several independent first-hand accounts in Russian exist, e.g. one with an audio recording: Filippova, Elena (ستمبر ۲۲, ۲۰۰۵). «Niklaus Wirth's lecture at the Polytechnic Museum in Moscow».), that the Sun Java design team licensed the Oberon compiler sources a number of years prior to the release of Java and examined it: a (relative) compactness, type safety, garbage collection, no multiple inheritance for classes – all these key overall design features are shared by Java and Oberon.
- ↑ Patrick Naughton cites Objective-C as a strong influence on the design of the Java programming language, stating that notable direct derivatives include Java interfaces (derived from Objective-C's protocol) and primitive wrapper classes. [۳] Archived July 13, 2011, at the وے بیک مشین
- ↑ TechMetrix Research (۱۹۹۹). «History of Java» (PDF). Java Application Servers Report. بایگانیشده از اصلی (PDF) در دسمبر ۲۹, ۲۰۱۰.
The project went ahead under the name green and the language was based on an old model of UCSD Pascal, which makes it possible to generate interpretive code.
نامعلوم پیرامیٹر دا|url-status=
نظر انداز کردا (کمک) - ↑ «A Conversation with James Gosling – ACM Queue». Queue.acm.org. اگست ۳۱, ۲۰۰۴. بایگانیشده از اصلی در جولائی ۱۶, ۲۰۱۵. دریافتشده در جون ۹, ۲۰۱۰. نامعلوم پیرامیٹر دا
|url-status=
نظر انداز کردا (کمک) - ↑ In the summer of 1996, Sun was designing the precursor to what is now the event model of the AWT and the JavaBeans component architecture. Borland contributed greatly to this process. We looked very carefully at Delphi Object Pascal and built a working prototype of bound method references in order to understand their interaction with the Java programming language and its APIs.White Paper About Microsoft's Delegates
- ↑ «Chapel spec (Acknowledgements)» (PDF). Cray Inc. اکتوبر ۱, ۲۰۱۵. بایگانیشده از اصلی (PDF) در فروری ۵, ۲۰۱۶. دریافتشده در جنوری ۱۴, ۲۰۱۶. نامعلوم پیرامیٹر دا
|url-status=
نظر انداز کردا (کمک) - ↑ «Gambas Documentation Introduction». Gambas Website. بایگانیشده از اصلی در اکتوبر ۹, ۲۰۱۷. دریافتشده در اکتوبر ۹, ۲۰۱۷. نامعلوم پیرامیٹر دا
|url-status=
نظر انداز کردا (کمک) - ↑ سانچہ:Cite magazine
- ↑ Byous, Jon (c. 1998). "Java technology: The early years". Sun Microsystems. https://web.archive.org/web/20050420081440/http://java.sun.com/features/1998/05/birthday.html. Retrieved on 2005-04-22.
- ↑ Object-oriented programming "The History of Java Technology". c. 1995. https://web.archive.org/web/20100210225651/http://www.java.com/en/javahistory/. Retrieved on 2010-04-30.
- ↑ "JAVASOFT SHIPS JAVA 1.0". https://web.archive.org/web/20070310235103/http://www.sun.com/smi/Press/sunflash/1996-01/sunflash.960123.10561.xml. Retrieved on 2018-05-13.
- ↑ "JSG – Java Study Group". https://web.archive.org/web/20060825082008/http://www.open-std.org/JTC1/SC22/JSG/. Retrieved on August 2, 2006.
- ↑ "Why Java™ Was – Not – Standardized Twice". https://web.archive.org/web/20140113101235/http://www.computer.org/csdl/proceedings/hicss/2001/0981/05/09815015.pdf. Retrieved on June 3, 2018.
- ↑ "What is ECMA—and why Microsoft cares". https://web.archive.org/web/20140506215226/http://www.zdnet.com/news/what-is-ecma-and-why-microsoft-cares/298821. Retrieved on May 6, 2014.
- ↑ "Java Community Process website". Jcp.org. May 24, 2010. https://web.archive.org/web/20060808070528/http://www.jcp.org/en/home/index. Retrieved on 2010-06-09.
- ↑ "JAVAONE: Sun – The bulk of Java is open sourced". GrnLight.net. https://web.archive.org/web/20140527220942/http://grnlight.net/index.php/programming-articles/115-javaone-sun-the-bulk-of-java-is-open-sourced. Retrieved on 2014-05-26.
- ↑ "Sun's Evolving Role as Java Evangelist". O'Reilly Media. https://web.archive.org/web/20100915162748/http://onjava.com/pub/a/onjava/2002/04/17/evangelism.html. Retrieved on August 2, 2009.
- ↑ "Oracle and Java". Oracle Corporation. https://web.archive.org/web/20100131091008/http://www.oracle.com/us/technologies/java/index.html. Retrieved on 2010-08-23. "Oracle has been a leading and substantive supporter of Java since its emergence in 1995 and takes on the new role as steward of Java technology with a relentless commitment to fostering a community of participation and transparency."
- ↑ "Learn About Java Technology". Oracle. https://web.archive.org/web/20111124090716/http://www.java.com/en/about/. Retrieved on November 21, 2011.
- ↑ Gosling, James (April 9, 2010). "Time to move on...". https://web.archive.org/web/20101105031239/http://nighthacks.com/roller/jag/entry/time_to_move_on. Retrieved on 2011-11-16.
- ↑ Topic, Dalibor. "Moving to a Plugin-Free Web". https://web.archive.org/web/20160316164325/https://blogs.oracle.com/java-platform-group/entry/moving_to_a_plugin_free. Retrieved on March 15, 2016.
- ↑ ۲۸.۰ ۲۸.۱ "1.2 Design Goals of the Java™ Programming Language". Oracle. January 1, 1999. https://web.archive.org/web/20130123204103/http://www.oracle.com/technetwork/java/intro-141325.html. Retrieved on 2013-01-14.
- ↑ "JAVASOFT SHIPS JAVA 1.0". https://web.archive.org/web/20070310235103/http://www.sun.com/smi/Press/sunflash/1996-01/sunflash.960123.10561.xml. Retrieved on 2008-02-05.
- ↑ Chander, Sharat. "Introducing Java SE 11". https://web.archive.org/web/20180926093144/https://blogs.oracle.com/java-platform-group/introducing-java-se-11. Retrieved on September 26, 2018.
- ↑ "Java Card Overview". Oracle. https://web.archive.org/web/20150107034738/http://www.oracle.com/technetwork/java/embedded/javacard/overview/index.html. Retrieved on December 18, 2014.
- ↑ "Java Platform, Micro Edition (Java ME)". Oracle. https://web.archive.org/web/20150104210546/http://www.oracle.com/technetwork/java/embedded/javame/index.html. Retrieved on December 18, 2014.
- ↑ "Java SE". Oracle. https://web.archive.org/web/20141224184532/http://www.oracle.com/technetwork/java/javase/overview/index.html. Retrieved on December 18, 2014.
- ↑ "Java Platform, Enterprise Edition (Java EE)". Oracle. https://web.archive.org/web/20141217155326/http://www.oracle.com/technetwork/java/javaee/overview/index.html. Retrieved on December 18, 2014.
- ↑ "Is the JVM (Java Virtual Machine) platform dependent or platform independent? What is the advantage of using the JVM, and having Java be a translated language?". Programmer Interview. https://web.archive.org/web/20150119144223/http://www.programmerinterview.com/index.php/java-questions/jvm-platform-dependent/. Retrieved on 2015-01-19.
- ↑ Jelovic, Dejan. "Why Java will always be slower than C++". https://web.archive.org/web/20080211111923/http://www.jelovic.com/articles/why_java_is_slow.htm. Retrieved on 2008-02-15.
- ↑ Google. "Loop Recognition in C++/Java/Go/Scala". https://days2011.scala-lang.org/sites/days2011/files/ws3-1-Hundt.pdf. Retrieved on 2012-07-12.
- ↑ "Symantec's Just-In-Time Java Compiler To Be Integrated into Sun JDK 1.1". https://web.archive.org/web/20100628171748/http://www.symantec.com/about/news/release/article.jsp?prid=19970407_03. Retrieved on August 1, 2009.
- ↑ Noc-HMP: A Heterogeneous Multicore Processor for Embedded Systems Designed in SystemJ. 2017-07-22.
- ↑ "NullPointerException". Oracle. https://web.archive.org/web/20140506214735/http://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html. Retrieved on 2014-05-06.
- ↑ "Exceptions in Java". Artima.com. https://web.archive.org/web/20090121152332/http://www.artima.com/designtechniques/exceptions.html. Retrieved on 2010-08-10.
- ↑ "Java HotSpot™ Virtual Machine Performance Enhancements". Oracle.com. https://web.archive.org/web/20170529071720/http://docs.oracle.com/javase/7/docs/technotes/guides/vm/performance-enhancements-7.html. Retrieved on 2017-04-26.
- ↑ "Java HotSpot VM Options". Oracle.com. 2010-09-07. https://web.archive.org/web/20110306144553/http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html. Retrieved on 2012-06-30.
- ↑ "Garbage-First Collector". https://web.archive.org/web/20160309234342/http://docs.oracle.com/javase/7/docs/technotes/guides/vm/G1.html. Retrieved on March 15, 2016.
- ↑ "Operator Overloading (C# vs Java)". Microsoft. https://web.archive.org/web/20150107190007/http://msdn.microsoft.com/en-us/library/ms228498(v=vs.90).aspx. Retrieved on December 10, 2014.
- ↑ "Multiple Inheritance of State, Implementation, and Type". Oracle. https://web.archive.org/web/20141109034520/https://docs.oracle.com/javase/tutorial/java/IandI/multipleinheritance.html. Retrieved on December 10, 2014.
- ↑ "Lesson: A Closer Look at the Hello World Application". اوریکل کارپوریشن. https://web.archive.org/web/20110317072804/http://download.oracle.com/javase/tutorial/getStarted/application/index.html. Retrieved on 2011-04-14.
- ↑ McMillan, Robert (August 1, 2013). "Is Java Losing Its Mojo?". wired.com. https://web.archive.org/web/20170215115409/https://www.wired.com/2013/01/java-no-longer-a-favorite/. Retrieved on March 8, 2017. "Java is on the wane, at least according to one outfit that keeps on eye on the ever-changing world of computer programming languages. For more than a decade, it has dominated the TIOBE Programming Community Index, and is back on top – a snapshot of software developer enthusiasm that looks at things like internet search results to measure how much buzz different languages have. But lately, Java has been slipping."
- ↑ "Deprecated APIs, Features, and Options". https://www.oracle.com/technetwork/java/javase/9-deprecated-features-3745636.html#JDK-8074165. Retrieved on 2019-05-31.