چرا جاوا زبانی جالب است

VRWH

عضو جدید
کاربر ممتاز
در یكی از مقالات شركتSun، زبان جاوا را با این خصوصیات شرح می‌دهد:

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

Sun تصدیق می‌کند كه به طور قطع این كلمات رشته‌هایی از واژه‌های متداول در زبان برنامه نویسی هستند، اما حقیقت این است كه این واژه‌ها به طور ماهرانه‌ای خصوصیات این زبان را شرح می‌دهند.

حال به برخی از خصلت‌های جاوا در پشت این واژه‌ها می‌پردازیم.


شی گرا: Object Oriented
جاوا یك زبان برنامه نویسی شی‌گرا است. برای یك برنامه نویس این به این معنا است كه به جای فكر كردن به قسمت‌های رویه برنامه، باید به كاربرد داده ها و روش‌هایی كه روی آن داده ها عمل می‌كنند، توجه شود.

اگر شما به برنامه نویسی با اعلان رویه در C عادت كرده اید، ممكن است دریابید كه به هنگام استفاده از جاوا مجبور به تغییر در روش و چگونگی برنامه‌تان هستید. هنگامی كه فهمیدید این الگوی جدید چقدر قدرتمند است، به سرعت با آن هماهنگ می‌شوید .

در یك سیستم شی گرا، یك كلاس مجموعه‌ای از داده‌ها و روش‌هایی است كه روی آن داده عمل می‌كنند. همراه بودن داده‌ها و متد‌ها رفتار و حالت یك شی را بیان می دارد. كلاس‌ها به صورت سلسله مراتبی مرتب شده اند، بنابر این یك زیر كلاس می‌تواند رفتار هایی را از كلاس بالاتر به ارث ببرد. یك كلاس سلسله مراتبی همیشه یك كلاس ریشه دارد كه كلاسی است با رفتار های كاملا عمومی .

جاوا به همراه دسته ی گسترده ای از كلاس هایی است كه در بسته هایی مرتب شده اند و شما می‌توانید از آنها در برنامه‌ی خود استفاده كنید.

یك شی كلاس(in the java.lang package) به عنوان ریشه كلاس سلسله مراتبی جاوا انجام وظیفه می‌كند .

درست است كه جاوا طوری طراحی شده است كه مثل C++ باشد و خاصیت های آن را داشته باشد ، اما هنگامی كه با آن كار كنید خواهید فهمید كه بسیاری از پیچیده‌گی های آن زبان را از بین برده است .

اگر شما یك برنامه نویس C++ هستید حتما لازم است كه ساختار های شی گرایی در جاوا را به دقت مطالعه كنید. اگرچه تركیب و نحوه دستورات آن تقریبا شبیه C++ است، ‌اما رفتار های آن خیلی مشابه نیست .



تفسیر شده: Interpreted

جاوا یك زبان تفسیر شده است. كامپایلر جاوا به جای ایجاد كد محلی ماشین، كد بایتی برای ماشین مجازی جاوا ایجاد می‌كند. برای اجرای دقیق برنامه، از مفسر جاوا برای اجرای كد های بایتی كامپایل شده استفاده می‌شود. به دلیل اینكه كدهای بایتی جاوا به نوع كامپیوتر بستگی ندارند، برنامه‌های جاوا می‌توانند روی هر نوع كامپیوتری كه JVM (Java Virtual Machine) را دارند، اجرا شوند .

در محیط تفسیر شده، مرحله لینك استاندارد توسعه برنامه از دید كاربر پنهان است. اگر جاوا تنها یك مرحله لینك داشت، فقط بارگذاری كلاس جدید به محیط پردازش می‌شد كه این خصوصیت با چرخه كامپایل-لینك-اجرا ی آرام و طاقت فرسای زبان هایی مانند C یا C++ در تضاد است .


معماری خنثی و قابل حمل: Architecture Neutral and Portable

به دلیل اینكه برنامه‌های جاوا در فرمت كد بایتی با معماری خنثی كامپایل شده اند، برنامه كاربردی جاوا می‌تواند در هر سیستمی اجرا شود.

