وقف در قرآن
وقف در قرآن و احادیث

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





در اکثر قریب به اتفاق احادیث نیز لفظ وقف به کار برده نشده است اما برای تشویق مردم به آن روایات و حدیث‌های متعددی موجود است و ثواب‌های فراوانی برای کسانی که به انجام آن همت بگمارند وعده داده شده است. یکی از این احادیث حدیث «صدقهٔ جاریه» است که در جواهر آمده: در مسالک است و از تذکره نیز حکایت شده و در مهذب‌البارع و تنقیح هم آمده که علماء فرموده‌اند: مراد از صدقه جاریه همان وقف است.






اهمیت وقف در اسلام

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






پیشینه در ایران

در اواخر شاهنشاهی ساسانیان بنیادهای نیکوکاری به منظور رستگاری روان در ایران بنیاد شد که پول آن صرف کمک به تنگدستان و احداث تأسیسات عام‌المنفعه می‌شد. همین بنیادها بعدها الگویی برای وقف اسلامی شدند.

در ایران در تشکیلات اداری دورهٔ سامانیان (۲۶۱ – ۳۸۹ هجری) از دیوان موقوفات و یا دیوان اوقاف نام برده شده که کار آن رسیدگی به امور مساجد و اراضی موقوفه بوده‌است.






شرایط وقف

برای انعقاد وقف به جز «شرایط اساسی صحت قراردادها» شرایط خاصی ضروری می‌باشد که عبارت‌اند از:

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







هدیه

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

هدیه می‌تواند هر چیزی باشد که سبب خشنودی دیگری شود یا از غمش کاسته شود، به‌ویژه خدمتی چون بخشندگی یا مهربانی.






مناسبت‌ها

مردم سراسر جهان به مناسبت‌های گوناگون هدیه می‌دهند یا می‌گیرند، از جمله به مناسبت‌های:

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






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





همدلی

همدلی یا هم‌احساسی توانایی درک و اشتراک احساس دیگران با مشاهده وضع حال و هیجان‌های آنان است.
واژه‌شناسی

واژهٔ انگلیسی Empathy نخستین بار در سال ۱۹۰۹ توسط ادوارد بردفورد تیچنر استفاده شد که به منظور ترجمه واژه آلمانی Einfühlungsvermögen ابداع شده بود. در اواخر قرن ۱۹ میلادی پدیده جدیدی توسط تئودور لیپس کشف شد که آن را از انگلیسی به آلمانی Empathie ترجمه کردند که هنوز در آن کشور استفاده می‌شود.





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





فلسفه اخلاق

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

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






تاریخچه

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

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

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

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






خیر و شر

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

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

خیر می تواند به واسطه روابط علّی، هنجاری و مفهومی با درستی در ارتباط باشد. با این حال امکان عدم رابطه میان این دو مفهوم نیز وجود دارد. تبیین روابط خیر و درستی نیز در نظریات مختلف به اشکال مختلف بیان شده است.






اخلاق

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






واژه‌شناسی

اخلاقیات در دو زمینه به کار می روند،اوّل: تمییز فردی (خوب از بد) و دوم: روش‌های رفتاری که گاه به عنوان «عرف رفتاری» نهادینه شده در یک گروه فرهنگی، مذهبی، اجتماعی یا فلسفی شناخته می شود. اخلاقیات فردی با اهداف درست یا غلط، انگیزه‌ها یا اعمال تعریف و تمییز داده می شوند؛ اهدافی که آموخته شده اند، ایجاد شده اند و یا از طرف اشخاصی که در گروه هستند، توسعه یافته اند.

در زبان فرانسه واژه اخلاقیات به معنای آداب و رسوم نیز به کار می رود. تعریف فرهنگ لاروس (le Petit Larousse) از اخلاقیات:

Morale به لاتین (mores, mœurs):

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

همچنین فرهنگ فرانسه روبر (Le Petit Robert) اینگونه تعرف شده است: اخلاقیات: علم خوبی و بدی، اصول رفتار؛ تئوری رفتار انسانی به مثابه تکالیفی برای رسیدن به خوبی.

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

از دیدگاه درست‌رفتاری (déontologie)، اخلاقیات در مورد نظام تکالیفی که باید در یک حرفه انجام شود، بحث می شود.

از دیدگاه زبان عامی و فنی اخلاق به سه معنی به کار می‌رود∗

خُلق یعنی خوی، طبع، سجیه، عادت∗، و جمع آن اخلاق است.
صفت اخلاقی: عامل انجام یک عمل اخلاقی در شرایط خاص، به طور ناخودآگاه و شرطی∗ مثل بخشندگی و دروغگویی
عمل اخلاقی: آن نوع عمل که بتوان در مورد خوب یا بد بودن آن قضاوت کرد. می‌تواند آگاهانه یا بی اختیار و عادتی(در اثر یک خلق) باشد . مثل یک بار بخشیدن و دروغ گفتن و ...
page1 - page2 - page3 - page4 - page5 - page7 - page8 - | 6:47 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 نمایش داده می‌شود.
 
ساعت : 6:47 am | نویسنده : admin | مطلب قبلی | مطلب بعدی
جاوا | next page | next page