اهل بیت
معنای اهل بیت

عبارت"اهل" حاکی از اعضای خانواده‌ی یک مرد شامل مردان قبیله، نزدیکان و خویشاوندان زن (یا زنان)و بچه‌ها می‌شود.






عبارت"بیت" به معنی منزل یا مسکن که شامل چادر و ساختمان می‌شود. اهل بیت به معنای تمام اعضای خانواده‌ی یک مرد و یا تمام کسانی که با او زندگی می‌کنند می‌شود. اهل بیت حالت مودبانه‌ی خطاب قرار دادن خانواده یا زن خانواده است. عبارات زیر همه یک معنی دارند:1
.اهل البیت: مردم خانه 2.اهل النبی: خانواده‌ی پیامبر 3.اهل بیت النبی: خانواده‌ی خانه‌ی پیامبر






تفسیر

بحث‌های زیادی درباره اینکه چه کسانی اهل بیت هستند شده. هرچند که اختلافات زیادی بوده ولی یک اجماع بین شیعه و سنی هست که حدیث "اهل کسا" ویژه‌ی علی، فاطمه، حسن و حسین اعضای خانه با مالکیت محمّد است و در آیه‌ی 32 و 33 قرآن به آن تاکید شده است:
ای زنان پيغمبر، شما مانند ديگر زنان نيستيد (بلکه مقامتان رفيع‌تر است) اگر خدا ترس و پرهيزکار باشيد، پس زنهار نازک و نرم (با مردان) سخن مگوييد مبادا آن که دلش بيمار (هوا و هوس) است به طمع افتد (بلکه متين) و درست و نيکو سخن گوييد. ( 32 ) و در خانه‌هايتان بنشينيد و آرام گيريد (و بي‌حاجت و ضرورت از منزل بيرون نرويد) و مانند دوره جاهليت پيشين با آرايش و خود آرايي بيرون نياييد، و نماز به پا داريد و زکات (مال به فقيران) بدهيد و از امر خدا و رسول اطاعت کنيد. خدا چنين مي‌خواهد که هر رجس و آلايشي را از شما خانواده (نبوت) ببرد و شما را از هر عيب پاک و منزه گرداند (ذيل آيه موافق اخبار شيعه و اهل سنت راجع به شخص پيغمبر و علي و فاطمه و حسنين عليهم السّلام است و اگر راجع به زنان پيغمبر بود بايستي ضمير مؤنث-عنکنّ-ذکر شود و به سياق جمل صدر آيه باشد). ( 33 ) و از آن همه آيات الهي و حکمتي که در خانه‌هاي شما تلاوت مي‌شود متذکر شويد (و پند گيريد، و بدانيد) که همانا خدا را (به خلق) لطف و مهرباني است و (به حال همه) آگاه است.






اهمیّت
اهل بیت در قرآن

اهل بیت در قرآن در جاهای مختلفی ذکر شده است. یکی از مهمترین آن‌ها آیهٔ ۳۳ سورهٔ الاحزاب است:
و در خانه‌هایتان بنشینید و آرام گیرید و مانند دورهٔ جاهلیت پیشین با آرایش و خودآرایی بیرون نیایید، و نماز به پا دارید و زکات (مال به فقیران) بدهید و از امر خدا و رسول اطاعت کنید. خدا چنین می‌خواهد که هر رجس و آلایشی را از شما اهل بیت ببرد و شما را از هر عیب پاک و منزه گرداند. (۳۳)

همچنین در آیهٔ ۲۳ سورهٔ الشوری، به نزدیکان پیامبر اسلام اشاره می‌کند:
این (بهشت ابد) همان است که خدا به بندگانی که ایمان آورده و نیکوکار شدند بشارت آن را داده است. بگو: من از شما اجر رسالت جز این نخواهم که مودّت و محبّت در حقّ خویشاوندان منظور دارید و هر که کاری نیکو انجام دهد ما نیز در آن مورد بر نیکویی‌اش بیفزاییم که خدا بسیار آمرزندهٔ گناهان و پذیرندهٔ شکر بندگان است. (۲۳)

