جاوا یک زبان برنامهنویسی شئگراست که شرکت سان میکرو سیستمز آن را ابداع کردهاست. زبان جاوا شبیه به ++C ،اما
کوچکتر،با قابلیت انتقال بهتر و کاربردی تراست.دلیل این امر آنست که این زبان دارای قابلیتهای فراوان بوده و مدیریت حافظه را خود انجام میدهد.طراحی این زبان به گونه ایست که بسیار مطمئن بوده و وابسته به سیستم عامل خاصی نیست .(به عبارت دیگر میتوان آن را روی هر رایانه با هر نوع سیستم عاملی اجرا کرد.) و دلیل آن هم این است که برنامههای جاوا به صورت کدهای بیتی همگردانی (کامپایل) میشوند. که مانند کد ماشین بوده و به ویژه وابسته به سیستم عامل خاصی نیست. به این ترتیب جاوا برای نوشتن برنامههای کاربردی وب مناسب است، زیرا کاربر از طریق انواع مختلف رایانهها میتواند برنامههای شبکهای جاوا را اجرا کند.
مقدمه
جاوا، امروزه یکی از متداول ترین زبانهای برنامه نویسی جهان است. این زبان از لحاظ ظاهری شباهت زیادی به ++C دارد ولی در اصل میتوان تفاوتهای بنیادین زیادی را برای آنها بر شمرد. بر خلاف بسیاری دیگر از زبانهای کامپایلری که سورس کد آنها پس از کامپایل شدن به باینری یک ماشین حقیقی ترجمه میشود، برنامههای جاوا پس از کامپایل شدن به باینری ماشینی به نام ماشین مجازی جاوا یا JVM ترجمه میشود. این کد باینری را بایت کد میگویند. ماشین مجازی جاوا عمدتاً بصورت نرم افزاری پیاده سازی میشود ولی پیاده سازیهای سخت افزاری یا ترکیبی (بیشتر به صورت کمک پردازنده) آن نیز موجود میباشد. استفاده از ماشین مجازی یک روش پیشرفته در زبانهای برنامه نویسی محسوب میشود و مزایای زیادی دارد. ماشین مجازی جاوا میتواند امنیت اجرای برنامهها را تضمین کند و حق دسترسی گوناگونی برای برنامهها در نظر بگیرد. همچنین ماشین مجازی جاوا سازگاری اجرای برنامههای جاوا را تحت سیستم عاملهای مختلف حفظ میکند. یک باور غلط در بین بسیاری از مردم این است که برنامههای نوشته شده به زبان جاوا کندتر از برنامههای نوشته شده به زبانهای کامپایلری اجرا میشود، در حالی که سرعت اجرای یک برنامه جاوا کاملاً بستگی به نحوه پیاده سازی ماشین مجازی دارد. ماشینهای مجازی جدید جاوا معمولاً از تکنیکی به نام کامپایل در زمان لازم یا JIT استفاده میکنند. در این روش در هنگام اجرای برنامه بایت کد ابتدا به کد باینری ماشینی حقیقی که بر روی آن اجرا میشود ترجمه میشود و سپس باینری ترجمه شده بر روی ماشین اصلی اجرا میشود. در این فرآیند ماشین مجازی میتواند بهینه سازیهای خاص ماشین حقیقی را بر روی کد انجام دهد که در برخی موارد باعث میشود برنامههای جاوا حتی سریع تر دیگر زبانهای کامپایلری اجرا شود.