البته با این شرط كه آن سیستم توانایی پیاده سازی ماشین مجازی جاوا را داشته باشد. این مسئله تقریبا برای كاربردهای توزیع شده روی اینترنت و یا دیگر شبكه‌های ناهمگن مهم است. اما روش معماری خنثی برای كاربردهای بر مبنای شبكه مفید است .

به عنوان یك توسعه دهنده برنامه های كاربردی، در بازار نرم افزاری امروز ممكن است بخواهید مدل‌های كاربردی خود را توسعه دهید، به طوری كه بتواند رویPc، مكینتاش و سیستم عامل Unix اجرا شود .با وجود گونه‌های مختلف Unix ،Windows روی Pc و مكینتاش قوی جدید، رفته رفته تولید نرم افزار برای همه انواع این كامپیوتر ها سخت می‌شود. اگر شما برنامه‌تان را در جاوا بنویسید می‌تواند روی همه‌ی این كامپیوترها اجرا شود.

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

اما جاوا باز از این هم بیشتر گام برمی‌دارد،‌ با اطمینان حاصل كردن از اینكه هیچیك از جنبه‌های وابستگی اجرایی زبان را ندارد. برای مثال جاوا به طور صریح اندازه هریك از انواع داده را تعریف می‌كند كه این با C تفاوت دارد، برای مثال هریک از انواع صحیح می‌تواند بسته به نوع کامپیوتر16-32 یا 64 بیت طول داشته باشد .

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

یك برنامه جاوا به تولید كنندگان نرم افزار كمك می‌كند تا از قابل حمل بودن كد هایشان اطمینان حاصل كنند. برنامه نویسان فقط برای پرهیز از دام غیر قابل حمل بودن برنامه احتیاج به یك تلاش ساده دارند كه شعار تجارتی شركتSun را زنده نگهدارند و آن شعار این است :

" یك بار بنویس ، همه جا اجرا كن" .



پویا و توزیع شده: Dynamic and Distributed

جاوا یك زبان پویا است. هر كلاس جاوا می‌تواند در هر زمانی روی مفسر جاوا بارگذاری شود. سپس این كلاس‌های بارگذاری شده‌ی پویا می‌توانند به صورت پویا معرفی شوند. حتی كتابخانه كدهای محلی می‌تواند به طور پویا بارگذاری شود. كلاس‌ها در جاوا با كلاس Class فراخوانی می‌شوند؛ شما می‌توانید به طور پویا در مورد یك كلاس در زمان اجرا اطلاعاتی بدست بیاورید. این خصوصیت در جاوا به طور درستی موجود است . با وجود بازتاب API اضافه شده (Application Program Interface ) كه به برنامه ساز امكان می‌دهد كه با برنامه از طریق یك برنامه كاربردی دیگر ارتباط برقرار كند .

جاوا حتی با نام زبان توزیع شده نیز خوانده می‌شود. به طور ساده این به این معنا است كه این زبان پشتیبانی سطح بالایی برای شبكه به وجود می آورد. برای مثال كلاس URL و كلاس های مرتبط با آن در بسته‌ی ava.net ، خواندن فایل‌های دوردست را به همان سادگی خواندن فایل‌های محلی كرده است. به طور مشابه در جاوا 1-1، احضار روش كنترلی RMI (Remote Method Invocation ) ، API به یك برنامه جاوا اجازه می‌دهد كه روش‌هایی از اشیاء دور دست جاوا را به همان صورتی كه اگر آن اشیاء محلی بودند آنها را می‌خواند، بخواند .( جاوا حتی از سیستم شبكه‌ای سطح پایین كه شامل آدرس مقصد و مسیر جریانی كه توسط سوكت‌ها متصل شده است ، نیز پشتیبانی می‌كند).

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



منبع: dev.ir
 

VRWH

عضو جدید
کاربر ممتاز
ساده: Simple