در این آیه خدا به محمد دستور می‌دهد تا از پیروانش بخواهد که به خویشاوندانش عشق بورزند.






دیدگاه تاریخی

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






دیدگاه سنتی اسلامی

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

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

اما اهل سنت در مورد مصداق این آیه دیدگاه‌های گوناگونی دارند. برخی پنج‌تن اهل کساء، برخی همسران پیامبر، برخی آل هاشم و برخی دیگر منسوبان و نزدیکان پیامبر را مصداق این آیه دانسته‌اند.







نوحه

نوحه زاری یا ناله‌است.

نوحه قطعه‌ای ادبی است که به صورت آهنگین اجرا می‌شود و مضمونی غم انگیز و بعضاً حماسی دارد.نوحه خوانی ریشه‌ای به درازای غم‎های تاریخ و زمزمه‌های افراد و بخصوص مادران و بانوان در سوگ عزیزانشان دارد.

در مذهب شیعه، نوحه توسط مداحان و در مراسم مذهبی اهل بیت اجرا می‌شود.

نوحه‌ها سبک‌های گوناگونی دارند و برخی از آنها امروزی و مثلاً به صورت پاپ هستند.






محرم

ماه مُحَرّم یا محرم‌الحرام نخستین ماه تقویم اسلامی (هجری قمری) و به اعتقاد مسلمانان از جملهٔ ماه‌های حرام است. به‌همان‌گونه که پیش از ظهور اسلام، در دوران جاهلیت، جنگ و خونریزی در این ماه‌ها ممنوع بود، محمد نیز همان را تأیید کرد.محرم نخستین ماه از ماه‌های دوازده گانه قمری و یکی از ماه‌های حرام است که در دوران جاهلیت و نیز در اسلام، جنگ در آن تحریم شده بود.

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

حوادث و وقایع فراوانی در ماه محرم رخ داده است که در زیر به برخی از آنها اشاره می‌شویم:

غزوه ذات الرقاع، فتح خیبر، ازدواج فاطمه و علی، ورود علی به اسلام ، نبرد کربلا – تاسوعا و عاشورا و قتل حسین و اسارت خاندان حسین به کوفه و شام.

همچنین نقل است که به خلافت رسیدن عثمان، قتل محمد امین برادر مأمون عباسی، قتل جعفر برمکی و انقراض خاندان برمکی و دولت برمکیان، واقعه هولاکو و مستعصم و انقراض دولت بنی عباس در این ماه بوده است.

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







ایام فاطمیه

ایام فاطمیه یا ایام شهادت فاطمه زهرا به سالمرگ فاطمه دختر پیامبر اسلام اطلاق می‌گردد. ایام فاطمیه جمعاً ۶ روز می‌باشد، ۳ روز در ماه جمادی‌الاول و ۳ روز در ماه جمادی‌الثانی. فاطمیه اول از ۱۳ تا ۱۵ جمادی‌الاول است و فاطمیه دوم از سوم تا پنجم جمادی‌الثانی می‌باشد که شیعیان به عزاداری برای فاطمه دختر پیامبر اسلام می‌پردازند.






تاریخ ایام فاطمیه

شیعیان پیرامون تاریخ درگذشت فاطمه دو روایت متفاوت شامل هفتاد و پنج روز بعد از درگذشت محمد و دیگری نود و پنج روز را مورد وثوق می‌دانند. از آنجا که درگذشت محمد در در بیست و هشتم صفر بوده‌است به روایت هفتاد و پنج روز، در مورخ سیزدهم تا پانزدهم جمادی الأوّل را «فاطمیه اول» می‌دانند. بنا به روایت نود و پنج روز، تاریخ درگذشت فاطمه را در سوم تا پنجم جمادی‌الثانی دانسته و آنرا «فاطمیه دوم» می‌نامند.

در فرهنگ عامه، به دهه دوم جمادی‌الاول، از دهم تا بیستم آن ماه که بر اساس روایت ۷۵ روز درگذشت فاطمه در میان آن روزها واقع شده‌است، «دهه اول فاطمیه» و به دهه اول جمادی‌الثانی، از اول تا دهم جمادی‌الثانی که بنا به روایت ۹۵ روز، درگذشت فاطمه در میان این روزها اتفاق افتاده «دهه دوم فاطمیه» می‌گویند.

