امام هادی (ع)
علی النقی
ابوالحسن، علی بن محمد بن علی بن موسی الهادی النقی العسکری، دهمین امام شیعیان که از وی با عنوان امام علیّ نقی یا امام هادی یاد می‌کنند. جز هادی، معروفترین لقب او نقی است. نام او، «علی» و کنیه‌اش «ابوالحسن ثالث» و از القابش نقی، هادی، امین، طیب، ناصح و مرتضی را ذکر کرده‌اند. شیعیان وی را با فرزندش حسن بن علی، «امامین عسکریین» می‌خوانند، زیرا در شهر نظامی سامراء (عسکر)، زیر نظر خلفای عباسی بودند. زندگی او مصادف با ضعف عباسیان بود. از او رساله‌ای در جبر و اختیار و چند زیارت نقل شده‌است. منابع شیعیان کرامات بسیاری را به او نسبت می‌دهند.






ریشه‌شناسی القاب

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






تولد

علی‌النقی در نیمه ذی الحجه ۲۱۴ قمری در روستای صریا در نزدیکی مدینه به دنیا آمد. پدرش امام نهم شیعیان، ابوجعفر محمد التقی‌الجواد بود. مادرش بنا به برخی منابع ام‌الفضل دختر المامون و بنا به برخی دیگر ام‌الولد بود که سمانه یا سوسن خوانده می‌شد که اصالت مغربی داشت، البته نام مادرش مدنب، حدیث و غزال هم ذکر شده‌است. روایت اخیر محتملتر است چون بنا به برخی تواریخ ازدواج محمد بن علی و ام‌الفضل در ۲۱۵ هجری رخ داد.






زندگی

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

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

از برجسته‌ترین اصحاب و شاگردان علی بن محمد می‌توان نام اینان را ذکر کرد:

عبدالعظیم حسنی
حسن بن راشد
عثمان بن سعید عمری

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






مرگ

علی بن محمد سرانجام به دستور معتز در روز ۳ رجب سال ۲۵۴ قمری در ۴۱ سالگی در زندان کشته شد. مدت امامت علی بن محمد ۳۳ سال بود. بنا به سنت شیعه او مسموم شد. ابن بابویه گفته‌است که او توسط متوکل، یا معتمد مسموم شد، گرچه هیچ یک از این دو در زمان مرگ او خلیفه نبودند. گرچه مقاتل الطالبین او را جزو شهدای علوی قید نمی‌کند.

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






کرامات

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

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







بمب‌گذاری در حرم

در ۳ اسفند ۱۳۸۴، یک بمبگذاری در حرم عسکریین، به مقبره هادی و پسرش حسن عسکری آسیب فروانی زد، حمله دیگری نیز در ۲۳ خرداد ۱۳۸۶ انجام شد که منجر به تخریب دو مناره حرم شد.
آهنگ جنجالی







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





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






تاریخچهٔ حرم
ابتدا تا پایان غیبت صغرا

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






دوران آل حمدان

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






دوران آل بویه

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

شیخ توسی از ابوهاشم جعفری از حسن عسکری نقل می‌کند که: «مزارم در سرّ من رأی ایمنی برای هر دو گروه است.
در امالی و عدة الداعی نیز زیارت این جا را مهم شمرده‌اند.







بمب‌گذاری و ویرانی حرم عسکریین

اولین حمله در ۳ اسفند ۱۳۸۴ و دومین حمله پس از گذشت شانزده ماه در ۲۳ خرداد ۱۳۸۶ رخ داد.

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





بمب‌گذاری در حرم عسکریین

اولین حمله در ۳ اسفند ۱۳۸۴ و دومین حمله پس از گذشت شانزده ماه در ۲۳ خرداد ۱۳۸۶ رخ داد.

در حمله اول بمب‌گذاران با به کارگیری بیش از ۲۰۰ کیلوگرم تی ان تی و کار گزاری آن در مرکز گنبد اقدام به تخریب گنبد و بخشی از گلدسته (مناره) های طلائی حرم کردند..






اولین واکنش‌ها

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

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