جاوا يك زبان ساده است. طراحان جاوا سعي در اين داشتند تا زباني بوجود بياورند كه برنامه نويسان بتوانند به سرعت آن را ياد بگيرند. بنابراين تعداد ساختارهاي اين زبان تقريبا كم است. هدف ديگر طراحي اين زبان اين بود كه به منظور راحتي انتقال آن، آن را طوري طراحي كنند كه براي عده‌ي زيادي از برنامه نويسان آشنا باشد. اگر شما يك برنامه نويس C يا C++ هستيد، خواهيد فهميد كه جاوا از بسياري از ساختار هاي C و C++ استفاده مي‌كند .

براي اينكه اين زبان را هم به طور ساده و هم آشنا و ملموس و هم كوچك نگه دارند بسياري از خصوصيات C و C++ را در آن حذف كردند. اينها خصوصياتي بودند كه باعث مي‌شدند برنامه نويسي ضعيفي صورت بگيرد يا آنهايي بودند كه به ندرت در برنامه استفاده مي‌شدند. براي مثال جاوا از دستور goto استفاده نمي‌كند، در عوض از دستورهاي break , continue در مواقع نياز استفاده مي‌كند.

جاوا از سر فايل‌ها(header files) استفاده نمي‌كند و پردازشگر C را هم حذف كرده است. به اين دليل كه جاوا يك زبان شي گرا است، ساختارهاي C مثل struct , union از آن برداشته شده است. جاوا حتي بارگذاري مجدد و خواص چندگانه ارث بري از C++ را هم حذف كرده است. شايد مهم‌ترين پارامتر ساده بودن جاوا عدم استفاده اين زبان از اشاره گرها باشد. اشاره گرها يكي از بيشترين موجوديت‌هاي دردسرساز در C , C++ هستند. چون جاوا ساختمان ندارد و آرايه‌ها و رشته‌ها اشياء آن هستند، بنابراين احتياجي به اشاره گر نيست. جاوا به طور خودكار آدرس‌دهي و دسترسي به محتواي موجود در يك آدرس را براي شما انجام مي‌دهد.



قدرتمند: Robust

جاوا براي نوشتن نرم افزارهاي قدرتمند و بسيار ايمن ساخته شده است. جاوا هنوز هم به طور قطع نرم افزار ها را تضمين نمي‌كند. تقريبا هنوز هم امكان نوشتن برنامه‌هاي مشكل ساز در جاوا وجود دارد، هرچند كه جاوا برخي از انواع مشخص خطاهاي برنامه نويسي را حذف كرده كه به طرز چشمگيري نوشتن نرم افزارهاي ايمن را آسان تر كرده است .

جاوا يك زبان تايپ شده قدرتمند است،‌ كه اجازه چك شدن مشكلات و خطاهاي تايپي را در زمان كامپايل مي‌دهد. جاوا بسيار قويتر از C++ تايپ شده است كه بسياري از خصوصيات انعطاف پذير در زمان كامپايل را از C به ارث برده است. مخصوصا هنگام اعلان توابع، جاوا به مدل اعلان صريح احتياج دارد. اين مسئله ما را از اينكه كامپايلر مي‌تواند خطاهاي زمان اعلان را بدست آورد، مطمئن مي‌كند. مسئله‌اي كه منجر به ايجاد برنامه‌هاي ايمن‌تري مي‌شود.

يكي از چيزهايي كه باعث شده كه جاوا ساده باشد عدم وجود اشاره‌گر ها ومحاسبات بر روي آنها است. اين ويژگي حتي قدرت جاوا را هم با از ميان بردن يك كلاس سراسري اشاره گر افزايش مي‌دهد.



ايمن: Secure