در فرهنگ عامه شیعیان عراق به جای دو دهه سه دهه بر‌گزار می‌شود، که «دهه اول فاطمیه» ۴۰ روز بعد از درگذشت محمد می‌باشد، که مورخ هشتم ربیع‌الثانی است. البته این تقسیم بندی در شهرهایی مانند قم و تهران نیز وجود دارد.






علت اختلاف تاریخ

در نوشته‌های عربی قدیم از نقطه استفاده نمی‌شده است و کلیهٔ حروف دارای نقطه نبودند، به‌همین خاطر "هفتاد" و "نود" در زبان عربی مانند هم نوشته می‌شده است، که برای تاریخ نویسان دوره‌های بعد قابل تشخیص از هم نبوده‌است.






وقایع منجر به مرگ

شیعیان معتقدند در اثر صدمات و جراحات وارده که در حین رویداد خانه فاطمه اتفاق افتاد و منجر به شکستگی پهلو و سقط جنین وی گردید فاطمه کشته شده است. در عین حال شیعیان بر این نظر دارند که فاطمه بین ۷۵ تا ۹۵ روز پس از وفات محمد درگذشته است. بگفتهٔ روایاتی که در منابعی مانند یعقوبی آمده‌است، زنان قریش و همسران محمد به دیدن فاطمه می‌آیند. اما فاطمه به اسما بیوه جعفر ابن ابی طالب، می‌گوید که از ورود آنان جلوگیری کنند. زیرا فاطمه در وضع بسیار بدی بود و در اثر بیماری بسیار نحیف شده بود.






تدفین

به گفته دانشنامه اسلام اکثریت منابع اولیه تدفین فاطمه را شبانه، مخفی و بدون حضور ابوبکر و عمر می‌دانند.

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







شعبان
شعبان یا شَعبان المُعَظّم (به عربی: شعبان) هشتمین ماه در گاه‌شماری هجری قمری است. ماه شعبان، از عزیزترین ماه‌های اسلامی است. علی بن ابی طالب فرمود: وقتی پیامبر اکرم هلال این ماه را مشاهده می‌کرد، دستور می‌داد که کسی در سراسر مدینه ندا دهد: ای مردم! این ماه ماه من است؛ خدا رحمت کند کسی را که مرا بر ماه من یاری کند، یعنی در آن روزه بدارد. علی بن ابی طالب فرمود: هر کس ماه شعبان را برای محبت به پیامبر خدا و تقرب به خداوند روزه بگیرد، خداوند او را دوست می‌دارد، و به کرامت خویش در روز قیامت نزدیک می‌کند.






نیمه شعبان
نیمهٔ شعبان (۱۵ شعبان در گاهشماری هجری قمری) یکی از جشن‌های مسلمانان شیعه است که هم‌زمان با روز تولد امام دوازدهم شیعیان، امام زمان است.






نام‌های دیگر

شب دعا
نیمه شعبان در ایران
لیلة منتصف شعبان در عربستان
شب رهایی در آسیای جنوبی
برات کاندیلی در ترکیه
شب برات در هند







ماه شعبان

شعبان هشتمین ماه در گاه‌شماری هجری قمری است. ماه‌های رجب، شعبان و رمضان در میان مسلمانان اهمیّت زیادی دارند. از پیامبر اسلام چنین نقل شده‌است که شعبان «ماه من» است.






روز تولد امام دوازدهم شیعیان

سال تولد امام دوازدهم شیعیان را سال ۲۵۵ یا ۲۵۶ هجری نقل کرده‌اند. علت اختلاف شاید این بوده‌است که در سابق، تاریخ را با حروف ابجد می‌نوشتند و درباره سال تولد حجت بن حسن بین واژه‌های «نور» و «نهر» اختلاف است که این اختلاف ناشی از رسم‌الخط ناقلین می‌باشد.






دیدگاه شیعیان

در روایات و احادیث امامان شیعه شب نیمه شعبان از جمله پر فضیلت ترین شب‌ها برای احیا و شب زنده داری، دعا و عبادت است.

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

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

