امام
امام
اِمام واژهای عربی و به معنای پیشوا و رهبر است که از اصطلاحات خاص دین اسلام است.
این واژه به خودی خود معنی مقدسی ندارد و در قرآن هم برای پیشوایانی که مردم را به سوی خدا هدایت میکردند به کار رفته و هم برای پیشوایانی که مردم را به سوی کفر هدایت میکردهاند. اما غیر از این معنای عام دارای معانی و کاربردهای خاصی در فرهنگ مسلمانان نیز هست.
کاربردها
امام جماعت: هر فردی که پیشنماز بایستد و دیگران به او اقتدا کنند. این کاربرد بین تمام مسلمانان مشترک است. از نظر فقه شیعه، امام جماعت باید عادل باشد. به عبارت دیگر نمازگزاران دیگر از او گناه کبیره و یا اصرار بر گناه صغیره ندیده باشند.
رهبر اجتماع: خواجه نصیر الدین طوسی در «تجرید الاعتقاد» امامت را به عنوان «ریاسةٌ عامّةٌ» یعنی ریاست عمومی تعریف میکند. این معنی امامت نیز بین تمام مسلمانان جز خوارج مشترک است. البته فرق مختلف شرایط و مصادیق متفاوتی را برای امام در نظر میگیرند.
عالمان برجستهٔ دینی: اهل سنت برای برخی از دانشمندان بسیار برجستهٔ دینی، نظیر محمد غزالی و فخر رازی از این لقب استفاده کردهاند.
لقب بیانگر تقدس: در برخی کشورهای عربی نظیر عراق، سوریه، لبنان و کشورهایی نظیر ایران و جمهوری آذربایجان عدهای از مردم روسیه و بسیاری از مسلمانان اروپایی مردم (شیعه و سنی) بسیاری از افراد مقدس را امام میخوانند.
امام در قرآن
در قرآن از سه نفر با عنوان امام یاد شدهاست و آنان ابراهیم و اسحاق و یعقوب هستند.
امامت در نزد شیعیان امامیه
امامت یکی از اصول باور شیعیان است، که به جهت اهمیت آن شیعیان دوازده امامی خود را امامیّه میخوانند.
سنگ بنای تشیع مسئلهٔ امامت و حجیت قول و فعل امام است. حجیتی که از علم تام و از یقین به محتوای دین ناشی میشود. علمی که از راه اجتهاد کسب نمیشود و به شک و حدس و گمان آلوده نیست و لذا صاحب آن، مرجع نهایی در هر چیزی است که به آن دین گفته میشود، یا به عبارتی حجت آن دین است.شیعیان برای امامان خود چنین منزلتی را قائل هستند.
اصول دین شیعه: توحید، نبوت، معاد (هر سه مشترک با اهل سنت)، عدل و امامت
مسلمان
مُسَلمان کسی است که دین اسلام را باور دارد. اسلام آخرین و یکی از سه دین ابراهیمی بزرگ است. مسلمانان به دو گروه مذهبی کلی سنی و شیعه تقسیم می شوند. مسلمان بودن داشتن اعتقاد به سه اصل دینی؛ توحید، نبوت و معاد است و اسلام آوردن با اقرار شهادتین است. در مذهب شیعه علاوه بر اینها در توحید برای عدل خدا معنایی متمایز وجود دارد و اعتقاد بر امامت نیز ادامه پذیرش نبوت دانسته می شود و این دو را علاوه بر اصول دین، اصول مذهب خود می دانند.
واژهٔ «مسلمان» صفت فارسی؛ در اصل جمع فارسی واژهٔ عربی «مُسلِم» بوده، با تغییر حرکات بصورت صفت مفرد کاربرد یافته و جمع کاربردی آن مسلمانان میباشد.
اولین مسلمانان
پس از شخص محمد (پیامبر اسلام)، اولین زن، خدیجه همسر وی، و اولین مرد، علی بن ابیطالب، و سپس ابوبکر، زید بن حارثه، ابوذر غفاری، سعد بن ابیوقاص، لبابه دختر حارث، عبدالرحمن بن عوف، ابوعبیده جراح، عبدالله بن مسعود، عمار بن یاسر و سمیه مادر وی، در منابع با اختلاف در پسی و پیشی ذکر شدهاند.
جمعیت
جمعیت مسلمانان در سال ۲۰۰۹، ۲۳٫۲٪ جمعیت ۶٫۷۹ میلیاردی جهان، یعنی ۱٬۵۷ میلیارد نفر بود. نزدیکبه ۶۰٪ از مسلمانان جهان در آسیا زندگی می کنند. از این شمار نزدیکبه ۲۰۰ میلیون نفر شیعه و بقیه سنی هستند. همچنین ۰٫۸٪ از جمعیت کشور آمریکا را مسلمانان تشکیل میدهند.
جمعیت مسلمانان در سال ۲۰۰۷، ۲۰٫۱۲٪ از جمعیت ۶٫۶ میلیاردی جهان، یعنی ۱٫۳۲ میلیارد نفر بود که در رتبه دوم دینهای جهان و ادیان ابراهیمی پس از مسیحیت که 2.2میلیارد پیرو دارد ،قرار دارد.
شیعه
شیعه دومین مذهب بزرگ پیروان دین اسلام است. واژه شیعه شکل مختصر «شیعه علی» یعنی پیرو یا حزب علی بن ابیطالب، نخستین امام، میباشد. شعیان بین ۱۰ تا ۲۰ درصد از کل جمعیت مسلمانان جهان و ۳۸ درصد جمعیت مسلمانان خاورمیانه را تشکیل میدهند. هر چند در طول تاریخ شیعه به شاخههای متعدد تقسیم شد، اما امروزه تنها سه دسته اصلی شیعه دوازدهامامی، شیعه اسماعیلی و شیعه زیدی وجود دارد. امامیه یا شیعه دوازدهامامی بزرگترین شاخه شیعه میباشد و اغلب اصطلاح شیعه به طور پیش فرض برای آن به کار میرود.
مذهب شیعه مبتنی بر تفسیری از قرآن و سنت محمد میباشد که از طریق امامان شیعه بیان و تعلیم شده است. وجه مشترک اعتقادات تمام شیعیان، باور به انتصاب علی بن ابیطالب برای جانشینی محمد، پیامبر اسلام، و امامت پس از وی از سوی خداوند است. شیعیان معقتدند فقط خداست که میتواند شخصی را برای حفظ اسلام، تعلیم شریعت و رهبری امت به عنوان امام نصب نماید. اما دستههای مختلف شیعیان در خصوص شرایط امامت، اشخاصی که به عنوان امام منصوب شدهاند و مأموریت امام اختلاف نظر دارند و بر اساس تفاوت دیدگاهشان در موضوع امامت شاخههای شیعه از هم متمایز میشوند. برای مثال زیدیه قیام به شمشیر را از ویژگیهای امام میدانند در حالی که اسماعیلیه و امامیه بر علم و عصمت امام تأکید دارند. اکثر قریب به اتفاق شیعه، جز معدودی از فرقهها نظیر ناووسیه، امام را مردی از فرزندان فاطمه زهرا میدانند.
به لحاظ تاریخی شیعه در سده نخست به عنوان یک گروه از مسلمانان شکل گرفت. برخی این شکل گیری را در زمان حیات پیامبر و عدهای پس از وفات وی در اختلاف بر سر جانشین او میدانند. از زمان خلافت علی بن ابیطالب، شیعه علی به عنوان یک اجتماع متشکل ایجاد شد و بخصوص پس از واقعه عاشورا دستههای متعدد شیعه نظیر ناووسیه، زیدیه و امامیه ظهور کردند و در اواخر سده نخست و اوائل سده دوم به صورت مذهب فقهی و کلامی صورتبندی شدند.
تعریف در لغت و اصطلاح
شیعه در لغت بر دو معنا اطلاق میشود، یکی توافق و هماهنگی دو یا چند نفر بر مطلبی، و دیگری، پیروی کردن فردی یا گروهی، از فرد یا گروهی دیگر. در زبان عربی در اصل به معنای یک، دو یا گروهی از پیروان است. در قرآن این لفظ چندین بار به این معنا به کار رفتهاست. برای نمونه در آیه ۱۵ سوره قصص درباره یکی از پیروان موسی از عنوان شیعه موسی و در جای دیگر از ابراهیم به عنوان شیعه نوح یاد میکند. در تاریخ اسلام لفظ شیعه، به معنای اصلی و لغویاش برای پیروان افراد مختلفی به کار میرفت. برای مثال، گاهی از شیعه علی بن ابیطالب و گاهی از شیعه معاویه بن ابیسفیان نام برده شده. اما این لفظ به تدریج معنای اصطلاحی پیدا کرد و تنها بر پیروان علی که به امامت او معتقدند اطلاق میشود. و با تعالیم جعفر بن محمد به صورت یک مذهب مستقل درآمد.
واژه شیعه در زمان حیات پیامبر از طرف ایشان به دوست داران علی بن ابی طالب گفته شد. پس از وفات پیامبر کسانی که معتقد به اولویت علی ابن ابی طالب برای خلافت بودند شیعه نامیده میشدند. تمایز این گروه از دیگر مسلمین تا زمان امام پنجم شیعیان فقط در محبت به اهل بیت و اعتقاد به شایستگی انحصاری آنها برای حکومت مسلمین بود. از زمان امام پنجم شیعیان - محمد بن علی ملقب به باقر - به تدریج شیعه به عنوان یک مکتب مجزای فقهی حقوقی در آمد. در زمان امام ششم - جعفر ابن محمد صادق - با گسترش مباحث کلامی شیعیان (پیروان ایشان) از نظر کلامی نیز در کنار معتزله و اشاعره مکتب ویژه خود را پایه گزاری کردند. از زمان امام ششم شیعیان (شیعیان غیر زیدی) - جعفر ابن محمد صادق - و به دلیل پرهیز ایشان از تلاش برای دستیابی به قدرت سیاسی در سایه جدال بین امویان و عباسیان در بین غالب شیعیان اعتقاد چنین بود که تا زمان قیام قائم آل محمد (که شناخته شده نبود) تغییری در وضعیت سیاسی شیعیان ایجاد نخواهد شد و به همین دلیل شیعیان تا سالها بعد همواره از امامان بعدی در مورد اینکه قائم هستند یا نه پرس و جو میکردند.
اکنون «شیعه» در اصطلاح به آن عده از مسلمانان گفته میشود که به خلافت و امامت بلافصل علی معتقدند، و بر این عقیدهاند که امام و جانشین پیامبر اسلام از طریق نصّ شرعی تعیین میشود، و امامت علی و دیگر امامان شیعه نیز از طریق نص شرعی ثابت شدهاست. همچنین است که از جابر بن عبدالله انصاری نقل شده است:
ما نزد رسول الله بودیم که علی بن ابی طالب وارد شد در این هنگام پیامبر فرمودند: «قسم به کسی که جان من در قبضهٔ قدرت اوست این مرد (اشاره به علی) و شیعهٔ او روز قیامت رستگارانند» آنگاه بود که آیه خیرالبریه نازل شد.
﴿إِنَّ الَّذِینَ آمَنُوا وَعَمِلُوا الصَّالِحَاتِ أُولَٰئِکَ هُمْ خَیْرُ الْبَرِیَّةِ﴾(سورهٔ بینة-آیهٔ ۷)
باورها
باورهای سازمانیافته و کلامی شیعه امروز بر این است که تبیین و تفسیر امر دین پس از پیامبر و اداره امور مسلمانان بر عهده اشخاصی است، که از سوی خدا معین شده و دارای ویژگیهایی همچون عصمت و عدالت هستند، این افراد امام نامیده میشوند. نخستین امام شیعیان علی است. بر پایه باور شیعه، اصول دین شیعیان پنجگانهاست و علاوه بر سه اصل دین توحید، نبوت و معاد به دو اصل دیگر یعنی عدل و امامت نیز باور دارند. اصل عدل بین شیعیان و معتزله تا حدی مشترک است و اصل امامت ویژه این مذهباست. شیعیان همچنین مانند بسیاری دیگر از فرق اسلامی بر معاد جسمانی بسیار تاکید دارند وگرچه برخی شبههها و احتمالات درباره روحانی بودن معاد مطرح شدهاست، اما همواره از طرف علمای شیعه و سنی از جمله شیخ طوسی، خواجه نصیرالدین طوسی و امام محمد غزالی جواب داده شده و بر جسمانی بودن معاد تاکید شدهاست، تا آنجا که ابن سینا با آنکه معاد را در دوصورت جسمانی و روحانی قابل تصور میداند، اما میگوید: ... معادی که در شرع نقل شدهاست، راهی برای اثبات آن جز از طریق شرع و تصدیق إخبار پیامبر نیست. وآن معادیست که برای بدن است... اگرچه قرنها پس از وی، صدرالمتالهین شیرازی به اثبات آن فائق آمد. و در واقع اینکه، این ضرورت در دین، اعتقاد به معاد جسمانی است نه معاد مادّی وطبیعی.
همچنین شیعیان قرآن را کتابی محفوظ میدانند و همه آنها مدعی پیروی از قرآن و سنت محمد هستند و بخاطر پیروی از سنت پیامبر اسلام و دستور خداوند- شیعه تعیین جانشین پیامبر را تنها ویژه خدا و پیامبر میداند.
باور به ظهور یا بازگشت منجی (نجات دهنده) و موعود در اکثر فرق اسلامی و همچنین دیگر ادیان روشن و غیرقابل کتمان است، آنچنانکه یهودیان چشم به راه پادشاه بنیاسرائیلاند و مسیحیان به بازگشت عیسی باور دارند، در باورهای زرتشتیان، بودیسم و برخی دیگر ادیان نیز میتوان گونههای مشابه این باور را یافت، در فرق اسلامی، مخصوصا فرق شیعه، در قرون پس از اسلام، این باور بسیار رایج و مشهود بودهاست. کیسانیه قائم را محمد حنفیه فرزند دیگر علی بن ابیطالب میدانند، اسماعیلیه نیز قائم را اسماعیل فرزند ارشد جعفر بن محمد صادق میدانند. اما باور شیعیان اثنی عشری، این است که منجی آخرالزمان از آل محمد است و او را قائم آل محمد یا مهدی مینامند و معتقدند او آخرین و امام دوازدهم شیعیان، حجت بن حسن عسکری است.
اعتقاد به رجعت به معنای زنده شدن بعضی از مردگان در این دنیا و در هنگام ظهور مهدی، از دیگر باورهای شیعهاست، برخی از علمای شیعه، رجعت را از ضروریات شیعه نمیدانند، اما هیچیک بدلیل ادله عقلی و نقلی و قرآنی آن را انکار نمیکنند. اگرچه برخی ادیان و حتی فرق اسلامی به گونههایی از بازگشت به زندگی پس از مرگ در اشکال مختلفی چون بازگشت روح در بدنی دیگر یا به تناسخ یا بشکل حلول باور دارند، اما دیدگاه بخصوص شیعه در رجعت، یکی از بزرگترین تفاوتهای شیعه با دیگران است، بدین معنی که شیعیان نه تنها به معاد جسمانی باوری عمیق دارند، بلکه معتقدند که در آخر زمان و پس از ظهور قائم آل محمد، برخی از انبیاء مانند عیسی مسیح و اولیاء خدا مانند مالک اشتر و برخی از امامان شیعیان و همچنین برخی از اشقیاء و بدکاران دورانهای بشری رجعت نموده، به دنیا باز میگردند. بدین ترتیب در آخرالزمان، نیکوکاران بر دنیا حکمرانی نموده و بدکاران به مجازات خواهند رسید.
امامت
شیعه معتقد است قرآن و سنت پیامبر اسلام برای ایمان حقیقی لازم و کافی است. یک مسلمان برای شناخت وظیفه خود و سلوک به سوی خدا در هر زمان نیازمند پیشوایی است، که راه شناس و درستکار باشد و او را به سوی خدا راهنمایی کند؛ در غیر این صورت هر کس بر اساس تشخیص شخصیاش امر دین را تفسیر میکند و گمراه میگردد. این پیشوا حجتی است که توسط خدا انتخاب و توسط پیامبر و امامان پیشین به مسلمانان معرفی میگردد. بنابراین امامت مفهومی بسیار بنیادی است و امام ویژگیها و مسئولیتهای متعددی از جمله تبیین و تفسیر دین و هدایت مردم دارد. خلافت پایین مرتبهترین سطح وظایف امام است و تنها وقتی امام به خلافت دست مییابد که مسلمانان او را بخواهند و یاری نمایند. چنانکه علی در زمان خلافت میگوید:
«اگر نبود حضور حاضران و اقامه حجت به واسطه یاران و اگر نبود عهدی که خدا از آگاهان گرفتهاست تا بر ستمگری ظالم و ستم بر مظلوم آرام نگیرند، افسار شتر خلافت را وا مینهادم.(خلافت را نمیپذیرفتم.)»
در بین اکثریت علما و عامه شیعه چنین پنداشته میشود که امامان نایبان پیامبر در حکومت و معتبر ترین مفسران قرآن و سنت پیامبر محسوب میشوند. امامان به دلیل دارا بودن مقام قرب و بندگی خدا منشا برکات الهی دانسته میشوند اما اعتقاد به نیابت آنها در خلقت، تقسیم رزق و تشریع را به عنوان غلو یا زیاده روی میدانند. در تمام ادوار حتی در زمان حیات امامان شیعه افراد و گروههایی معتقد به وجود کاملا فراطبیعی برای امامان بودند. این گروهها به صورت رسمی همواره در اقلیت بودند اما برخی از اعتقادات و روایات آنها پس از دوره غیبت وارد اعتقادات عامه شیعیان شد.
حکومت اسلامی
از نظر شیعه، حکومت تنها از آن خدا است و هر حاکمی که از جانب خداوند حکم نکند و فرمانش حق نباشد (غیر معصوم باشد)، لزوما به باطل حکم کرده و طاغوت میباشد. (چرا که بعد از حق چیزی جز باطل نیست) و دروغ زن به خدا و پیامبر او و غاصب ولایت آنها خواهد بود و مخالفت با آن واجب است، مگر از باب تقیه. بنابراین، شیعیان معتقدند که خداوند امامانی را از جانب خود تعیین و مشخص نموده است و تنها آنان شایستگی تشکیل حکومت و قرار گرفتن در رأس آن را دارا میباشند و اطاعت از هر حاکمی غیر از ایشان، شرک تلقی شده و موجب جاودانگی در آتش خواهد شد.
نظریهٔ ولایت فقیه که توسط برخی شیعیان مطرح شده است نیز تنها ناظر به زمان غیبت بوده و تحت عنوان «اضطرار» پذیرفته میشود.
در نگاه شیعیان خداوند در تمامی زمانها یک نفر را به عنوان امام و سرپرست الهی قرار داده است و زمین هرگز از «حجت» خالی نیست اما این راهبران الهی، همانگونه که در بالا گفته شد، تنها زمانی دست به تشکیل حکومت میزنند که اقبال و خواست عمومی برای این امر وجود داشته باشد. شیعیان علت عدم ظهور و تشکیل حکومت آخرین امامشان -که وی را منجی میخوانند- را نیز عدم خواست واقعی مردم برای تشکیل حکومت الهی میدانند.
عصمت
واژه «عصمت» در لغت عربی به معنای نگاه داشتن، حفاظت و ممانعت است. اما این کلمه در اصطلاح علم کلام، به معنای مصونیت از گناه یا لغزش برای برخی از انسانها مانند پیامبران و امامان آمدهاست. نظریه عصمت در مورد امامان شیعه نخستین بار توسط هشام ابن حکم از متکلمین مهم شیعه و از اصحاب امام ششم شیعیان پیشنهاد شد. دانشمندان علم کلام اسلامی مانند خواجه نصیر الدین طوسی در کتاب تجرید الاعتقاد و علامه حلی در شرح تجرید، به این نکته اشاره کردهاند که بحث عصمت در سه سطح مطرح میگردد:
سطح اول: عصمت به معنای باز دارندگی از اشتباه در ابلاغ رسالت. در این زمینه دانشمندان علم کلام اعم از اهل تشیع و اهل تسنن، عصمت به معنای یادشده را در مورد پیامبر اسلام تایید میکنند. زیرا آیه سوم از سوره نجم با صراحت این امر را بیان کردهاست که هرگز پیامبر از روی هوا و هوس سخن نمیگوید و سخن او چیزی جز وحی الهی نیست.
سطح دوم: عصمت به معنای باز دارندگی از گناه و معصیت. در این زمینه عموم علمای علم کلام شیعه، معتقد به عصمت پیامبران و امامان و فاطمه زهرا هستند.
سطح سوم: عصمت به معنای باز دارندگی از هرگونه لغزش و اشتباه. در این زمینه میان دانشمندان علم کلام شیعه اتفاق نظر نیست، اما از نظر اکثریت آنان، پیامبر اسلام، دخترش فاطمه زهرا و ائمه شیعیان در مرتبهای قرار دارند که از هر گونه خطا و اشتباه مبرا میباشند. از این رو به آنان معصوم گفته میشود. در مقابل اکثریت یادشده، برخی از دانشمندان شیعه مانند شیخ صدوق در مبحث "سهو النبی"، صدور لغزشهای کوچک در قضایای شخصی و غیر مبحث ابلاغ و حی و رسالت را محال نمیشمارند.
زیر شاخههای شیعه
دین اسلام در اصل دارای یک مذهب و یک مرام بودهاست. اما این دین به مرور زمان به زیر شاخههای بسیار دستهبندی گردید. شیعیان نیز از سده دوم هجری به بعد به چندین زیرگروه منشعب شدهاند. امروز بیشتر شیعیان را «شیعیان دوازده امامی (اثناعشری)» تشکیل میدهند. مهمترین مذاهب دیگری که از شیعه منشعب شدهاند، عبارتاند از اسماعیلیان، زیدیه، کیسانیه، واقفیه و فطحیه. تمام این مذاهب علی رغم تفاوتهای آشکار اعتقادی و فقهی در مسأله ضرورت «امامت» اشتراک نظر دارند. البته تفسیر هر یک از امام و مصداق آن منحصربفرد است.
مفاتیحالعلوم شیعیان را به شش زیرگروه بخش میکند، اثنی عشری معتقد به دوازده امام،زیدیه (پیروان زید بن علی)، کیسانیه (پیروان کیسان غلام علی بن ابیطالب)، عباسیه (منسوب به آل عباس بن عبدالمطلب)، غالیه، و امامیه. وی امامیه را به ۷ تیره تقسیم میکند، ناؤوسیه (منسوب به عبدالله بن ناؤوس)، مفضلیه (منسوب به مفضل بن عمر)، قطعیه (که وفات موسی بن جعفر را تأیید کردهاند)، شمطیه (منسوب به یحیی بن اشمط)، واقفیه (که در امامت موسی بن جعفر متوقف شدهاند و وی را زنده میدانند)، ممطوره، و احمدیه (منسوب به احمد بن موسی بن جعفر که وی را امام هشتم خود میدانند). در کتاب فرهنگ فرق اسلامی از دکتر محمدجواد مشکور زیرشاخههای بیشتری برای شیعه ذکر شده است.
فرقه غالب
شیعه دوازده امامی در ابتدای قرن بیست و یکم، بزرگترین شاخه از فرق شیعه است.
خاستگاه
همه شیعیان معتقد به انتخاب امامت توسط خدا و ابلاغ آن توسط پیامبر هستند و بنابراین بر اساس حدیث غدیر (و آیاتی چون آیه ولایت و آیه تطهیر و احادیث متواتر دیگر، همچون حدیث منزلت و حدیث ثقلین.) علی را امام بر حق میدانند، اما اهل سنت به شورا اعتقاد دارند، که هیچ سندی از طرف پیامبر در مورد انتخاب وصی بعد از او به وسیله شورا در دست نیست.
شیعیان بر این باورند که محمد در زمان حیاتش، جانشین پس از خود را تعیین کرد و پسر عمو و دامادش علی بن ابیطالب را به عنوان وصی و خلیفه پس از خود اعلام نمود. شیعیان بر این باورند که اساس و خاستگاه شیعه، دفاع از اسلام و ولایت و عدل است.
همچنین شیعیان در اثبات حقانیت خود به روایاتی از پیامبر اسلام در منابع اهل سنت استناد میکنند، که در آنها به «شیعه علی» اشاره شدهاست. از جمله سیوطی سنی مذهب روایت میکند زمانی پیامبر رو به علی کرد و گفت: «سوگند به آن که جانم به دست اوست این شخص - علی - و کسانی که شیعه و پیرو اویند در قیامت رستگارند.» علامه امینی از علمای شیعهاست که از محبوبیت خاصی در میان شیعیان برخوردار است. وی تمامی روایات درباره واقعه غدیر را از کتب اهل سنت جمعآوری نموده و در چهل مجلد الغدیر منتشر نمود.
برخی، تشیع را به فردی بنام عبدالله بن سبا نسبت میدهند. اگرچه برخی از تواریخ و «کتب ملل و نحل»، وی را از غالیان شیعه و موسس فرقه سبائیه میدانند که قائل به الوهیت علی بودهاست و بهمین دلیل مورد لعن و تکفیر علی بن ابیطالب واقع شدهاست و حتی برخی اخباری نقل میکنند که وی و پیروانش، بدستور علی در آتش سوزانده شدهاند. مرتضی عسکری در کتاب خود و همچنین برخی از خاورشناسان و حتی علمای سنی در قرون اخیر، عبدالله بن سبا فردی خیالی و ساخته و پرداخته مخالفان شیعه میدانند.
برخی از اهل سنت، نظیر شیخ شلتوت، مفتی اعظم الازهر معتقدند که تقلید از فقه مذهب جعفری، نظیر مذاهب چهارگانه اهل سنت معتبر است.
اِمام واژهای عربی و به معنای پیشوا و رهبر است که از اصطلاحات خاص دین اسلام است.
این واژه به خودی خود معنی مقدسی ندارد و در قرآن هم برای پیشوایانی که مردم را به سوی خدا هدایت میکردند به کار رفته و هم برای پیشوایانی که مردم را به سوی کفر هدایت میکردهاند. اما غیر از این معنای عام دارای معانی و کاربردهای خاصی در فرهنگ مسلمانان نیز هست.
کاربردها
امام جماعت: هر فردی که پیشنماز بایستد و دیگران به او اقتدا کنند. این کاربرد بین تمام مسلمانان مشترک است. از نظر فقه شیعه، امام جماعت باید عادل باشد. به عبارت دیگر نمازگزاران دیگر از او گناه کبیره و یا اصرار بر گناه صغیره ندیده باشند.
رهبر اجتماع: خواجه نصیر الدین طوسی در «تجرید الاعتقاد» امامت را به عنوان «ریاسةٌ عامّةٌ» یعنی ریاست عمومی تعریف میکند. این معنی امامت نیز بین تمام مسلمانان جز خوارج مشترک است. البته فرق مختلف شرایط و مصادیق متفاوتی را برای امام در نظر میگیرند.
عالمان برجستهٔ دینی: اهل سنت برای برخی از دانشمندان بسیار برجستهٔ دینی، نظیر محمد غزالی و فخر رازی از این لقب استفاده کردهاند.
لقب بیانگر تقدس: در برخی کشورهای عربی نظیر عراق، سوریه، لبنان و کشورهایی نظیر ایران و جمهوری آذربایجان عدهای از مردم روسیه و بسیاری از مسلمانان اروپایی مردم (شیعه و سنی) بسیاری از افراد مقدس را امام میخوانند.
امام در قرآن
در قرآن از سه نفر با عنوان امام یاد شدهاست و آنان ابراهیم و اسحاق و یعقوب هستند.
امامت در نزد شیعیان امامیه
امامت یکی از اصول باور شیعیان است، که به جهت اهمیت آن شیعیان دوازده امامی خود را امامیّه میخوانند.
سنگ بنای تشیع مسئلهٔ امامت و حجیت قول و فعل امام است. حجیتی که از علم تام و از یقین به محتوای دین ناشی میشود. علمی که از راه اجتهاد کسب نمیشود و به شک و حدس و گمان آلوده نیست و لذا صاحب آن، مرجع نهایی در هر چیزی است که به آن دین گفته میشود، یا به عبارتی حجت آن دین است.شیعیان برای امامان خود چنین منزلتی را قائل هستند.
اصول دین شیعه: توحید، نبوت، معاد (هر سه مشترک با اهل سنت)، عدل و امامت
مسلمان
مُسَلمان کسی است که دین اسلام را باور دارد. اسلام آخرین و یکی از سه دین ابراهیمی بزرگ است. مسلمانان به دو گروه مذهبی کلی سنی و شیعه تقسیم می شوند. مسلمان بودن داشتن اعتقاد به سه اصل دینی؛ توحید، نبوت و معاد است و اسلام آوردن با اقرار شهادتین است. در مذهب شیعه علاوه بر اینها در توحید برای عدل خدا معنایی متمایز وجود دارد و اعتقاد بر امامت نیز ادامه پذیرش نبوت دانسته می شود و این دو را علاوه بر اصول دین، اصول مذهب خود می دانند.
واژهٔ «مسلمان» صفت فارسی؛ در اصل جمع فارسی واژهٔ عربی «مُسلِم» بوده، با تغییر حرکات بصورت صفت مفرد کاربرد یافته و جمع کاربردی آن مسلمانان میباشد.
اولین مسلمانان
پس از شخص محمد (پیامبر اسلام)، اولین زن، خدیجه همسر وی، و اولین مرد، علی بن ابیطالب، و سپس ابوبکر، زید بن حارثه، ابوذر غفاری، سعد بن ابیوقاص، لبابه دختر حارث، عبدالرحمن بن عوف، ابوعبیده جراح، عبدالله بن مسعود، عمار بن یاسر و سمیه مادر وی، در منابع با اختلاف در پسی و پیشی ذکر شدهاند.
جمعیت
جمعیت مسلمانان در سال ۲۰۰۹، ۲۳٫۲٪ جمعیت ۶٫۷۹ میلیاردی جهان، یعنی ۱٬۵۷ میلیارد نفر بود. نزدیکبه ۶۰٪ از مسلمانان جهان در آسیا زندگی می کنند. از این شمار نزدیکبه ۲۰۰ میلیون نفر شیعه و بقیه سنی هستند. همچنین ۰٫۸٪ از جمعیت کشور آمریکا را مسلمانان تشکیل میدهند.
جمعیت مسلمانان در سال ۲۰۰۷، ۲۰٫۱۲٪ از جمعیت ۶٫۶ میلیاردی جهان، یعنی ۱٫۳۲ میلیارد نفر بود که در رتبه دوم دینهای جهان و ادیان ابراهیمی پس از مسیحیت که 2.2میلیارد پیرو دارد ،قرار دارد.
شیعه
شیعه دومین مذهب بزرگ پیروان دین اسلام است. واژه شیعه شکل مختصر «شیعه علی» یعنی پیرو یا حزب علی بن ابیطالب، نخستین امام، میباشد. شعیان بین ۱۰ تا ۲۰ درصد از کل جمعیت مسلمانان جهان و ۳۸ درصد جمعیت مسلمانان خاورمیانه را تشکیل میدهند. هر چند در طول تاریخ شیعه به شاخههای متعدد تقسیم شد، اما امروزه تنها سه دسته اصلی شیعه دوازدهامامی، شیعه اسماعیلی و شیعه زیدی وجود دارد. امامیه یا شیعه دوازدهامامی بزرگترین شاخه شیعه میباشد و اغلب اصطلاح شیعه به طور پیش فرض برای آن به کار میرود.
مذهب شیعه مبتنی بر تفسیری از قرآن و سنت محمد میباشد که از طریق امامان شیعه بیان و تعلیم شده است. وجه مشترک اعتقادات تمام شیعیان، باور به انتصاب علی بن ابیطالب برای جانشینی محمد، پیامبر اسلام، و امامت پس از وی از سوی خداوند است. شیعیان معقتدند فقط خداست که میتواند شخصی را برای حفظ اسلام، تعلیم شریعت و رهبری امت به عنوان امام نصب نماید. اما دستههای مختلف شیعیان در خصوص شرایط امامت، اشخاصی که به عنوان امام منصوب شدهاند و مأموریت امام اختلاف نظر دارند و بر اساس تفاوت دیدگاهشان در موضوع امامت شاخههای شیعه از هم متمایز میشوند. برای مثال زیدیه قیام به شمشیر را از ویژگیهای امام میدانند در حالی که اسماعیلیه و امامیه بر علم و عصمت امام تأکید دارند. اکثر قریب به اتفاق شیعه، جز معدودی از فرقهها نظیر ناووسیه، امام را مردی از فرزندان فاطمه زهرا میدانند.
به لحاظ تاریخی شیعه در سده نخست به عنوان یک گروه از مسلمانان شکل گرفت. برخی این شکل گیری را در زمان حیات پیامبر و عدهای پس از وفات وی در اختلاف بر سر جانشین او میدانند. از زمان خلافت علی بن ابیطالب، شیعه علی به عنوان یک اجتماع متشکل ایجاد شد و بخصوص پس از واقعه عاشورا دستههای متعدد شیعه نظیر ناووسیه، زیدیه و امامیه ظهور کردند و در اواخر سده نخست و اوائل سده دوم به صورت مذهب فقهی و کلامی صورتبندی شدند.
تعریف در لغت و اصطلاح
شیعه در لغت بر دو معنا اطلاق میشود، یکی توافق و هماهنگی دو یا چند نفر بر مطلبی، و دیگری، پیروی کردن فردی یا گروهی، از فرد یا گروهی دیگر. در زبان عربی در اصل به معنای یک، دو یا گروهی از پیروان است. در قرآن این لفظ چندین بار به این معنا به کار رفتهاست. برای نمونه در آیه ۱۵ سوره قصص درباره یکی از پیروان موسی از عنوان شیعه موسی و در جای دیگر از ابراهیم به عنوان شیعه نوح یاد میکند. در تاریخ اسلام لفظ شیعه، به معنای اصلی و لغویاش برای پیروان افراد مختلفی به کار میرفت. برای مثال، گاهی از شیعه علی بن ابیطالب و گاهی از شیعه معاویه بن ابیسفیان نام برده شده. اما این لفظ به تدریج معنای اصطلاحی پیدا کرد و تنها بر پیروان علی که به امامت او معتقدند اطلاق میشود. و با تعالیم جعفر بن محمد به صورت یک مذهب مستقل درآمد.
واژه شیعه در زمان حیات پیامبر از طرف ایشان به دوست داران علی بن ابی طالب گفته شد. پس از وفات پیامبر کسانی که معتقد به اولویت علی ابن ابی طالب برای خلافت بودند شیعه نامیده میشدند. تمایز این گروه از دیگر مسلمین تا زمان امام پنجم شیعیان فقط در محبت به اهل بیت و اعتقاد به شایستگی انحصاری آنها برای حکومت مسلمین بود. از زمان امام پنجم شیعیان - محمد بن علی ملقب به باقر - به تدریج شیعه به عنوان یک مکتب مجزای فقهی حقوقی در آمد. در زمان امام ششم - جعفر ابن محمد صادق - با گسترش مباحث کلامی شیعیان (پیروان ایشان) از نظر کلامی نیز در کنار معتزله و اشاعره مکتب ویژه خود را پایه گزاری کردند. از زمان امام ششم شیعیان (شیعیان غیر زیدی) - جعفر ابن محمد صادق - و به دلیل پرهیز ایشان از تلاش برای دستیابی به قدرت سیاسی در سایه جدال بین امویان و عباسیان در بین غالب شیعیان اعتقاد چنین بود که تا زمان قیام قائم آل محمد (که شناخته شده نبود) تغییری در وضعیت سیاسی شیعیان ایجاد نخواهد شد و به همین دلیل شیعیان تا سالها بعد همواره از امامان بعدی در مورد اینکه قائم هستند یا نه پرس و جو میکردند.
اکنون «شیعه» در اصطلاح به آن عده از مسلمانان گفته میشود که به خلافت و امامت بلافصل علی معتقدند، و بر این عقیدهاند که امام و جانشین پیامبر اسلام از طریق نصّ شرعی تعیین میشود، و امامت علی و دیگر امامان شیعه نیز از طریق نص شرعی ثابت شدهاست. همچنین است که از جابر بن عبدالله انصاری نقل شده است:
ما نزد رسول الله بودیم که علی بن ابی طالب وارد شد در این هنگام پیامبر فرمودند: «قسم به کسی که جان من در قبضهٔ قدرت اوست این مرد (اشاره به علی) و شیعهٔ او روز قیامت رستگارانند» آنگاه بود که آیه خیرالبریه نازل شد.
﴿إِنَّ الَّذِینَ آمَنُوا وَعَمِلُوا الصَّالِحَاتِ أُولَٰئِکَ هُمْ خَیْرُ الْبَرِیَّةِ﴾(سورهٔ بینة-آیهٔ ۷)
باورها
باورهای سازمانیافته و کلامی شیعه امروز بر این است که تبیین و تفسیر امر دین پس از پیامبر و اداره امور مسلمانان بر عهده اشخاصی است، که از سوی خدا معین شده و دارای ویژگیهایی همچون عصمت و عدالت هستند، این افراد امام نامیده میشوند. نخستین امام شیعیان علی است. بر پایه باور شیعه، اصول دین شیعیان پنجگانهاست و علاوه بر سه اصل دین توحید، نبوت و معاد به دو اصل دیگر یعنی عدل و امامت نیز باور دارند. اصل عدل بین شیعیان و معتزله تا حدی مشترک است و اصل امامت ویژه این مذهباست. شیعیان همچنین مانند بسیاری دیگر از فرق اسلامی بر معاد جسمانی بسیار تاکید دارند وگرچه برخی شبههها و احتمالات درباره روحانی بودن معاد مطرح شدهاست، اما همواره از طرف علمای شیعه و سنی از جمله شیخ طوسی، خواجه نصیرالدین طوسی و امام محمد غزالی جواب داده شده و بر جسمانی بودن معاد تاکید شدهاست، تا آنجا که ابن سینا با آنکه معاد را در دوصورت جسمانی و روحانی قابل تصور میداند، اما میگوید: ... معادی که در شرع نقل شدهاست، راهی برای اثبات آن جز از طریق شرع و تصدیق إخبار پیامبر نیست. وآن معادیست که برای بدن است... اگرچه قرنها پس از وی، صدرالمتالهین شیرازی به اثبات آن فائق آمد. و در واقع اینکه، این ضرورت در دین، اعتقاد به معاد جسمانی است نه معاد مادّی وطبیعی.
همچنین شیعیان قرآن را کتابی محفوظ میدانند و همه آنها مدعی پیروی از قرآن و سنت محمد هستند و بخاطر پیروی از سنت پیامبر اسلام و دستور خداوند- شیعه تعیین جانشین پیامبر را تنها ویژه خدا و پیامبر میداند.
باور به ظهور یا بازگشت منجی (نجات دهنده) و موعود در اکثر فرق اسلامی و همچنین دیگر ادیان روشن و غیرقابل کتمان است، آنچنانکه یهودیان چشم به راه پادشاه بنیاسرائیلاند و مسیحیان به بازگشت عیسی باور دارند، در باورهای زرتشتیان، بودیسم و برخی دیگر ادیان نیز میتوان گونههای مشابه این باور را یافت، در فرق اسلامی، مخصوصا فرق شیعه، در قرون پس از اسلام، این باور بسیار رایج و مشهود بودهاست. کیسانیه قائم را محمد حنفیه فرزند دیگر علی بن ابیطالب میدانند، اسماعیلیه نیز قائم را اسماعیل فرزند ارشد جعفر بن محمد صادق میدانند. اما باور شیعیان اثنی عشری، این است که منجی آخرالزمان از آل محمد است و او را قائم آل محمد یا مهدی مینامند و معتقدند او آخرین و امام دوازدهم شیعیان، حجت بن حسن عسکری است.
اعتقاد به رجعت به معنای زنده شدن بعضی از مردگان در این دنیا و در هنگام ظهور مهدی، از دیگر باورهای شیعهاست، برخی از علمای شیعه، رجعت را از ضروریات شیعه نمیدانند، اما هیچیک بدلیل ادله عقلی و نقلی و قرآنی آن را انکار نمیکنند. اگرچه برخی ادیان و حتی فرق اسلامی به گونههایی از بازگشت به زندگی پس از مرگ در اشکال مختلفی چون بازگشت روح در بدنی دیگر یا به تناسخ یا بشکل حلول باور دارند، اما دیدگاه بخصوص شیعه در رجعت، یکی از بزرگترین تفاوتهای شیعه با دیگران است، بدین معنی که شیعیان نه تنها به معاد جسمانی باوری عمیق دارند، بلکه معتقدند که در آخر زمان و پس از ظهور قائم آل محمد، برخی از انبیاء مانند عیسی مسیح و اولیاء خدا مانند مالک اشتر و برخی از امامان شیعیان و همچنین برخی از اشقیاء و بدکاران دورانهای بشری رجعت نموده، به دنیا باز میگردند. بدین ترتیب در آخرالزمان، نیکوکاران بر دنیا حکمرانی نموده و بدکاران به مجازات خواهند رسید.
امامت
شیعه معتقد است قرآن و سنت پیامبر اسلام برای ایمان حقیقی لازم و کافی است. یک مسلمان برای شناخت وظیفه خود و سلوک به سوی خدا در هر زمان نیازمند پیشوایی است، که راه شناس و درستکار باشد و او را به سوی خدا راهنمایی کند؛ در غیر این صورت هر کس بر اساس تشخیص شخصیاش امر دین را تفسیر میکند و گمراه میگردد. این پیشوا حجتی است که توسط خدا انتخاب و توسط پیامبر و امامان پیشین به مسلمانان معرفی میگردد. بنابراین امامت مفهومی بسیار بنیادی است و امام ویژگیها و مسئولیتهای متعددی از جمله تبیین و تفسیر دین و هدایت مردم دارد. خلافت پایین مرتبهترین سطح وظایف امام است و تنها وقتی امام به خلافت دست مییابد که مسلمانان او را بخواهند و یاری نمایند. چنانکه علی در زمان خلافت میگوید:
«اگر نبود حضور حاضران و اقامه حجت به واسطه یاران و اگر نبود عهدی که خدا از آگاهان گرفتهاست تا بر ستمگری ظالم و ستم بر مظلوم آرام نگیرند، افسار شتر خلافت را وا مینهادم.(خلافت را نمیپذیرفتم.)»
در بین اکثریت علما و عامه شیعه چنین پنداشته میشود که امامان نایبان پیامبر در حکومت و معتبر ترین مفسران قرآن و سنت پیامبر محسوب میشوند. امامان به دلیل دارا بودن مقام قرب و بندگی خدا منشا برکات الهی دانسته میشوند اما اعتقاد به نیابت آنها در خلقت، تقسیم رزق و تشریع را به عنوان غلو یا زیاده روی میدانند. در تمام ادوار حتی در زمان حیات امامان شیعه افراد و گروههایی معتقد به وجود کاملا فراطبیعی برای امامان بودند. این گروهها به صورت رسمی همواره در اقلیت بودند اما برخی از اعتقادات و روایات آنها پس از دوره غیبت وارد اعتقادات عامه شیعیان شد.
حکومت اسلامی
از نظر شیعه، حکومت تنها از آن خدا است و هر حاکمی که از جانب خداوند حکم نکند و فرمانش حق نباشد (غیر معصوم باشد)، لزوما به باطل حکم کرده و طاغوت میباشد. (چرا که بعد از حق چیزی جز باطل نیست) و دروغ زن به خدا و پیامبر او و غاصب ولایت آنها خواهد بود و مخالفت با آن واجب است، مگر از باب تقیه. بنابراین، شیعیان معتقدند که خداوند امامانی را از جانب خود تعیین و مشخص نموده است و تنها آنان شایستگی تشکیل حکومت و قرار گرفتن در رأس آن را دارا میباشند و اطاعت از هر حاکمی غیر از ایشان، شرک تلقی شده و موجب جاودانگی در آتش خواهد شد.
نظریهٔ ولایت فقیه که توسط برخی شیعیان مطرح شده است نیز تنها ناظر به زمان غیبت بوده و تحت عنوان «اضطرار» پذیرفته میشود.
در نگاه شیعیان خداوند در تمامی زمانها یک نفر را به عنوان امام و سرپرست الهی قرار داده است و زمین هرگز از «حجت» خالی نیست اما این راهبران الهی، همانگونه که در بالا گفته شد، تنها زمانی دست به تشکیل حکومت میزنند که اقبال و خواست عمومی برای این امر وجود داشته باشد. شیعیان علت عدم ظهور و تشکیل حکومت آخرین امامشان -که وی را منجی میخوانند- را نیز عدم خواست واقعی مردم برای تشکیل حکومت الهی میدانند.
عصمت
واژه «عصمت» در لغت عربی به معنای نگاه داشتن، حفاظت و ممانعت است. اما این کلمه در اصطلاح علم کلام، به معنای مصونیت از گناه یا لغزش برای برخی از انسانها مانند پیامبران و امامان آمدهاست. نظریه عصمت در مورد امامان شیعه نخستین بار توسط هشام ابن حکم از متکلمین مهم شیعه و از اصحاب امام ششم شیعیان پیشنهاد شد. دانشمندان علم کلام اسلامی مانند خواجه نصیر الدین طوسی در کتاب تجرید الاعتقاد و علامه حلی در شرح تجرید، به این نکته اشاره کردهاند که بحث عصمت در سه سطح مطرح میگردد:
سطح اول: عصمت به معنای باز دارندگی از اشتباه در ابلاغ رسالت. در این زمینه دانشمندان علم کلام اعم از اهل تشیع و اهل تسنن، عصمت به معنای یادشده را در مورد پیامبر اسلام تایید میکنند. زیرا آیه سوم از سوره نجم با صراحت این امر را بیان کردهاست که هرگز پیامبر از روی هوا و هوس سخن نمیگوید و سخن او چیزی جز وحی الهی نیست.
سطح دوم: عصمت به معنای باز دارندگی از گناه و معصیت. در این زمینه عموم علمای علم کلام شیعه، معتقد به عصمت پیامبران و امامان و فاطمه زهرا هستند.
سطح سوم: عصمت به معنای باز دارندگی از هرگونه لغزش و اشتباه. در این زمینه میان دانشمندان علم کلام شیعه اتفاق نظر نیست، اما از نظر اکثریت آنان، پیامبر اسلام، دخترش فاطمه زهرا و ائمه شیعیان در مرتبهای قرار دارند که از هر گونه خطا و اشتباه مبرا میباشند. از این رو به آنان معصوم گفته میشود. در مقابل اکثریت یادشده، برخی از دانشمندان شیعه مانند شیخ صدوق در مبحث "سهو النبی"، صدور لغزشهای کوچک در قضایای شخصی و غیر مبحث ابلاغ و حی و رسالت را محال نمیشمارند.
زیر شاخههای شیعه
دین اسلام در اصل دارای یک مذهب و یک مرام بودهاست. اما این دین به مرور زمان به زیر شاخههای بسیار دستهبندی گردید. شیعیان نیز از سده دوم هجری به بعد به چندین زیرگروه منشعب شدهاند. امروز بیشتر شیعیان را «شیعیان دوازده امامی (اثناعشری)» تشکیل میدهند. مهمترین مذاهب دیگری که از شیعه منشعب شدهاند، عبارتاند از اسماعیلیان، زیدیه، کیسانیه، واقفیه و فطحیه. تمام این مذاهب علی رغم تفاوتهای آشکار اعتقادی و فقهی در مسأله ضرورت «امامت» اشتراک نظر دارند. البته تفسیر هر یک از امام و مصداق آن منحصربفرد است.
مفاتیحالعلوم شیعیان را به شش زیرگروه بخش میکند، اثنی عشری معتقد به دوازده امام،زیدیه (پیروان زید بن علی)، کیسانیه (پیروان کیسان غلام علی بن ابیطالب)، عباسیه (منسوب به آل عباس بن عبدالمطلب)، غالیه، و امامیه. وی امامیه را به ۷ تیره تقسیم میکند، ناؤوسیه (منسوب به عبدالله بن ناؤوس)، مفضلیه (منسوب به مفضل بن عمر)، قطعیه (که وفات موسی بن جعفر را تأیید کردهاند)، شمطیه (منسوب به یحیی بن اشمط)، واقفیه (که در امامت موسی بن جعفر متوقف شدهاند و وی را زنده میدانند)، ممطوره، و احمدیه (منسوب به احمد بن موسی بن جعفر که وی را امام هشتم خود میدانند). در کتاب فرهنگ فرق اسلامی از دکتر محمدجواد مشکور زیرشاخههای بیشتری برای شیعه ذکر شده است.
فرقه غالب
شیعه دوازده امامی در ابتدای قرن بیست و یکم، بزرگترین شاخه از فرق شیعه است.
خاستگاه
همه شیعیان معتقد به انتخاب امامت توسط خدا و ابلاغ آن توسط پیامبر هستند و بنابراین بر اساس حدیث غدیر (و آیاتی چون آیه ولایت و آیه تطهیر و احادیث متواتر دیگر، همچون حدیث منزلت و حدیث ثقلین.) علی را امام بر حق میدانند، اما اهل سنت به شورا اعتقاد دارند، که هیچ سندی از طرف پیامبر در مورد انتخاب وصی بعد از او به وسیله شورا در دست نیست.
شیعیان بر این باورند که محمد در زمان حیاتش، جانشین پس از خود را تعیین کرد و پسر عمو و دامادش علی بن ابیطالب را به عنوان وصی و خلیفه پس از خود اعلام نمود. شیعیان بر این باورند که اساس و خاستگاه شیعه، دفاع از اسلام و ولایت و عدل است.
همچنین شیعیان در اثبات حقانیت خود به روایاتی از پیامبر اسلام در منابع اهل سنت استناد میکنند، که در آنها به «شیعه علی» اشاره شدهاست. از جمله سیوطی سنی مذهب روایت میکند زمانی پیامبر رو به علی کرد و گفت: «سوگند به آن که جانم به دست اوست این شخص - علی - و کسانی که شیعه و پیرو اویند در قیامت رستگارند.» علامه امینی از علمای شیعهاست که از محبوبیت خاصی در میان شیعیان برخوردار است. وی تمامی روایات درباره واقعه غدیر را از کتب اهل سنت جمعآوری نموده و در چهل مجلد الغدیر منتشر نمود.
برخی، تشیع را به فردی بنام عبدالله بن سبا نسبت میدهند. اگرچه برخی از تواریخ و «کتب ملل و نحل»، وی را از غالیان شیعه و موسس فرقه سبائیه میدانند که قائل به الوهیت علی بودهاست و بهمین دلیل مورد لعن و تکفیر علی بن ابیطالب واقع شدهاست و حتی برخی اخباری نقل میکنند که وی و پیروانش، بدستور علی در آتش سوزانده شدهاند. مرتضی عسکری در کتاب خود و همچنین برخی از خاورشناسان و حتی علمای سنی در قرون اخیر، عبدالله بن سبا فردی خیالی و ساخته و پرداخته مخالفان شیعه میدانند.
برخی از اهل سنت، نظیر شیخ شلتوت، مفتی اعظم الازهر معتقدند که تقلید از فقه مذهب جعفری، نظیر مذاهب چهارگانه اهل سنت معتبر است.
خط مشی جاوا
یکی از ویژگیهای جاوا قابل حمل بودن آن است. یعنی برنامهٔ نوشته شده به زبان جاوا باید به طور مشابهی در کامپیوترهای مختلف با سختافزارهای متفاوت اجرا شود. و باید این توانایی را داشته باشد که برنامه یک بار نوشته شود، یک بار کامپایل شود و در همه کامپیوترها اجرا گردد. به این صورت که کد کامپایل شدهٔ جاوا را ذخیره میکند، اما نه بهصورت کد ماشین بلکه بهصورت بایتکد جاوا. دستورالعملها شبیه کد ماشین هستند، اما با ماشینهای مجازی که به طور خاص برای سختافزارهای مختلف نوشته شدهاند، اجرا میشوند. در نهایت کاربر از سکوی جاوا نصب شده روی ماشین خود یا مرورگر وب استفاده میکند. کتابخانههای استاندارد یک راه عمومی برای دسترسی به ویژگیهای خاص فراهم میکنند. مانند گرافیک، نخکشی و شبکه. در بعضی از نسخههای ماشین مجازی جاوا، بایتکدها میتوانند قبل و در زمان اجرای برنامه به کدهای محلی کامپایل شوند. فایدهٔ اصلی استفاده از بایتکد، قسمت کردن است. اما ترجمهٔ کلی یعنی برنامههای ترجمه شده تقریباً همیشه کندتر از برنامههای کامپایل شدهٔ محلی اجرا میشوند. این شکاف میتواند با چند تکنیک خوشبینانه که در کاربردهای 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 نمایش داده میشود.
یکی از ویژگیهای جاوا قابل حمل بودن آن است. یعنی برنامهٔ نوشته شده به زبان جاوا باید به طور مشابهی در کامپیوترهای مختلف با سختافزارهای متفاوت اجرا شود. و باید این توانایی را داشته باشد که برنامه یک بار نوشته شود، یک بار کامپایل شود و در همه کامپیوترها اجرا گردد. به این صورت که کد کامپایل شدهٔ جاوا را ذخیره میکند، اما نه بهصورت کد ماشین بلکه بهصورت بایتکد جاوا. دستورالعملها شبیه کد ماشین هستند، اما با ماشینهای مجازی که به طور خاص برای سختافزارهای مختلف نوشته شدهاند، اجرا میشوند. در نهایت کاربر از سکوی جاوا نصب شده روی ماشین خود یا مرورگر وب استفاده میکند. کتابخانههای استاندارد یک راه عمومی برای دسترسی به ویژگیهای خاص فراهم میکنند. مانند گرافیک، نخکشی و شبکه. در بعضی از نسخههای ماشین مجازی جاوا، بایتکدها میتوانند قبل و در زمان اجرای برنامه به کدهای محلی کامپایل شوند. فایدهٔ اصلی استفاده از بایتکد، قسمت کردن است. اما ترجمهٔ کلی یعنی برنامههای ترجمه شده تقریباً همیشه کندتر از برنامههای کامپایل شدهٔ محلی اجرا میشوند. این شکاف میتواند با چند تکنیک خوشبینانه که در کاربردهای 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 نمایش داده میشود.