يكي از دلايل پرطرفدار بودن جاوا اين است كه يك زبان ايمن است. اين ويژگي مخصوصا به خاطر طبيعت توزيع شده‌ي آن بسيار مهم است. بدون وجود امنيت شما قطعا نمي‌خواهيد كه يك كد را از يك سايت تصادفي اينترنت بارگذاري كنيد و به آن اجازه اجرا شدن روي كامپيوتر خودتان را هم بدهيد. اين دقيقا همان چيزي است كه مردم هرروز با يك كد جاوا انجام مي‌دهند. جاوا به صورت ايمن طراحي شده و چندين لايه كنترل امنيت به وجود مي‌آورد كه شما را در برابر كد هاي خطرساز محافظت مي‌كنند و به كاربر اجازه مي‌دهد كه برنامه‌هاي ناشناخته را با خيال راحت اجرا كند .

كدهاي بايتي خراب يا خطرساز ممكن است از ضعف‌هاي اجرايي در مفسر جاوا سوء‌ استفاده كنند. لايه‌اي كه در اينجا ما را به طور ايمن محافظت مي‌كند، مدل جعبه شني (Sand box) است: كدهاي ناشناخته در يك جعبه شني قرار مي‌گيرند جايي كه مي‌توانند به صورت ايمن اجرا شوند، بدون اينكه هيچ صدمه‌اي به بقيه اجزاء يا محيط جاوا بزنند .

وقتي يك برنامه كاربردي يا ديگر كدهاي ناشناخته در جعبه شني در حال اجرا است،‌ چند محدوديت در مورد كاري كه مي‌تواند انجام دهد، وجود دارد. واضح‌ترين اين محدوديت‌ها اين است كه هيچ دسترسي به هيچ يك از فايل‌هاي محلي سيستم وجود ندارد. در جعبه شني محدوديت ديگري هم وجود دارد كه به وسيله كلاس مديريت امنيت اعمال مي‌شود. اين مدل در ابتدا از اينكه سيستم‌هاي امنيتي را نصب كرده‌ايد يا نه، مطمئن مي‌شود، چرا كه همه كلاسهاي جاوا نياز به عمليات حساسي مانند دسترسي به سيستم فايل را دارند . اگر فراخواني به وسيله يك كد ناشناخته به صورت مستقيم يا غير مستقيم انجام شد،‌ مدير امنيت مورد استثناء‌ را مي‌فرستد و عمليات صورت نمي‌گيرد .

و سرانجام در جاوا 1-1 يك راه حل ممكن ديگر براي مشكلات امنيتي وجود دارد، به وسيله ضميمه كردن يك امضاء ديجيتالي به كد جاوا كه اصل آن كد مي‌تواند به صورت پنهاني و نهفته ساخته شود. اگر شما اعتماد خود را به يك شخص يا يك سازمان مشخص كرده باشيد، كدي كه امضاء آن هويت مورد اعتماد روي آن قرار دارد،‌ ايمن و مطمئن است. حتي زمانيكه در حال بارگذاري شدن در شبكه است و ممكن است حتي بدون جلوگيري توسط جعبه شني اجرا شود.


عملكرد سطح بالا: High Performance

جاوا يك زبان تفسير شده است ، بنابر اين هرگز به سرعت زبان كامپايل شده‌اي مثل C نخواهد بود . كد C كامپايل شده 10 برابر سريع تر از كد هاي تفسير شده‌ي جاوا اجرا مي‌شود. اما قبل از اينكه به خاطر اين موضوع مايوس شويد، آگاه باشيد كه اين سرعت بيشتر از آن چيزي است كه براي برنامه‌هاي پرسرعت، كاربردهايGUI (Graphical User Interface ) ، برنامه‌هاي برمبناي شبكه، جايي كه برنامه كاربردي معمولا آماده براي اجرا شدن است، انتظار براي كاربر كه يك دستوري اعمال كند و يا انتظار براي دريافت از شبكه، لازم است .

به علاوه قسمت‌هايي كه به سرعت‌هاي بالا نياز دارند، كه كارهايي از قبيل الحاق رشته‌ها و مقايسه را انجام مي‌دهند، با كد محلي جاوا اجرا مي‌شوند .

علاوه بر اين كارايي، بسياري از مفسرهاي جاوا اكنون شامل كامپايلرهاي فقط در زمان " just in time " نيز هستند كه مي‌تواند كدهاي بايتي جاوا را براي هر نوعCPU در زمان اجرا به كد ماشين ترجمه كند.