همچنین، شیعیان معتقدند خدا در این شب به تعداد موها و پشم‌های چهارپایان بندگانش را از آتش جهنم آزاد می‌کند و زمان‌های مرگ را ثبت و روزی‌های یک سال را تقسیم می‌کند و همه آنچه را که در طول سال واقع می‌شود نازل می‌سازد.






دیدگاه اهل سنت

اکثریت علما، محدثین و مورخین اهل سنت قائل به ولادت حجت بن حسن هستند؛ حمد فتلاوی در این زمینه می‌نویسد: «جمعی زیادی از علما اهل سنت که تعدادشان به ۱۳۰ نفر می‌رسد، به ولادت حجت بن حسن در سال ۲۵۵ هجری قمری به عنوان فرزند حسن عسکری و از نسل حسین بن علی، گفته‌اند.»
وی هم چنین ۲۶ نفر را نام می‌برد که معترف به ولادت حجت بن حسن در نیمه شعبان هستند.
ابن حجر هیتمی در الصواعق المحرقه می‌نویسد:‹‹ ابو القاسم محمد حجت هنگام وفات پدرش ۵ سال داشت و خداوند او را در همان کودکی حکمت آموخت او قائم منتظر نامیده می‌شود ›› ابن صباغ در فصول المهمه می‌گوید:‹‹ ابوالقاسم محمد حجت پسر حسن خالص در سامرا در نیمه شعبان سا ل ۲۵۵هجری قمری به دنیا آمد. ››
ابن خلکان در وفیات الاعیان چنین نگاشته‌است: ‹‹ابو القاسم محمد فرزند حسن عسکری فرزند علی بن محمد فرزند محمد بن علی دوازدهمین امام از ائمه دوازده‌گانه‌است بر حسب اعتقاد امامیه و ولادت او در روز جمعه نیمه شعبان سال ۲۵۵ هجری قمری بود و هنگامی که پدرش در گذشت او ۵سال سن داشت. ››
و ذهبی در سیر اعلام النبلا و ابن اثیر در الکامل فی التاریخ نیز ولادت حجت بن حسن را ذکر کرده‌اند.






گستره جغرافیایی

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






ایران

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






عراق

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






مصر

در مصر علاوه بر شیعیان، سنی‌ها نیز این روز را جشن می‌گیرند. مولودی‌خوانی مهمترین برنامهٔ جشن نیمه شعبان در مصر است.






بحرین

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






یمن

در یمن مردم در خیابان به جشن گرفتن این روز می‌پردازند و رقص خنجر انجام می‌دهند.*






هند

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

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

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

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

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






مولودی
مولودی، قطعه‌ای ادبی به نثر یا نظم است که محتوایی شاد داشته و درباره اهل بیت می‌باشد. مولودی در ایام شادی مذهبی توسط مداحان اجرا می‌گردد.
page1 - page2 - page3 - page4 - page5 - page7 - page8 - | 7:43 pm
خط مشی جاوا

