چرا جاوا براي اينترنت اهميت دارد
تاثيرات پيش برنده اي روي اينترنت داشته است . دليل اين امر بسيار ساده است :
جاوا سبب گسترش فضاي حركت اشيائ بطور آزادانه در فضاي الكترونيكي مي شود . در
يك شبكه ، دو نوع طبقه بندي وسيع از اشيائ در حال انتقال بين سرويس دهنده و
رايانه شخصي شما وجود دارد : اطلاعات غير فعال (passive) و برنامه هاي فعال
(active) و پويا (dynamic) . بعنوان نمونه هنگاميكه پست الكترونيكي e-mail خود
را مرور مي كنيد ، در حال بررسي داده هاي غير فعال هستيد . حتي هنگاميكه يك
برنامه را گرفته و بار گذاري مي كنيد ، ماداميكه از آن برنامه استفاده نكنيد
كدهاي برنامه بعنوان داده هاي غير فعال هستند . اما نوع دوم اشيائي كه امكان
انتقال به رايانه شخصي شما را دارند ، برنامه هاي پويا و خود اجرا هستند . چنين
برنامه اي اگر چه توسط سرويس دهنده ارائه و انتقال مي يابد ، اما يك عامل فعال
روي رايانه سرويس گيرنده است . بعنوان نمونه سرويس دهنده قادر است برنامه اي را
بوجود آورد كه اطلاعات و داده هاي ارسالي توسط سرويس دهنده را نمايش دهد .
بهمان اندازه كه برنامه هاي پويا و شبكه اي شده موردتوجه قرار گرفته اند بهمان
نسبت نيز دچار مشكلاتي در زمينه امنيت و قابليت حمل هستند . قبل از جاوا ، فضاي
الكترونيكي شامل فقط نيمي از وروديهايي بود كه اكنون وجود دارند . همانطوريكه
خواهيد ديد ، جاوا درها را براي يك شكل جديد از برنامه ها باز نموده است :
ريز برنامه ها (applets) .
اعلان اشیا
بدست آوردن اشيائ از يك كلاس ، نوعي پردازش دو مرحله اي است . اول ، بايد يك
متغير از نوع همان كلاس اعلان نماييد . اين متغير يك شي ئ را تعريف نمي كند . در
عوض ، متغيري است كه مي تواند به يك شي ئ ارجاع نمايد. دوم ، بايد يك كپي فيزيكي
و واقعي از شي ئ بدست آورده و به آن متغير منتسب كنيد . مي توانيد اينكار را با
استفاده از عملگر new انجام دهيد . عملگر new بطور پويا ( يعني در حين اجرا )
حافظه را براي يك شي ئ تخصيص داده و يك ارجاع به آن را برمي گرداند .
اين ارجاع (reference) كمابيش آدرس آن شي ئ در حافظه است كه توسط new تخصيص
يافته است . سپس اين ارجاع در متغير ذخيره مي شود. بدين ترتيب ، در جاوا، كليه
اشيائ كلاس دار بايد بصورت پويا تخصيص يابند. اجازه دهيد كه به جزئيات اين روال
دقت نماييم .
استفاده از اشيائ بعنوان پارامترها
هم صحيح و هم معمول است كه اشيائ را نيز به روشها گذر دهيم . بعنوان مثال
برنامه ساده بعدي را در نظر بگيريد :
رشته ها (strings)
چند كلمه اي درباره رشته ها (strings)
حتما" دقت كرده ايد كه طي بحث گذشته درباره انواع داده و آرايه ها هيچ حرفي
از رشته ها يا نوع داده رشته (string data type) مطرح نشد . علت عدم پشتيباني
جاوا از اين نوع نيست . بلكه علت آن است كه نوع رشته در جاوا تحت نام string
يك نوع ساده نيست . اين مفهوم در جاوا با آرايه اي از كاراكترها ( آنگونه در C
و C++ مي باشد ) متفاوت است . در جاوا string تعريف كننده يك شي ئ است و توصيف
كامل رشته ، مستلزم درك كاملي از جنبه هاي گوناگون شي ئ گرايي است . بهمين دليل
مبحث رشته ها را بعد از بحث اشيائ خواهيم گفت . اما چون ممكن است تا آن زمان از
رشته هاي ساده درمثالها استفاده شود، لذا معرفي مختصري از رشته ها ارائه ميدهيم .
نوع string براي معرفي و اعلان متغيرهاي رشته اي استفاده مي شود . همچنين
مي توانيد آرايه هايي از رشته ها را اعلان كنيد . يك ثابت رشته اي داخل علامت " "
را مي توان به يك متغير string نسبت داد . يك متغير نوع string را مي توان به
متغير ديگري از همان نوع نسبت داد . مي توانيد يك شي ئ از نوع string را بعنوان
يك آرگومان به ()println استفاده نماييد . بعنوان مثال ، برنامه بعدي را در
نظر بگيريد :
+ String str = "this is a test";
+ String.out.println(str);
در اينجا str يك شي ئ از نوع string است كه رشته "this is a test" به آن
منتسب شده است . اين رشته توسط دستور ()println بنمايش درمي آيد .
بعدا" خواهيد ديد اشيائ string داراي جنبه ها و خصلتهايي هستند كه آنها را
بسيار قدرتمند و سهل الاستفاده ساخته است . اما در بحثهاي بعدي شما فقط از اده خواهيد نمود .
تاریخچه جاوا 2
زمينه هاي پيدايش جاوا
تاريخچه زبانهاي برنامه نويسي بشرح زير است : زبان B منجر به ظهور زبان C و C
زمينه پيدايش C++ شد و در نهايت زبان جاوا متولد شد . درك زبان جاوا مستلزم :
درك زمينه هاي لازم براي ايجاد جاوا ، نيروهايي كه اين زبان را شكل داده اند و
مشخصاتي است كه اين زبان از اسلاف خود به ارث برده است . نظير ساير زبانهاي
برنامه نويسي موفق ، جاوا نيز عناصر بارث برده از اسلاف خود را با ايده هاي
ابتكاري كه ناشي از محيط منحصر بفرد اين زبان بوده درهم آميخته است . فصول بعدي
جنبه هاي عملي زبان جاوا شامل دستور زبان (syntax) و كتابخانه ها (libraries)
و كاربردهاي جاوا را توصيف مي كند . فعلا" چگونگي و علت ظهور جاوا و اهميت آن
را بررسي مي كنيم .
اگر چه جاوا تفكيك ناپذيري با محيط هاي همزمان اينترنت پيوستگي دارد ، اما
بخاطر بسپاريد كه جاوا قبل از هر چيز يك زبان برنامه نويسي است . ابداعات و
پيشرفت ها در زبانهاي برنامه نويسي كامپيوتر بدو دليل بروز مي كنند :
- تطابق با تغييرات محيط ها و كاربردها .
- ايجاد پالايش و پيشرفت در هنر برنامه نويسي .
همانطوريكه بعدا" مشاهده مي كنيد ، تولد جاوا از اين دو دليل بطور يكسان
تاریخچه جاوا 1
جاوا
جاوا شباهتهایی به سیپلاسپلاس دارد، ولی قابلیت انتقال آن بهتر است و استفاده از آن ساده تر از ++C است. همچنین مدیریت حافظه نیز توسط خود ماشین مجازی جاوا انجام میشود. طراحی این زبان به گونه ایست که دارای اطمینان بسیاری بوده و وابسته به سیستم عامل خاصی نیست. و دلیل این موضوع این است که جاوا یک ماشین مجازی در سیستم شما راه میاندازد و برنامهها را در آن ماشین مجازی اجرا میکند. این ماشین مجازی «ماشین مجازی جاوا» یا به اختصار JVM نامیده میشود. البته راه انداختن یک ماشین مجازی باعث دو مشکل میشود. هنگامی که نرمافزار شما در یک ماشین مجازی اجرا میشود سرعت کمتری خواهد داشت، همچنین شما نیاز دارید قبل از اجرای برنامههای جاوا یکبار سیستم مجازی جاوا را که حجم نسبتاً بالایی دارد، از اینترنت بارگذاری و یا از جای دیگری تهیه و نصب کنید ولی مزیت آن عدم وابستگی به سیستم عامل مقصد است.
مقد مه
جاوا یک زبان برنامه نویسی است که در اوایل دهه 90 توسط Java Soft ، بخش نرم افزاری شرکت Sun توسعه داده شد . هدف آن بود که جاوا زبانی ساده ، قوی و همه منظوره باشد . جاوا تمام جنبه های مثبت C و ++C را در خود دارد ، و آن چیزهایی که برنامه نویسان ++C از آن نفرت داشته اند ( مانند وراثت چند گانه ، تحریف اپراتورها و اشاره گرها ) را به کناری گذاشته است .
مهمترین ویژگیهای جاوا این است که اساساً شیء گرا است . اولین ادعای OOP توانایی استفاده مجدد از کد است : چیزی که ++C با تمام ادعاهایش هرگز نتوانست بدان دست یابد . اما در اولین قدم خواهید دید جاوا در این زمینه تا چه حد اندازه صحت دارد . تصورش را بکنید که با صرف کمی وقت بتوانید برنامه ای بنویسید که در سیستم های ویندوز ، یونیکس
و مکینتاش براحتی اجرا شود . همین که یک شرکت نرم افزاری بتواند برای تمام پلاتفرم های موجود در آن واحد پروژه ای را تولید کند ( و مقادیر عظیمی پول صرفه جویی کند ) خود می تواند بهترین دلیل اقبال جاوا باشد و امروز دیگر همه ( و نه فقط شرکتهای نرم افزاری ) به سمت جاوا کشیده شده اند . با این ویژگی ( استقلال از پلاتفرم ) یک برنامه نویس می تواند برای سیستمی برنامه بنویسد که هرگز با آن کار نکرده است . این ویژگی اصلی ترین علت توفیق جاوا در اینترنت است . اینترنت شبکه پیچیده ای است از میلیونها کامپیوتر مختلف در سراسر دنیا ، و مقاومت در مقابل این وسوسه که بتواند برنامه ای بنویسد که روی تمام این سیستم های متفاوت و نا متجانس اجرا شود چندان ساده نیست .
جاوا یک زبان بسیار ساده است چون شما را وادار نمی کند تا در محیط جدید ( و نا آشنایی ) کار کنید و این برای کسانی که اطلاعات فنی ناچیزی درباره کامپیوتر دارند بسیار مهم است . ساختار زبان جاوا در نگاه اول بسیار شبیه C و ++C است و این به هیچ وجه تصادفی نیست . C زبانی است ساخت یافته و ++C زبانیست شیء گرا و مهمتر از همه قسمت اعظم برنامه نویسان دنیا از آنها استفاده می کنند از سوی دیگر این شباهت حرکت به طرف جاوا را برای این قبیل افراد ساده خواهد کرد بنابراین طراحان جاوا برای اجتناب از دوباره کاری از زبانهای C و ++C بعنوان مدل استفاده کردند .
جاوا با دور انداختن اشاره گرها و بر دوش کشیدن بار مدیریت حافظه ، برنامه نویسان C و++C را برای همیشه از این کابوس ها رهایی بخشیده است . علاه بر آن چون جاوا زبانی برای اینترنت است ، از ایمنی و حفاظت ذاتی بالایی برخوردار است . طراحان جاوا از ابتدا یک محیط برنامه نویسی امن را مد نظر داشته اند . مسئله حفاظت سیستم ها رابطه تنگاتنگی با اشاره گرها دارد . اکثر مهاجمان برای ورود غیر قانونی به سیستم های دیگران از این اشاره گرها استفاده می کنند و جاوا با حذف اشاره گرها این راه را سد کرده است .
منبع: برنامه نویسی با جاوا - جن ال هارینگتون www.ostadonline.com
مهندسی نرم افزار کامپیوتر