اگر شما خواهان اين هستيد كه قابل حمل بودن كد ها را قرباني بهبود در سرعت آن كنيد ، ميتوانيد بخش قابل توجهي از برنامه خود را در C و C++ بنويسيد و از روش هاي مخصوص جاوا براي مشترك كردن با اين كد محلي جاوا استفاده كنيد.




چند نخ كشي شده: Multitbreaded

در يك برنامه كاربردي بر مبناي GUI شبكه‌اي، مثل مرورگر وب، تصور اينكه چند چيز بتوانند به طور همزمان اجرا شوند، آسان است. يك كاربر مي‌تواند همزمان با اينكه دارد يك صفحه وب را مي‌خواند به يك كليپ صوتي گوش دهد و همزمان در پس زمينه مرورگر يك عكس را بارگذاري كند.

جاوا يك زبان چندنخ كشي شده است، كه از چندين رشته اجرايي (گاهي پردازش سبك وزن خوانده ميشود) پشتيباني مي‌كند و مي‌تواند چندين كار را انجام دهد. يكي از مزيت‌هاي چندنخ كشي شده اين است كه عملكرد سطح بالايي براي كاربردهاي گرافيكي براي كاربر فراهم مي‌كند.

اگر شما سعي كرده ايد كه با نخ ها در C و C++ كار كنيد، مي‌دنيد كه كمي مشكل است. جاوا برنامه نويسي با نخ‌ا را بسيار آسان‌ر كرده است، با به وجود آوردن زبان درون ساخته شده‌ي كه از نخ‌ها پشتيباني مي‌کند. بسته jana.lang يك كلاس بوجود آورده است كه از روش هايي براي شروع و پايان يك نخ، و مرتب كردن ترتيب گره ها در ميان چيزهاي ديگر، پشتيباني مي‌كند .

به دليل اينكه جاوا استفاده از نخ‌ها را بسيار ساده مي‌كند، كلاس جاوا در شماري از جاها از اين نخ‌ها استفاده مي‌كند. براي مثال هر برنامه كاربردي كه انيميشن اجرا مي‌كند، از نخ ها استفاده كرده است.
 

sprightly

عضو جدید
مقاله

مقاله

سلام دوستان.من واسه درس شیوه یه مقاله درباره ی زبان java از یه منبع معتبر و با ترجمه فارسی می خوام.کسی میتونه کمکم کنه؟مرسی;)
 

sprightly

عضو جدید
راستی اگه کسی فایل پاورپوینت هم در رابطه با زبان جاوا داشته باشه یه دنیا ممنون میشم.;)
 

efhc

عضو
سلام دوستان.من واسه درس شیوه یه مقاله درباره ی زبان java از یه منبع معتبر و با ترجمه فارسی می خوام.کسی میتونه کمکم کنه؟مرسی




من در تالار برنامه نویسی C++ در تاپیک (pdf برنامه نویسی) آموزش هایی رو گذاشتم.
;) ;););)
 
  • Like
واکنش ها: SHRP

SHRP

همکار مدیر تالار مهندسی کامپیوتر متخصص برنامه نوی
کاربر ممتاز
خدا خیرت بده دوست من که یه چیزایی رو گذاشتی
ولی کاش یه نگاه به تاریخ ارسال اون پیام کرده بودی
حدود 15 ماه و اندی می شه .....
خب دیگه حتما گرد گیری عیده و شما هم دست به کار زیرو رو کردن تاپیکا شدید!
حالا که اهل دلی چند تا کتاب توپ آموزش جاوا در سطوح مختلف برامون بزار دانلود کنیم حالشو ببریم البته فارسی باشه که بچه ها حال ترجمه رو ندارن به خدا
پیشاپیش دستت درد نکنه....
 
  • Like
واکنش ها: efhc

efhc