یکی از ویژگی‌های جاوا قابل حمل بودن آن است. یعنی برنامهٔ نوشته شده به زبان جاوا باید به طور مشابهی در کامپیوترهای مختلف با سخت‌افزارهای متفاوت اجرا شود. و باید این توانایی را داشته باشد که برنامه یک بار نوشته شود، یک بار کامپایل شود و در همه کامپیوترها اجرا گردد. به این صورت که کد کامپایل شدهٔ جاوا را ذخیره می‌کند، اما نه به‌صورت کد ماشین بلکه به‌صورت بایت‌کد جاوا. دستورالعمل‌ها شبیه کد ماشین هستند، اما با ماشین‌های مجازی که به طور خاص برای سخت‌افزارهای مختلف نوشته شده‌اند، اجرا می‌شوند. در نهایت کاربر از سکوی جاوا نصب شده روی ماشین خود یا مرورگر وب استفاده می‌کند. کتابخانه‌های استاندارد یک راه عمومی برای دسترسی به ویژگی‌های خاص فراهم می‌کنند. مانند گرافیک، نخ‌کشی و شبکه. در بعضی از نسخه‌های ماشین مجازی جاوا، بایت‌کدها می‌توانند قبل و در زمان اجرای برنامه به کدهای محلی کامپایل شوند. فایدهٔ اصلی استفاده از بایت‌کد، قسمت کردن است. اما ترجمهٔ کلی یعنی برنامه‌های ترجمه شده تقریباً همیشه کندتر از برنامه‌های کامپایل شدهٔ محلی اجرا می‌شوند. این شکاف می‌تواند با چند تکنیک خوش‌بینانه که در کاربردهای JVM قبلی معرفی شد، کم شود. یکی از این تکنیک‌ها JIT است که بایت‌کد جاوا را به کد محلی ترجمه کرده و سپس آن را پنهان می‌کند. در نتیجه برنامه خیلی سریع‌تر نسبت به کدهای ترجمه شدهٔ خالص شروع و اجرا می‌شود. بیشتر VMهای پیشرفته، به‌صورت کامپایل مجدد پویا، در آنالیز VM، رفتار برنامهٔ اجرا شده و کامپایل مجدد انتخاب شده و بهینه‌سازی قسمت‌های برنامه، استفاده می‌شوند. کامپایل مجدد پویا می‌تواند کامپایل ایستا را بهینه‌سازی کند. زیرا می‌تواند قسمت hot spot برنامه و گاهی حلقه‌های داخلی که ممکن است زمان اجرای برنامه را افزایش دهند را تشخیص دهد. کامپایل JIT و کامپایل مجدد پویا به برنامه‌های جاوا اجازه می‌دهد که سرعت اجرای کدهای محلی بدون از دست دادن قابلیت انتقال افزایش پیدا کند.





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

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


پیاده‌سازی
شرکت سان میکروسیستم مجوز رسمی برای پلت فرم استاندارد جاوا را به مایکروسافت ویندوز, لینوکس، و سولاریس (سیستم‌عامل). داده‌است. همچنین محیط‌های دیگری برای دیگر پلت فرم‌ها فراهم آورده‌است. علامت تجاری مجوز شرکت سان میکروسیستم طوری بود که با همهٔ پیاده‌سازی‌ها سازگار باشد. به علت اختلاف قانونی که با ماکروسافت پیدا کرد، زمانی که شرکت سان ادعا کرد که پیاده‌سازی ماکروسافت از RMI یا JNI پشتیبانی نکرده و ویژگی‌های خاصی را برای خودش اضافه کرده‌است. شرکت سان در سال ۱۹۹۷ پیگیری قانونی کرد و در سال ۲۰۰۱ در توافقی ۲۰ میلیون دلاری برنده شد. در نتیجه کمی بعدماکروسافت جاوا را به ویندوز فرستاد. در نسخهٔ اخیر ویندوز، مرورگر اینترنت نمی‌تواند از جاوا پلت فرم پشتیبانی کند. شرکت سان و دیگران یک سیستم اجرای جاوای رایگان برای آنها و نسخه‌های دیگر ویندوز فراهم آوردند.
اداره خودکار حافظه

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

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

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

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



بر طبق قرارداد فایل هل بعد از کلاس‌های عمومی نام گذاری می‌شوند. سپس باید پسوند java را به این صورت اضافه کرد: Hello world.java. این فایل اول باید با استفاده از کامپایلر جاوا به بایت کد کامپایل شود. در نتیجه فایل Hello world.class ایجاد می‌شود. این فایل قابل اجرا است. فایل جاوا ممکن است فقط یک کلاس عمومی داشته باشد. اما می‌تواند شامل چندین کلاس با دستیابی عمومی کمتر باشد.

کلاسی که به صورت خصوصی تعریف می‌شود ممکن است در فایل.java ذخیره شود. کامپایلر برای هر کلاسی که در فایل اصلی تعریف می‌شود یک کلاس فایل تولید می‌کند. که نام این کلاس فایل همنام کلاس است با پسوند.class

