|
جاوا در دنيای
امروزی
همراه با پيشرفت
شايان
توجه تكنولوژی
برنامه نويسی،
نامی
پرآوازه برای
خود دست و پا كرده است، در اين
مقاله قصد داريم
شما را با ابعاد مختلف جاوا آشنا كنيم.

تاريخچه
به وجود آمدن جاوا:
در سال 1990 شركتی
به نام Sun Microsystems
تصميم
گرفت زبان برنامه نويسی
جديدی
را به جهانيان
عرضه كند كه قابليت
هايی
متفاوت و باارزش تر از زبان
های
برنامه نويسی
ساخته شده تا آن زمان را داشته باشد، در ابتدا هدف از ايجاد
اين
زبان، استفاده از آن در قطعات الكترونيكی
بود، زيرا يكی
از قابليت
های آن می
بايست Hardware Independent
باشد كه بتوان برای
هر CPU
با هر ساختاری
و در هر قطع های
برنامه نويسی
كرد، از اين
رو اين
شركت در سال 1990 تصميم
به ايجاد
گروهی
برای كار
بر روی اين
پروژه گرفت و نام آن را «پروژه سبز» گذاشت، رهبری
گروهی كه
بر روی اين پروژه كار می
كردند
برعهده شخصی
به نام James Gosling
كانادايی
نهاده شد. بعد از مدتی
فعاليت
بر روی اين
پروژه در نهايت
در سال 1992 زبانی
به نام OAK
ايجاد
گرديد، اين
اسم كاملاً به صورت تصادفی
و زمانی كه James از پنجره دفتر كارش به درخت OAK (بلوط) نگاه می
كرد
نشأت گرفته است. ولی
پس از مدتی
شركت Sun
به اين
نتيجه رسيد
كه اين اسم نمی
تواند يك اسم
مناسب تجاری
برای اين
محصول خارق العاده و يكتا
باشد، زيرا
در آن زمان محصولی
با همين
اسم وجود داشت، بنابراين
اسم مزبور را در سال 1995 با ارائه نسخه جديدی
از OAK
به زبان Java
تغيير
نام داد.
شايد
از خود پرسيده
باشد چرا جاوا با يك فنجان قهوه داغ كه بخار از آن بلند می
شود
معروف شده و يا
اسم جاوا از كجا به وجود آمده است. در همان زمان كه زبان OAK با شكست
تجاری به
دليل اسم
خود مواجه شد، تمام گروه تيم
پروژه سبز اقدام به يك
عمل همه جانبه كرده و برای
انتخاب اسم جديدی
برای OAK به كافی
شاپ
نزديك
شركت رفته و تقريباً يك نيمروز
بر روی
نامگذاری
برای OAK تبادل
نظر و بحث كردند. JAVA مخفف (James Gosling, Arthur Van hoff,
Andy bechtolsheim) می
باشد،
اينها
اسامی سه
تن از متخصصين
در گروه مربوط به پروژه سبز است كه حروف اول نام آنها برای
اين
پروژه انتخاب شد و به دليل
اينكه اين نام در همان كافی
شاپ
انتخاب گرديد،
از اين
پس جاوا با يك
فنجان قهوه داغ به جهانيان
شناسانده شد. جاوا از جد خود C
و++
C منشعب شده است، خصوصيات
زبان C
حساس بودن به حروف (Case
Sensitive) و Syntax دستورات
و خصوصيات
زبان برنامه نويسی
++C
استفاده از شيوه
برنامه نويسی
به روشObject Oriented
Programming) OOP )می
باشد
كه همه اين
خصوصيات
در زبان جاوا گنجانده شده است. همچنين
جاوا از روش برنامه نويسی Event Driven
استفاده می
كند،
كه در تمام زبان های
ويژوال به چشم می
خورد.
ماشين
مجازی
جاوا (Java Vertual Machine):
جاوا برخلاف ديگر
زبان های
برنامه نويسی،
با سبكی
متفاوت برنامه های
خود را اجرا می
نمايد.
ماشين
مجازی كه (Java Developers Kit
(JDK است
بر روی Platform
قرار می
گيرد.
ماشين
مجازی
برای
اجرای
برنامه ها از دو قسمت تشكيل
شده است، در مرحله اول فايل
های Source
را به Byte Code
كه همان Class
می باشد
تبديل می
كند
كه در اين
مرحله Compiler
جاوا عمل نموده و سورس را از خوانايی
خارج كرده و به كدهای
بايتی
تبديل می
كند،
ولی اين
فايل Class نمی
تواند
به صورت خودپا (Stand Alone
)اجرا شود، بعد از تبديل
فايل در
مرحله اول، ماشين
مجازی در
مرحله دوم از مفسر خود استفاده كرده و
Byte Codeهای
ايجاد
شده را بر روی
خود اجرا می
كند
و اين
كار موجب می
شود
كه برنامه های
جاوا به روی
هر Platrorm
قابل اجرا باشد (Platform
Independent). فقط كافی
است Byte code
به Platform
موردنظر انتقال داده شود و بر روی
ماشين
مجازی آن
سيستم
عامل تفسير
شود، و اين
قابليت
بسيار
مهمی برای
جاوا می
باشد.
دلايل
مهمی برای
تبديل
سورس به Byte Code
وجود دارد، از جمله اين
كه بعد از تبديل
سورس، به نحوی
از كلاس محافظت می
شود
كه افراد مختلف به سورس برنامه دسترسی
نداشته باشند. حتی
می
توان
به اين
نكته اشاره كرد كه بعد از تبديل
سورس به بايت
كد، كامپايلر يك مرحله
به زبان اجرايی
ماشين
نزديك
شده است و سرعت اجرای
برنامه بسيار
بالاتر می
باشد.
ماشين
مجازی
جاوا دارای
اجزای ديگری
از جمله Debugger
و Disassembler
و Applet Viewer
و موارد ديگری
می باشد
كه در مواقع ضروری
تر
مورد استفاده قرار می
گيرد،
ولی اجزای
مهم ماشين
مجازی
همان مفسر و كامپايلر
است كه در بالا مختصری
در مورد نحوه كار آن مطالبی
خوانديد.
مزايای
مهم جاوا:
در اين
قسمت اشاره كوتاهی
به مزايای
استفاده از زبان جاوا خواهيم
داشت.
- امنيت
داشتن
در تمام قسمت های
ماشين
مجازی،
تمهيداتی
برای امنيت
در تمام حالت ها درنظر گرفته شده است. از جمله اين
تمهيدات
می توان
به FireWall
كه بر روی
ماشين
مجازی
وجود دارد و اجازه دسترسی
به Server
از Client
را نمی
دهد
اشاره كرد كه اين
عمل باعث جلوگيری
از انتشار ويروس
های
كامپيوتری
از طريق
برنامه های
جاوا می
شود.
- برنامه نويسی
شیءگرا
در جاوا
امروزه بيشتر
زبان های
برنامه نويسی
از جمله زبان های
ويژوال
از روش برنامه نويسی
شیءگرا
استفاده می
كنند
و جاوا هم از آنها مستثنی
نيست،
استفاده از اين
روش، قدرت برنامه نويسی
را بسيار
بيشتر از
قبل می
كند
و باعث خوانايی
برنامه می
شود،
بنابراين
برنامه نويس
برای
اشكال زدايی يا
ديباگ
برنامه هيچگاه
گيج و
سردرگم نخواهد شد. در اين
نوع برنامه نويسی،
دستورات در داخل كلاس های
مجزا قرار خواهند گرفت. نكته جالب در زبان جاوا اين
است كه برای
نوشتن كوچك ترين
برنامه، حتماً بايد
از برنامه نويسی
شیءگرا
استفاده نمود، در روش های
قديمی
برنامه نويسی
هرگاه مشكلی
هرچند كوچك در 20000 خط برنامه كه شما نوشته
بوديد
ظاهر می
شد،
مدت های زياد
وقت خود را برای
ديباگ
كردن
برنامه صرف می
كرديد
و در نهايت
شايد به
نتيجه
مطلوب نمی
رسيديد
ولی اين
مشكل در روش شیءگرايی
وجود نخواهد داشت. و اين
به دليل
كدهای
منظم و خوانا می
باشد.
- قابل حمل بودن
همانطوری
كه در قبل به اين
نكته اشاره شده است، جاوا مانند پيشينيان
خود از خاصيت
قابل حمل بودن برخوردار می
باشد،
به اين
صورت كه بايت
كدهای
ايجاد
شده جاوا بر روی
تمام Platformها
قابل اجرا می
باشد
و اين
مورد يكی
از مزيت
های
بزرگ برای
اين زبان
است. شعار طراحان جاوا اين
است «يك
بار بنويس،
هميشه و
همه جا اجرا كن»
- قدرتمندی
يكی
از مزايای
جاوا استفاده از Garbage
Collection می
باشد
كه قدرت بسيار
زياد به
اين زبان
بخشيده
است، در جاوا برنامه نويس
هيچگاه
حافظه را به طور دستی
آزاد نخواهد كرد و مديريت
حافظه كاملا برعهده ماشين
مجازی می
باشد،
اگر به ياد
داشته باشيد
در زبان++
C
هرگاه حافظه ای
را تخصيص
می
داديد،
در نهايت
می بايست
به طور دستی
آن را آزاد می
كرديد،
ولی در
جاوا بعد از تخصيص
حافظه در صورتی
كه هيچ
اشاره ای
به حافظه موردنظر وجود نداشته باشد، ماشين
مجازی چنين
تلقی می
كند
كه فضای
تخصيص يافته
مورد استفاده نيست
و فضای
حافظه را به صورت اتوماتيك
از بين می
برد.
مورد ديگری
كه می
توان
به آن اشاره كرد Exception
Handling می
باشد
كه ماشين
مجازی می
تواند
بر روی
خطاهای غيرطبيعی
ايجاد
شده هنگام اجرای
برنامه فرماندهی
داشته باشد و برنامه را در حين
اجرا قطع نمايد،
از جمله اين
خطاها می
توان
به خطای
تقسيم بر
صفر و عمل سرريزی
در پشته و تبديل
غير
معتبر و مواردی
از اين
قبيل
اشاره كرد.
- برنامه نويسی
توزيع
شده
جاوا زبانی
است كه در برنامه نويسی
اينترنت
نقش به سزايی
ايفا
كرده است و همچنين
می
تواند
با پروتكل های
مختلف شبكه از جمله TCP/IP
ارتباط برقرار كند، به اين
ترتيب می
توان
نقش مهم جاوا در گسترش اينترنت
را به وضوح مشاهده كرد، بسته نرم افزاری
با نام RMI
در جاوا وجود دارد كه امكان برنامه نويسی
توزيع
شده را به برنامه نويس
می دهد.
- روش برنامه نويسی
چند نخكشی
در جاوا(Multi threading)
برخلاف ساير
زبان های
قديمی
برنامه نويسی،
جاوا استفاده از برنامه نويسی
را برای
برنامه نويس
فراهم كرده است. يك
برنامه چندنخكشی
دارای
چندين نخ (thread)
است كه نخها می
توانند
به صورت همزمان يا
غيرهمزمان
اجرا شوند. در داخل هر نخ، عمليات
مختلفی
وجود دارد كه با اولويت
دادن برنامه نويس
به نخها نشان می
دهد
كه نخها بايد
با چه اولويت
هايی
اجرا شود. در هر برنامه چند نخكشی
معمولا يك
نخ اصلی
و چندين
نخ فرعی
وجود دارد كه پايان
دهنده
برنامه، هميشه
نخ اصلی
می باشد و
نخ های
فرعی
زودتر از نخ اصلی
می
بايست
به كار خود پايان
دهند.
چند نخ كشی
كردن يك
برنامه به شما اجازه می
دهد
كه برنامه های
بسيار
مؤثر بنويسيد
كه از وقت CPU
به خوبی
استفاده كنند، در حقيقت
می توان
گفت چند نخ كشی
حالت تخصصی Multi Task
در سيستم
عامل می
باشد.
انواع برنامه نويسی
در جاوا:
برنامه نويسی
در جاوا به چندين
شكل مختلف انجام می
شود
كه در دسته بندی
های
مختلف به نحوه كار آنها اشاره می
كنيم.
1-
Application (برنامه)
Applicationها
يك نوع برنامه
نويسی
در جاوا می
باشد
كه بر روی Platform
و از
طريق ماشين
مجازی
اجرا می
شود
و می توان
از رابط گرافيكی GUI و
يا
برنامه نويسی
به طريق
كنسول (Text Base)
در آن استفاده كرد. Applicationها
هيچ گونه
محدوديتی
برای
استفاده از كلاس ها ندارند و می
توانند
از تمام كلاس های
توكار بدون محدوديت
خاصی
استفاده كنند.
در رابط گرافيكی
می توان
از جعبه ابزار نظير
AWT) Abstract Window toolkit)
كه در كتابخانه Java. AWT
قرار دارد و Swing Components
كه در كتابخانه Java. Swing
قرار دارند استفاده كرد.
2- Applet
(ريزبرنامه
ها)
ريزبرنامه
ها
از نظر ساختار برنامه نويسی
دقيقاً
مانند Applicationها
می باشند،
با اين
تفاوت كه ريزبرنامه
ها
فقط از رابط GUI
استفاده می
كنند
و بر روی
ماشين
مجازی كه
به روی
مرورگر است اجرا می
شوند.
به عبارت ديگر
می
توان
گفت كه Appletها
همان Applicationها
هستند كه از كلاس Applet
به ارث رسيده
اند
و از همان جعبه ابزار AWT
و Swing
استفاده می
كنند.
در واقع تفاوت مهم بين
ريزبرنامه
و Application
امنيت
موجود در ماشين
مجازی
برای ريزبرنامه
ها
است، اين
كار اجازه نمی
دهد
ريزبرنامه
ها
به سيستم
فايل
كارفرما (Client)
دسترسی
داشته باشند و عمليات
I/O را
انجام دهند. ريزبرنامه
ها
دقيقاً
به صورت رويدادگرا
عمل می
كنند
چنين
برنامه ای
هميشه
منتظر وقوع يك
رويداد
از طرف كاربر است، بعد از به وقوع پيوستن
رويداد،
ارتباط با جعبه ابزار گرافيكی
قطع شده و عمليات
مربوط به آن رويداد
انجام می
گيرد
و سپس دوباره كنترل به جعبه ابزار برگردانده می
شود.
3- Servlet
Servlet ي ك
نوع برنامه نويسی
طرف كارگزار
(Server Side) می
باشد.
برنامه نويسی
برای
كارگزارها از طريق
جاوا كمی
با برنامه نويسی
برای ريزبرنامه
ها
و برنامه متفاوت می
باشد،
به اين
صورت كه Servletها
از رابط GUI يا
Console استفاده نمی
كنند،
بلكه براساس درخواست و پاسخ عمل می
كنند؛
درخواست از كارفرما فرستاده می
شود
و بعد از پردازش شدن پاسخ به كارفرما ارسال خواهد شد.
4- Scriptlet
اين
نوع برنامه نويسی
كه به Java Script
شهرت دارد، به طور متفاوتی
از ديگر
انواع در جاوا تفسير
می شود.
در اين
نوع برنامه نويسی،
هيچگاه
سورس جاوا تبديل
به بايت
كد نخواهد شد و اين
سورس در فايل HTML در
تگه ای
مربوط به زبان اسكريپت
جاوا قرار خواهد گرفت و توسط ماشين
مجازی Browser
اجرا
خواهد شد. از جمله محدوديت
های
موجود در اسكريپ
های
جاوا اين
است كه نمی
توان
از تمام كلاس های
توكار جاوا استفاده كرده و همچنين
دسترسی
استفاده از كلاسهای I/O
از طريق
كارگزار به روی
سيستم
كارفرما به دليل
امنيت
ماشين
مجازی
وجود ندارد.
در اين
مقاله به توضيح
در مورد مقدمات و تاريخچه
به وجود آمدن جاوا پرداختيم
و همچين
مزايای
جاوا را به طور كوتاه توضيح
داديم و
به انواع برنامه نويسی
در جاوا اشاره كوتاهی
داشتيم … در
ادامه می
توان
در مورد ساختار جاوا و برنامه نويسی Applicationها
و Appletها
به تفصيل
بحث نمود.
|