امامت

امامت یکی از اصول باور شیعیان است، که به جهت اهمیت آن شیعیان دوازده‌امامی یا اثنی عشری خود را «امامیّه» می‌خوانند.

اصول تشیع: توحید، نبوت، معاد، عدل و امامت

شیعیان با استناد به حدیث نبوی: «من مات و لم یعرف امام زمانه، مات میتة جاهلیّة» (هر کس بمیرد درحالیکه امام زمانش را نشناسد، به مرگ جاهلیت مرده‌است) شناخت امام را شرط قبول اسلام نزد پروردگار می‌دانند.






امامان

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

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

شیعه دارای شاخه‌های دیگری نیز هست؛ مانند اسماعیلیه و زیدیه و فاطمیه که امامان آنان با شیعیان اثنی عشری تفاوت‌هایی دارد.






ویژگی‌ها

۱- عصمت: امامان به همراه پیامبر اسلام و فاطمه زهرا ۱۴ نفر هستندکه به چهارده معصوم معروف است، که طبق برداشت ویژه‌ای از آیه تطهیر (آیه ۳۳ سوره احزاب) هیچ گناه شرعی اعم از کبیره و صغیره را مرتکب نمی‌شوند. چرا که پیشوا و الگو در صورتی گفتار و رفتارش حجیّت دارد و لازم به تبعیت است، که یقین به صحت آن وجود داشته باشد. البته در مورد خطا و اشتباه اختلاف نظرهایی وجود دارد.
۲- عدالت: امامان هیچ حقی را از خود، دیگران و خدا -چنانکه در دین این حقوق تعریف شده و مطابق عقل محض باشد- پایمال نمی‌کنند.
۳- علم: امامان کاملاً به دین آگاهند و جواب تمام سؤالات دینی را می‌دانند. لذا در دوره بعد از پیامبر تفسیر دین بر عهده آنهاست. در خصوص نحوه تحصیل علم و حدود آن اختلافاتی وجود دارد.
۴- حجت: امامان حجت خدا در هر عصری هستند. بدین معنا که حیات دینی تماما و کاملاً در وجود آنها محقق شده‌است. لذا رفتار و کردار آنها بر سایرین حجت محسوب می‌شود. به عبارت دیگر مردم با مشاهده رفتار و گفتار آنها به آنچه در اسلام پسندیده و توصیه شده‌است، آگاه می‌شوند.
۵- ولایت: این مفهوم با مفهوم ولی و قطب نزد برخی گروه‌های متصوفه و تا حدودی امام اسماعیلیه مشترک است و تنها اختلاف در مورد شخص ولی است. این مفهوم هیچ گونه ارتباط ظاهری و باطنی با ولایت فقیه ندارد. همچنین بسیاری از اهل سنت ظاهری به علت همین مفهوم بسیاری اتهامات را به شیعیان نسبت می‌دهند. با توجه به باطنی بودن معنای آن توضیحی دشوار دارد.

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






مسئولیت‌ها