عضو
خدا خیرت بده دوست من که یه چیزایی رو گذاشتی
ولی کاش یه نگاه به تاریخ ارسال اون پیام کرده بودی
حدود 15 ماه و اندی می شه .....
خب دیگه حتما گرد گیری عیده و شما هم دست به کار زیرو رو کردن تاپیکا شدید!
حالا که اهل دلی چند تا کتاب توپ آموزش جاوا در سطوح مختلف برامون بزار دانلود کنیم حالشو ببریم البته فارسی باشه که بچه ها حال ترجمه رو ندارن به خدا
پیشاپیش دستت درد نکنه....

سلام ;)

به چشم!!!!!!



اینم لینکی از مثال های جاوا مشاهده پیوست examples.rar ;);););)


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

حتما بخونید خیلی توپه!!!!!!!!!!!!!!!;););););););)

اینم لینکش مشاهده پیوست جاوا_english.rar ;);););););););)


امیدوارم راضی باشید!!!!!!!!!!!!!!!!!!!!!!!!
 

efhc

عضو
ساده: Simple

جاوا يك زبان ساده است. طراحان جاوا سعي در اين داشتند تا زباني بوجود بياورند كه برنامه نويسان بتوانند به سرعت آن را ياد بگيرند. بنابراين تعداد ساختارهاي اين زبان تقريبا كم است. هدف ديگر طراحي اين زبان اين بود كه به منظور راحتي انتقال آن، آن را طوري طراحي كنند كه براي عده‌ي زيادي از برنامه نويسان آشنا باشد. اگر شما يك برنامه نويس C يا C++ هستيد، خواهيد فهميد كه جاوا از بسياري از ساختار هاي C و C++ استفاده مي‌كند .

براي اينكه اين زبان را هم به طور ساده و هم آشنا و ملموس و هم كوچك نگه دارند بسياري از خصوصيات C و C++ را در آن حذف كردند. اينها خصوصياتي بودند كه باعث مي‌شدند برنامه نويسي ضعيفي صورت بگيرد يا آنهايي بودند كه به ندرت در برنامه استفاده مي‌شدند. براي مثال جاوا از دستور goto استفاده نمي‌كند، در عوض از دستورهاي break , continue در مواقع نياز استفاده مي‌كند.

جاوا از سر فايل‌ها(header files) استفاده نمي‌كند و پردازشگر C را هم حذف كرده است. به اين دليل كه جاوا يك زبان شي گرا است، ساختارهاي C مثل struct , union از آن برداشته شده است. جاوا حتي بارگذاري مجدد و خواص چندگانه ارث بري از C++ را هم حذف كرده است. شايد مهم‌ترين پارامتر ساده بودن جاوا عدم استفاده اين زبان از اشاره گرها باشد. اشاره گرها يكي از بيشترين موجوديت‌هاي دردسرساز در C , C++ هستند. چون جاوا ساختمان ندارد و آرايه‌ها و رشته‌ها اشياء آن هستند، بنابراين احتياجي به اشاره گر نيست. جاوا به طور خودكار آدرس‌دهي و دسترسي به محتواي موجود در يك آدرس را براي شما انجام مي‌دهد.



قدرتمند: Robust

جاوا براي نوشتن نرم افزارهاي قدرتمند و بسيار ايمن ساخته شده است. جاوا هنوز هم به طور قطع نرم افزار ها را تضمين نمي‌كند. تقريبا هنوز هم امكان نوشتن برنامه‌هاي مشكل ساز در جاوا وجود دارد، هرچند كه جاوا برخي از انواع مشخص خطاهاي برنامه نويسي را حذف كرده كه به طرز چشمگيري نوشتن نرم افزارهاي ايمن را آسان تر كرده است .

جاوا يك زبان تايپ شده قدرتمند است،‌ كه اجازه چك شدن مشكلات و خطاهاي تايپي را در زمان كامپايل مي‌دهد. جاوا بسيار قويتر از C++ تايپ شده است كه بسياري از خصوصيات انعطاف پذير در زمان كامپايل را از C به ارث برده است. مخصوصا هنگام اعلان توابع، جاوا به مدل اعلان صريح احتياج دارد. اين مسئله ما را از اينكه كامپايلر مي‌تواند خطاهاي زمان اعلان را بدست آورد، مطمئن مي‌كند. مسئله‌اي كه منجر به ايجاد برنامه‌هاي ايمن‌تري مي‌شود.