کلمه کلیدی public (عمومی) برای قسمت‌هایی که می‌توانند از کدهای کلاس‌های دیگر صدا زده بشوند، به کار برده می‌شود. کلمهٔ کلیدی static (ایستا) در جلوی یک تابع، یک تابع ایستا را که فقط وابسته به کلاس است و نه قابل استفاده برای نمونه‌هایی از کلاس، نشان می‌دهد. فقط تابع‌های ایستا می‌توانند توسط اشیا بدون مرجع صدا زده شوند. داده‌های ایستا به متغیرهایی که ایستا نیستند، نمی‌توانند دسترسی داشته باشند.

کلمهٔ کلیدی void (تهی) نشان می‌دهد که تابع main هیچ مقداری را بر نمی‌گرداند. اگر برنامهٔ جاوا بخواهد با خطا از برنامه خارج شود، باید system.exit() صدا زده شود. کلمهٔ main یک کلمهٔ کلیدی در زبان جاوا نیست. این نام واقعی تابعی است که جاوا برای فرستادن کنترل به برنامه، صدا می‌زند. برنامه جاوا ممکن است شامل چندین کلاس باشد که هر کدام دارای تابع main هستند.

تابع main باید آرایه‌ای از اشیا رشته‌ای را بپذیرد. تابع main می‌تواند از آرگومان‌های متغیر به شکل public static void main(string…args) استفاده کند که به تابع main اجازه می‌دهد اعدادی دلخواه از اشیا رشته‌ای را فراخوانی کند. پارامترstring[]args آرایه‌ای از اشیا رشته ایست که شامل تمام آرگومان‌هایی که به کلاس فرستاده می‌شود، است.

چاپ کردن، قسمتی از کتابخانهٔ استاندارد جاوا است. کلاس سیستم یک فیلد استاتیک عمومی به نام out تعریف کرده‌است. شی out یک نمونه از کلاس printstream است و شامل تعداد زیادی تابع برای چاپ کردن اطلاعات در خروجی استاندارد است. همچنین شامل println(string) برای اضافه کردن یک خط جدید برای رشتهٔ فرستاده شده اضافه می‌کند.
توزیع‌های جاوا

منظور از توزیع جاوا پیاده‌سازی‌های مختلفی است که برای کامپایلر جاوا و همچنین مجموعه کتابخانه‌های استاندارد زبان جاوا (JDK) وجود دارد. در حال حاضر چهار توزیع‌کنندهٔ عمده جاوا وجود دارند:

سان میکروسیستمز: توزیع کننده اصلی جاوا و مبدع آن می‌باشد. در اکثر موارد هنگامی که گفته می‌شود جاوا منظور توزیع سان می‌باشد.
GNU Classpath: این توزیع از سوی موسسه نرم‌افزارهای آزاد منتشر شده و تقریباً تمامی کتابخانه استاندارد زبان جاوا در آن بدون بهره‌گیری از توزیع شرکت سان از اول پیاده‌سازی شده‌است. یک کامپایلر به نام GNU Compiler for Java نیز برای کامپایل کردن کدهای جاوا توسط این موسسه ایجاد شده‌است. فلسفه انتخاب نام Classpath برای این پروژه رها کردن تکنولوژی جاوا از وابستگی به علامت تجاری جاوا است بطوریکه هیچ وابستگی یا محدودیتی برای استفاده آن از لحاظ قوانین حقوقی ایجاد نشود و از طرفی به خاطر وجود متغیر محیطی classpath در تمامی محیط‌های احرایی برنامه‌های جاوا، این نام به نوعی تکنولوژی جاوا را برای خواننده القا می‌کند. کامپایلر GNU توانایی ایجاد کد اجرایی (در مقابل بایت کد توزیع سان) را داراست. لازم به ذکر است که در حال حاضر شرکت سان تقریباً تمامی کدهای JDK را تحت مجوز نرم‌افزارهای آزاد به صورت متن باز منتشر کرده‌است و قول انتشار قسمت بسیار کوچکی از این مجموعه را که به‌دلیل استفاده از کدهای شرکت‌های ثانویه نتوانسته به صورت متن باز منتشر نماید در آینده نزدیک با بازنویسی این کدها داده‌است.
مایکروسافت #J: این در حقیقت یک توزیع جاوا نیست. بلکه زبانی مشابه می‌باشد که توسط مایکروسافت و در چارچوب.net ارائه شده‌است. انتظار اینکه در سیستم‌عاملی غیر از ویندوز هم اجرا شود را نداشته باشید.
AspectJ: این نیز یک زبان مجزا نیست. بلکه یک برنامه الحاقی می‌باشد که امکان برنامه نویسی Aspect Oriented را به جاوا می‌افزاید. این برنامه توسط بنیاد برنامه‌نویسی جلوه‌گرا و به صورت کدباز ارائه شده‌است.