۱- مرجعیت دینی: در دیدگاه شیعیان بعد از تکمیل تشریع دین توسط پیامبر، تفسیر آن و پاسخ به مسائل جدید پیش آمده نیازمند ویژگی‌های خاصی است، که شامل علم کامل به دین و عصمت از گناه می‌شود. با توجه مجموعه صفات فوق تنها ائمه این ویژگی را دارند. آنها از جانب خدا مکلف هستند آموزه‌های دین را برای مردم تبیین کنند و مردم باید سؤالات خود را نزد آنها ببرند(سوره نساء، آیه ۸۳). این مرجعیت با مرجعیت مصطلح نزد شیعیان در حال حاضر در ظاهر شبیه و در باطن متفاوت است. اهل سنت اصلاً به چنین جایگاهی در دین اعتقاد ندارند و بر اشخاصی جائزالخطا بر اساس درک خود در امور دین فتوا می‌دهند.
۲- رهبری اجتماع(ولایت امر): این مفهوم بین شیعه و سنی مشترک است. بدین معنا که هر دو ضرورت وجود چنین جایگاهی در جامعه مسلمانان اتفاق نظر دارند. اهل سنت آن را اصطلاحا «خلیفه» می‌خوانند. آنها برای شخص خلیفه صفت و ویژگی خاصی قائل نیستند و راه انتخاب او را «شورا»، «اهل حل و عقد»، «وصایت» و برخی «غلبه»می دانند. در طول تاریخ بسیاری خلفا با شمشیر این مقام را تصاحب کرده‌اند. بسیاری از خلفا را کشته و بسیاری را عزل کرده‌اند. اما نزد شیعه ولی باید عالم، عادل، معصوم و حجت باشد، تا بر طبق دین حکم کند و بر هیچ کس ظلمی روا نکند و مردم مکلف به اطاعت از او هستند.(سوره نساء آیه ۵۹) این مفهوم با ولایت فقیه تشابه ظاهری و تفاوت باطنی دارد. شیعیان معتقدند که شخص ولی امر توسط خدا برگزیده شده و توسط نبی و یا امام قبلی به مردم معرفی می‌شود. خلافت حق اوست و سایرین که این مسند را گرفته‌اند، غاصب هستند. استناد آنها به آیه «انما ولیکم الله و رسوله و الذین ءامنوا الذین یقیمون الصلوة و یؤتون الزکوةوهم راکعون» است.(جز این نیست که سرپرست شمافقط خداست و پیامبرش و کسانی که ایمان آورده و در حال رکوع نماز زکات می‌دهند.)(سوره مائده آیه ۵۵) شیعیان مصداق این آیه را علی می‌دانند، که در حال رکوع نماز به فقیری انگشتری خود را بخشید. ضمن آنکه این آیه سیاست اقتصادی- اجتماعی ولایت شیعی را نیز مشخص می‌سازد و بین اصلاح امور مسلمین و دستگیری آنان با عبادت خدا جمع می‌کند.
۳- ولایت باطنی: این مسئولیت به مفهوم باطنی ولایت مرتبط می‌شود و اموری نظیر شفاعت را شامل می‌شود.
page1 - page2 - page3 - page4 - page5 - page7 - page8 - | 4:56 am
خط مشی جاوا

یکی از ویژگی‌های جاوا قابل حمل بودن آن است. یعنی برنامهٔ نوشته شده به زبان جاوا باید به طور مشابهی در کامپیوترهای مختلف با سخت‌افزارهای متفاوت اجرا شود. و باید این توانایی را داشته باشد که برنامه یک بار نوشته شود، یک بار کامپایل شود و در همه کامپیوترها اجرا گردد. به این صورت که کد کامپایل شدهٔ جاوا را ذخیره می‌کند، اما نه به‌صورت کد ماشین بلکه به‌صورت بایت‌کد جاوا. دستورالعمل‌ها شبیه کد ماشین هستند، اما با ماشین‌های مجازی که به طور خاص برای سخت‌افزارهای مختلف نوشته شده‌اند، اجرا می‌شوند. در نهایت کاربر از سکوی جاوا نصب شده روی ماشین خود یا مرورگر وب استفاده می‌کند. کتابخانه‌های استاندارد یک راه عمومی برای دسترسی به ویژگی‌های خاص فراهم می‌کنند. مانند گرافیک، نخ‌کشی و شبکه. در بعضی از نسخه‌های ماشین مجازی جاوا، بایت‌کدها می‌توانند قبل و در زمان اجرای برنامه به کدهای محلی کامپایل شوند. فایدهٔ اصلی استفاده از بایت‌کد، قسمت کردن است. اما ترجمهٔ کلی یعنی برنامه‌های ترجمه شده تقریباً همیشه کندتر از برنامه‌های کامپایل شدهٔ محلی اجرا می‌شوند. این شکاف می‌تواند با چند تکنیک خوش‌بینانه که در کاربردهای 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 نمایش داده می‌شود.
 
ساعت : 4:56 am | نویسنده : admin | مطلب قبلی | مطلب بعدی
جاوا | next page | next page