چند همسری
چندهمسری

چندهمسری وضعیتی است که در آن زن یا مرد بیش از یک همسر دارند.

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





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






نظرات مخالفان چندهمسری

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






نظرات موافقان چند همسری

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






وضعیت حقوقی

آمریکا

چندهمسری در ایالات متحده آمریکا غیرقانونی است.







خاورمیانه

«چندهمسری» در اسرائیل غیرقانونی است. در قوانین ایران «چندزنی» برای ۴ همسر همزمان دائم و بی‌نهایت همسر موقت به رسمیت شناخته شده اما چندشوهری ممنوع است.






چندزنی

«هوو» تغییر مسیری به این صفحه است. برای کاربردهای دیگر هوو (ابهام‌زدایی) را ببینید.

چندزنی نوعی از ازدواج چندهمسری است که در آن یک مرد در یک‌زمان با بیش از یک زن ازدواج کرده باشد.






رواج و ممنوعیت

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

چندزنی در یهودیت، هندوگرایی، اسلام و بوداگرایی جایز شمرده شده است؛ در حالی که در مسیحیت و بهاییت ممنوع است.

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






هوو

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







چندشوهری

چندشوهری حالتی از چندهمسری است که در آن، زن به طور هم‌زمان بیش از یک شوهر داشته باشد.

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

چندشوهری در اسلام، یهودیت، مسیحیت، هندوگرایی، بوداگرایی، آیین زرتشت، و دین بهایی جایز دانسته نمی‌شود.






جامعه‌های نمونه‌

در تبت، چند شوهری پذیرفته است. برادر ها با یک زن ازدواج می کنند و فرزند حاصل از این ازدواج، زمین را به ارث می برد. لغت چند شوهری زمانی که این شوهر ها همه برادر باشند به چند شوهری برادرانه ( Fraternal Polyandry) تغییر نام می دهد. چند شوهری در تبت رواج پیدا کرد و بهترین مثال و رخدادی است که بصورت زنده در سنت چند شوهری اتفاق می افتد.

شواهدی مبنی بر منع چند شوهری در Lagash و شهر سومریان در ۲۳۰۰ سال قبل از میلاد مسیح وجود دارد. در متون حماسی هندی، Mahabharata (مهاباراتا سروده‌ای حماسی از سده پنجم یا ششم پیش از میلاد به زبان سانسکریت است. مهاباراتا با بیش از یکصدهزار بیت بلندترین سروده جهان است. کار نوشتن آن تا سده سوم یا چهارم میلادی ادامه یافته‌است.) دیده می شود. برخی از تاریخدانان موضوع این سروده‌ها را الهام‌گرفته از نبرد میان مردمان آریایی و دراویدی در هزاره دوم پیش از میلاد می‌دانند. مهاباراتا در قدیم با نام رزمنامه به توصیف زنی به نام دراوپادی Draupadi می پردازد که با ۵ برادر ازدواج کرده است.

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

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






تک‌همسری
تک کامی تک‌همسری یا تک زامی یکی از گرایش‌های جفت‌گیرانه در انسان و دیگر جانوران است و در تقابل با چندهمسری قرار می‌گیرد.






تعریف دقیق

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

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






تک‌همسری در جامعه‌های انسانی

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





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






بیولوژی و جنس

نشانه‌های بلوغ جنسی در پسرها، عبارتند از:

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







ویژگی‌های فیزیکی

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






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






خصوصیات کروموزمی

از خصوصیات کروموزوم‌های انسانهای عادی، دارا بودن ۲۲ جفت کروموزوم غیر جنسی و ۱ جفت کروموزوم جنسی می‌باشد. کروموزوم‌های جنسی مردان طبیعی از یک کروموزوم X و یک کروموزوم Y و با این دو کروموزوم تعداد کروموزوم‌ها به ۴۶ عدد می‌رسد.






بیماری‌ها

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






مشخصات جنسی
هورمون جنسی

هورمونی که عامل رویش و رشد موها می‌باشد تستوسترون نامیده می‌شود. این هورمون در بدن هر دو جنس وجود دارد ولی به دلیل نسبت حدوداً ۵۰:۱ آن در مردان، هورمون مردانه نام گرفته‌است.






در فرهنگ

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

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





زن