يكي از چيزهايي كه باعث شده كه جاوا ساده باشد عدم وجود اشاره‌گر ها ومحاسبات بر روي آنها است. اين ويژگي حتي قدرت جاوا را هم با از ميان بردن يك كلاس سراسري اشاره گر افزايش مي‌دهد.



ايمن: Secure

يكي از دلايل پرطرفدار بودن جاوا اين است كه يك زبان ايمن است. اين ويژگي مخصوصا به خاطر طبيعت توزيع شده‌ي آن بسيار مهم است. بدون وجود امنيت شما قطعا نمي‌خواهيد كه يك كد را از يك سايت تصادفي اينترنت بارگذاري كنيد و به آن اجازه اجرا شدن روي كامپيوتر خودتان را هم بدهيد. اين دقيقا همان چيزي است كه مردم هرروز با يك كد جاوا انجام مي‌دهند. جاوا به صورت ايمن طراحي شده و چندين لايه كنترل امنيت به وجود مي‌آورد كه شما را در برابر كد هاي خطرساز محافظت مي‌كنند و به كاربر اجازه مي‌دهد كه برنامه‌هاي ناشناخته را با خيال راحت اجرا كند .

كدهاي بايتي خراب يا خطرساز ممكن است از ضعف‌هاي اجرايي در مفسر جاوا سوء‌ استفاده كنند. لايه‌اي كه در اينجا ما را به طور ايمن محافظت مي‌كند، مدل جعبه شني (Sand box) است: كدهاي ناشناخته در يك جعبه شني قرار مي‌گيرند جايي كه مي‌توانند به صورت ايمن اجرا شوند، بدون اينكه هيچ صدمه‌اي به بقيه اجزاء يا محيط جاوا بزنند .

وقتي يك برنامه كاربردي يا ديگر كدهاي ناشناخته در جعبه شني در حال اجرا است،‌ چند محدوديت در مورد كاري كه مي‌تواند انجام دهد، وجود دارد. واضح‌ترين اين محدوديت‌ها اين است كه هيچ دسترسي به هيچ يك از فايل‌هاي محلي سيستم وجود ندارد. در جعبه شني محدوديت ديگري هم وجود دارد كه به وسيله كلاس مديريت امنيت اعمال مي‌شود. اين مدل در ابتدا از اينكه سيستم‌هاي امنيتي را نصب كرده‌ايد يا نه، مطمئن مي‌شود، چرا كه همه كلاسهاي جاوا نياز به عمليات حساسي مانند دسترسي به سيستم فايل را دارند . اگر فراخواني به وسيله يك كد ناشناخته به صورت مستقيم يا غير مستقيم انجام شد،‌ مدير امنيت مورد استثناء‌ را مي‌فرستد و عمليات صورت نمي‌گيرد .

و سرانجام در جاوا 1-1 يك راه حل ممكن ديگر براي مشكلات امنيتي وجود دارد، به وسيله ضميمه كردن يك امضاء ديجيتالي به كد جاوا كه اصل آن كد مي‌تواند به صورت پنهاني و نهفته ساخته شود. اگر شما اعتماد خود را به يك شخص يا يك سازمان مشخص كرده باشيد، كدي كه امضاء آن هويت مورد اعتماد روي آن قرار دارد،‌ ايمن و مطمئن است. حتي زمانيكه در حال بارگذاري شدن در شبكه است و ممكن است حتي بدون جلوگيري توسط جعبه شني اجرا شود.


عملكرد سطح بالا: High Performance