کلاس‌های خاص

برنامک (برنامه‌های کاربردی کوچک)

اپلت جاواها برنامه‌هایی هستند که برای کاربردهایی نظیر نمایش در صفحات وب، ایجاد شده‌اند. واژهٔ import باعث می‌شود کامپایلر جاوا کلاس‌های javaapplet.Applet وjava.awt.Graphics را به کامپایل برنامه اضافه کند. کلاس Hello کلاس Applet را توسعه می‌دهد. کلاس اپلت چارچوبی برای کاربردهای گروهی برای نمایش و کنترل چرخهٔ زندگی اپلت، درست می‌کند. کلاس اپلت یک تابع پنجره‌ای مجرد است که برنامه‌های کوچکی با قابلیت نشان دادن واسط گرافیکی برای کاربر را فراهم می‌کند. کلاس Hello تابع موروثی print(Graphics) را از سوپر کلاس container باطل می‌کند، برای اینکه کدی که اپلت را نمایش می‌دهد، فراهم کند. تابع paint شی‌های گرافیکی را که شامل زمینه‌های گرافیکی هستند را می‌فرستد تا برای نمایش اپلت‌ها استفاده شوند. تابع paint برای نمایش "Hello world!" تابع drawstring(string,int,int) را صدا می‌زند.

جاوا سرولت
تکنولوژی servlet جاوا گسترس وب را به آسانی فراهم می‌کند. و شامل مکانیزم‌هایی برای توسعهٔ تابعی سرور وب و برایدسترسی به سیستم‌های تجاری موجود است.servlet قسمتی از javaEE است که به درخواست‌های مشتری پاسخ می‌دهد.

واژهٔ import کامپایلر جاوا را هدایت می‌کند که تمام کلاس‌های عمومی و واسط‌ها را از بسته‌های java.io وjava.servlet را در کامپایل وارد کند.

کلاس Hello کلاس Genericservlet را توسعه می‌دهد. کلاس Genericservlet واسطی برای سرور فراهم می‌کند تا درخواست را به servlet بفرستد و چرخهٔ زندگی servlet را کنترل کند.
JSP
صفحهٔ سرور جاوا قسمتی از سرور javaEE است که پاسخ تولید می‌کند. نوعاً صفحات HTML به درخواست‌های HTTP از مشتری.JSPها کد جاوا در صفحهٔ HTML را با استفاده از حائل <%and%> اضافه می‌کنند.JSP به javaservlet کامپایل می‌شود.

سوینگ
Swing کتابخانهٔ واسط گرافیکی کاربر است برای پلت فرم javaSE. ابزاری مشابه پنجره، GTK و motif توسط شرکت sun فراهم شده‌اند. این مثال کاربرد swing یک پنجرهٔ واحد همراه با Hello world را ایجاد می‌کند.

اولین جملهٔ import کامپایلر جاوا را هدایت می‌کندتا کلاس Borderlayout را از بستهٔ java.awt در جاوا به کامپایل اضافه کند. و import دوم همهٔ کلاس‌های عمومی و واسط آن‌ها را از بستهٔ javax.swing اضافه می‌کند. کلاس Hello کلاس Jframe را توسعه می‌دهد. کلاس Jframe یک پنجره با میلهٔ عنوان و کنترل بستن است.

زمانی که برنامه آغاز می‌شود، تابع main با JVM صدا زده می‌شود. این یک نمونهٔ جدید از کلاس Hello را ایجاد کرده و با صدا زدن تابع setvisible(boolean) با مقدار true نمایش داده می‌شود.
 
ساعت : 7:43 pm | نویسنده : admin | مطلب قبلی | مطلب بعدی
جاوا | next page | next page