به انسان ماده یا مؤنث زن گفته می‌شود. واژهٔ دختر معمولاً برای افراد جوان یا نابالغ به کار برده می‌شود و در مقابل آن، واژه زن یا خانم (عنوان محترمانه تر) برای افراد بالغ استفاده می‌شود. البته واژهٔ زن یک عبارت عمومی برای اشاره به انسان مؤنث است مانند «حقوق زنان».

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






ریشه‌شناسی

واژهٔ زن در زبان پهلوی ژن، در اوستا و هندی باستان جنی و در انگلیسی باستان wifman به معنی «انسان مونث» بوده‌است (در برابر werman به معنی انسان مذکر) در آن دوران Man و mann معنی خنثی داشت و فقط نوع انسان را خطاب قرار می‌داد.

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

واژه «بانو»، در کتیبه‌های ساسانی و ادبیات زردشتی فارسی میانه، در لقب بعضی از ایزد زنان هند و ایرانی و همراه نام همسران شاهان، امیران و بزرگان دربار دیده می‌شود. در ادبیات فارسی، بویژه در منظومه‌هایی مانند شاهنامه، ویس و رامین و خسرو و شیرین، به معنی زن بزرگ و ملکه کاربرد فراوان دارد. قدیمی ترین کاربرد این عنوان در یکی از الواح تخت جمشید به خط عیلامی بصورت ba-nu-ka (احتمالاً با تلفظ بانوکا در لوحه شماره ۱۷۰۸) است که ظاهراً عنوان ملکه آتوسا (Hutaosa، هوتس) دختر کورش، همسر داریوش و مادر خشایارشا بوده است. در فارسی میانه و پارتی بصورت «بانوگ» دیده می‌شود. چندین بار در "کتیبه شاپور اول در کعبه زردشت"، در عنوان زنان دربار و به عنوان لقب ناهید، ایزدبانوی نگهبان آب، آمده است.






آغاز بزرگسالی
زنانگی (به انگلیسی: Womanhood) دوره‌ای است که یک دختر (انسان مونث) دوران کودکی و نوجوانی را پشت سر می‌گذارد معمولاً دختری که پا به ۱۸ سالگی می‌گذارد جوان دانسته می‌شود. بلوغ جنسی معمولاً از سن ۱۰ سالگی آغاز می‌شود و در ادامهٔ آن در ۱۲، ۱۳ سالگی نخستین عادت ماهانه روی می‌دهد. در برخی شاخه‌های مسیحیت و در دین‌های اسلام و یهود برای دختران جشن تکلیف می‌گیرند. این آیین در یهودیت، بر میتسوا و بت میتسوا نام دارد. حتی اگر قرار نباشد این آیین به طور ویژه بر‌گزار شود ممکن است جشن تولد یک سال میان ۱۲ تا ۲۱ سالگی را با لباس‌های ویژه به صورت ویژه جشن بگیرند. مانند کویینسس در آمریکای لاتین.






جایگاه اجتماعی زنان
در ایران

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






در یونان باستان

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

حس بیزاری و نفرتی که در آن دوران نسبت به زنان وجود داشت باعث شده بود که آن‌ها اجازهٔ ورود در کارهای فکری در جامعه را نداشته باشند. سمونید آمورگُس (Sémonide d'Amorgos) در جای دیگر در اشاره به آفرینش پاندورا به دستور زئوس می‌گوید: «این زئوس بود که بدترین چیز ممکن را آفرید: زنان!»

با وجود تمام این محدودیت‌ها استثناهایی در پزشکی، فلسفه و ریاضیات (مکتب فیثاغورسی) وجود داشت. برای نمونه می‌توان از تئانو فیلسوف و ریاضی دان یونانی پیرو مکتب فیثاغوری که در سدهٔ ششم پیش از میلاد زندگی می‌کرد، نام برد.

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

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






در روم باستان

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

دختر جوان یا puella، virgo:
همسر یک مرد یا uxor، conjux:
مادر یک خانواده یا matrona, materfamilias:
page1 - page2 - page3 - page4 - page5 - page7 - page8 - | 12:44 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 نمایش داده می‌شود.
 
ساعت : 12:44 am | نویسنده : admin | مطلب قبلی | مطلب بعدی
جاوا | next page | next page