جاوا يك زبان تفسير شده است ، بنابر اين هرگز به سرعت زبان كامپايل شده‌اي مثل C نخواهد بود . كد C كامپايل شده 10 برابر سريع تر از كد هاي تفسير شده‌ي جاوا اجرا مي‌شود. اما قبل از اينكه به خاطر اين موضوع مايوس شويد، آگاه باشيد كه اين سرعت بيشتر از آن چيزي است كه براي برنامه‌هاي پرسرعت، كاربردهايGUI (Graphical User Interface ) ، برنامه‌هاي برمبناي شبكه، جايي كه برنامه كاربردي معمولا آماده براي اجرا شدن است، انتظار براي كاربر كه يك دستوري اعمال كند و يا انتظار براي دريافت از شبكه، لازم است .

به علاوه قسمت‌هايي كه به سرعت‌هاي بالا نياز دارند، كه كارهايي از قبيل الحاق رشته‌ها و مقايسه را انجام مي‌دهند، با كد محلي جاوا اجرا مي‌شوند .

علاوه بر اين كارايي، بسياري از مفسرهاي جاوا اكنون شامل كامپايلرهاي فقط در زمان " just in time " نيز هستند كه مي‌تواند كدهاي بايتي جاوا را براي هر نوعCPU در زمان اجرا به كد ماشين ترجمه كند.

اگر شما خواهان اين هستيد كه قابل حمل بودن كد ها را قرباني بهبود در سرعت آن كنيد ، ميتوانيد بخش قابل توجهي از برنامه خود را در C و C++ بنويسيد و از روش هاي مخصوص جاوا براي مشترك كردن با اين كد محلي جاوا استفاده كنيد.




چند نخ كشي شده: Multitbreaded

در يك برنامه كاربردي بر مبناي GUI شبكه‌اي، مثل مرورگر وب، تصور اينكه چند چيز بتوانند به طور همزمان اجرا شوند، آسان است. يك كاربر مي‌تواند همزمان با اينكه دارد يك صفحه وب را مي‌خواند به يك كليپ صوتي گوش دهد و همزمان در پس زمينه مرورگر يك عكس را بارگذاري كند.

جاوا يك زبان چندنخ كشي شده است، كه از چندين رشته اجرايي (گاهي پردازش سبك وزن خوانده ميشود) پشتيباني مي‌كند و مي‌تواند چندين كار را انجام دهد. يكي از مزيت‌هاي چندنخ كشي شده اين است كه عملكرد سطح بالايي براي كاربردهاي گرافيكي براي كاربر فراهم مي‌كند.

اگر شما سعي كرده ايد كه با نخ ها در C و C++ كار كنيد، مي‌دنيد كه كمي مشكل است. جاوا برنامه نويسي با نخ‌ا را بسيار آسان‌ر كرده است، با به وجود آوردن زبان درون ساخته شده‌ي كه از نخ‌ها پشتيباني مي‌کند. بسته jana.lang يك كلاس بوجود آورده است كه از روش هايي براي شروع و پايان يك نخ، و مرتب كردن ترتيب گره ها در ميان چيزهاي ديگر، پشتيباني مي‌كند .

به دليل اينكه جاوا استفاده از نخ‌ها را بسيار ساده مي‌كند، كلاس جاوا در شماري از جاها از اين نخ‌ها استفاده مي‌كند. براي مثال هر برنامه كاربردي كه انيميشن اجرا مي‌كند، از نخ ها استفاده كرده است.

سلام مجدد ;););)
البته شرکت sun دو ساله که دیگه نوآوری های جدید رو در جاوا ارائه نمیده.
یا مثل قبل حالش رو نداره
یا چیزه دیگه................
 

SHRP

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

VRWH

عضو جدید
کاربر ممتاز
سلام مجدد ;););)
البته شرکت sun دو ساله که دیگه نوآوری های جدید رو در جاوا ارائه نمیده.
یا مثل قبل حالش رو نداره
یا چیزه دیگه................

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

دیگر sun ای وجود ندارد فروخته شد به oracle
در ضمن متوجه نشدم یعنی چی فناوری جدید در جاوا ارائه نمیشود ؟
انها به قوانین شان پایبند هستند
 

Similar threads

بالا