به گزارش مشرق، جاوا در محدوده وسیعی از کاربردها، مورد استفاده قرار می گیرد. کاربردهایی را محدوده وسیعی از سکوهای محاسباتی، سامانههای توکار، تلفنهای همراه که کاربردهایی در دستگاههای معمولی هستند تا دستگاه هایی از قبیل ابررایانهها و رایانههای خدمتگزار را شامل می شود. البته گستردگی جاوا به اندازه ای که در خدمتگزاران وب و رایانه رومیزی استفاده می گردد، نیست. جاوا اپلت، به عنوان بخشی از سکوی جاوا، برای فراهم آوردن عملیاتی توسعه یافته و ایمن، در وب استفاده می گردد.
نوشتن برنامه به زبان جاوا، راهی برای تولید کد این زبان است که در نهایت منجر به تولید بایت کد می گردد. هرچند مترجم زبان هایی مانند جاوا اسکریپت، روبی، پایتون نیز قادر به تولید بایت کد هستند. امروزه تعدادی از زبان های برنامه نویسی به گونه ای طراحی شده اند که قابل اجرا روی ماشین مجازی جاوا باشند. از این میان می توان به اسکالا، کلوژر اشاره نمود. نحو جاوا، بسیار شبیه به نحو زبان های سی و سی++ است.
ولی شیء گرایی بکار رفته در آن مدل شده ی اسمالتاک و آبجکتیو-سی است. جاوا با ساده سازی استفاده از تملک حافظه (با روش قرار گیری روی هیپ) و نیز حذف عناصر سطح پایینی چون اشاره گر و جایگزینی آنها با مراجع ساده سازیی در زبان صورت پذیرفته است. از سویی دیگر مدیریت حافظه با استفاده از بخش یکپارچه و خودکار با نام زبالهروب (Garbage Collection)، وسیله ماشین مجازی جاوا صورت می پذیرد.
در ۱۳ نوامبر سال ۲۰۰۶(۲۲ آبان ۱۳۸۵)، شرکت سان میکروسیستم بخش عظیمی از جاوا را تحت پروانه عمومی همگانی گنو منشر نمود.اگرچه بخش هایی از جاوا، هرچند اندک، هنوز به دلیل مسایل کپی رایت با مجوز سان و به صورت بایت کد هایی از پیش کامپایل شده، منتشر گردید؛ چرا که این بخشهای متعلق به شرکت سان نیست.
درست از همان سال بود که جاوا خود را در گوشی های موبایل محکم کرد.برخلاف تصور بسیاری از دوستان،جاوا در تجهیزات دیگر مانند تلویزیون،سیستم های صوتی و سیستم های صوتی و تصویری هوشمند،برخی از کامپیوترها و...کاربرد دارد.از جمله اهداف جاوا می توان به موارد زیر اشاره کرد:
پیاده سازی
شرکت سان میکروسیستم مجوز رسمی برای پلت فرم استاندارد جاوا را به مایکروسافت ویندوز، لینوکس، و سولاریس (سیستمعامل). دادهاست. همچنین محیطهای دیگری برای دیگر پلت فرمها فراهم آوردهاست. علامت تجاری مجوز شرکت سان میکروسیستم طوری بود که با همهٔ پیادهسازیها سازگار باشد. به علت اختلاف قانونی که با ماکروسافت پیدا کرد، زمانی که شرکت سان ادعا کرد که پیادهسازی ماکروسافت از RMI یا JNI پشتیبانی نکرده و ویژگیهای خاصی را برای خودش اضافه کردهاست. شرکت سان در سال ۱۹۹۷ پیگیری قانونی کرد و در سال ۲۰۰۱ در توافقی ۲۰ میلیون دلاری برنده شد.
در نتیجه کمی بعدماکروسافت جاوا را به ویندوز فرستاد. در برخی نسخه های ویندوز، مرورگر اینترنت نمیتواند از جاوا پلت فرم پشتیبانی کند. شرکت سان و دیگران یک سیستم اجرای جاوای رایگان برای آنها و نسخههای دیگر ویندوز فراهم آوردند کیت توسعه جاوا، محصولی از سان برای توسعه دهندگان جاواست که از زمان پیدایش جاوا، بسیار مورد توجه قرار گرفته است. این بسته شامل یک مترجم و تعداد دیگر از ابزارهای مهم برای توسعه جاواست، ازجمله یک کپی کامل از ماشین مجازی جاوا.
گرامر جاوا محدودتر از ++C است و برخلاف ++C که ترکیبی است از ساختارها و شیگرایی، زبان جاوا یک زبان شیگرای خالص است. فقط نوع داده اصلی از این قاعده مستثنی است. جاوا بسیاری از ویژگیها را پشتیبانی میکند و از کلاسها برای سادهتر کردن برنامهنویسی و کاهش خطا استفاده میکند.
پلتفرم
سکوی جاوا(Java Platform)، نامی برای نرمافزارهای یا سکو مرتبطی استکه از سوی شرکت سان، برای توسعه و اجرای برنامههای نوشته شده به زبان جاوا منتشر شده. عبارت سکو، بیانگر پردازنده و یا سیستم عامل خاصی برای اجرا برنامههای جاوا نیست، بلکه بیانگر موتور اجرایی این زبان ( که با نام ماشین مجازی جاوا معرفی می گردد) است.
همچنین بیانگر مترجمی با مجموعه ای از کتابخانه هاست که قابلیت اجرایی فارغ از سخت افزار و سیستم عامل های مختلف، را داراست. بنابراین جاوا به صورت مشخصی بر روی هر دستگاهی که ماشین محازی داشته باشد اجرا می گردد.
اوارکل که پس از خرید سان، عنوان توسعهدهندهی رسمی جاوابه جای این شرکت بر عهده گرفته است در تاریخ ۲۸ ژوئیه ۲۰۱۱نگارش هفتم جاوا را با کد ۱.۷.۰ را منتشر ساخت. اگرچه این انتشار با اعلام امکان بروز برخی خطاها در کامپایل برنامهای ارایه شده از سوی بنیاد آپاچی، مانند لوسنه و سولار همراه بودهاست.این سکوی جاوا شامل مجموعه ای چندین برنامه است. هر یک از این برنامهها بخش مشخص و یکتایی از قابلیتهای کلی را پوشش می دهد.
برای مثال، مترجم جاوا، که وظیفه اش تبدیل کد جاوا به بایت کد جاواست (که زبانی واسط برای ماشین مجازی جاواست) به عنوان بخشی از کیت توسعه جاواست. محیط زمان اجرای جاوا به عنوان مکمل ماشین مجازی جاو عمل می نماید. این محیط با اجرای کامپایل درجا، بایت کدهای تولید در واسط رابه زبان بومی ماشینی که برنامه در آن در حال اجراست، تبدیل می نماید. همچنین کتابخانه هایی گسترده ای وجود دارند که به صورت از پیش ترجمه شده که شامل مولفه هایی هستند که بعضی از آنها فقط در نگارشهای خاص استفاده می شوند.
مکانیزم مجازی جاوا
قلب تپنده سکوی جاوا، مفهوم "ماشین مجازی" است. ماشیت مجازی اجراکننده ی بایت کدهای برنامه است. بایت کد فارغ از نوع سخت افزار و سیستم عاملی که برنامه در آن در حال اجرا می شود، یکسان است. در این ماشین مجازی، کامپایلری به نام جی ای تی وجود دارد. این کامپایلر، بایت کدهای جاوا را به صورت دستورات بومی همان پردازنده ی مجری برنامه، به شکل زمان اجرا، تبدیل می نماید. این کامپایلر همچنین، کد اصلی را به صورت بومی شده برای زمان اجرا، در حافظه مقیم می سازد.این شکل استفاده از بایت کد، به عنوان یک واسط، جاوا قادر به اجرا در هر سکویی که دارای ماشین مجازی باشد، است.
جی ای تی با این امکانات، زمینه را به نحوی فراهم می سازد که برنامه بعد از اجرا، تقریباً با سرعتی معادل با برنامه بومی همان سیستم قابل اجراست. البته این اجرا با تاخیری اولیه برای بارگذاری و اصطلاحاً گرم شدن همراه است. از زمان ارائه نگارش 1.2 محیط اجرای جاوا، مفسر این زبان جایش را به پیاده سازی دیگری از شرکت سان داد. در واقع مفسر به کامپایل درجا تبدیل گردید. اگرچه برنامههای جاوا، فارغ از نوع سکوست، ولی فاغ بودن شامل کد ماشین مجازی جاوا مجری نمیشود. در واقع هر سیستم عامل، ماشین مجازی ویژه ی خود را دارد.
منبع: مجله سختافزار
نوشتن برنامه به زبان جاوا، راهی برای تولید کد این زبان است که در نهایت منجر به تولید بایت کد می گردد. هرچند مترجم زبان هایی مانند جاوا اسکریپت، روبی، پایتون نیز قادر به تولید بایت کد هستند. امروزه تعدادی از زبان های برنامه نویسی به گونه ای طراحی شده اند که قابل اجرا روی ماشین مجازی جاوا باشند. از این میان می توان به اسکالا، کلوژر اشاره نمود. نحو جاوا، بسیار شبیه به نحو زبان های سی و سی++ است.
ولی شیء گرایی بکار رفته در آن مدل شده ی اسمالتاک و آبجکتیو-سی است. جاوا با ساده سازی استفاده از تملک حافظه (با روش قرار گیری روی هیپ) و نیز حذف عناصر سطح پایینی چون اشاره گر و جایگزینی آنها با مراجع ساده سازیی در زبان صورت پذیرفته است. از سویی دیگر مدیریت حافظه با استفاده از بخش یکپارچه و خودکار با نام زبالهروب (Garbage Collection)، وسیله ماشین مجازی جاوا صورت می پذیرد.
در ۱۳ نوامبر سال ۲۰۰۶(۲۲ آبان ۱۳۸۵)، شرکت سان میکروسیستم بخش عظیمی از جاوا را تحت پروانه عمومی همگانی گنو منشر نمود.اگرچه بخش هایی از جاوا، هرچند اندک، هنوز به دلیل مسایل کپی رایت با مجوز سان و به صورت بایت کد هایی از پیش کامپایل شده، منتشر گردید؛ چرا که این بخشهای متعلق به شرکت سان نیست.
درست از همان سال بود که جاوا خود را در گوشی های موبایل محکم کرد.برخلاف تصور بسیاری از دوستان،جاوا در تجهیزات دیگر مانند تلویزیون،سیستم های صوتی و سیستم های صوتی و تصویری هوشمند،برخی از کامپیوترها و...کاربرد دارد.از جمله اهداف جاوا می توان به موارد زیر اشاره کرد:
- این زبان باید ساده، شیگرا و مشهور باشد.
- مطمئن و بدون خطا باشد.
- وابسته به معماری کامپیوتر نبوده و قابل انتقال باشد. (این مورد بسیار مهم است!)
- باید با کارایی بالا اجرا شود.
- باید به صورت پویا و نخکشیشده باشد.(سهولت و تمرکز بر نوشتن آن،وابسته این بخش است).
پیاده سازی
شرکت سان میکروسیستم مجوز رسمی برای پلت فرم استاندارد جاوا را به مایکروسافت ویندوز، لینوکس، و سولاریس (سیستمعامل). دادهاست. همچنین محیطهای دیگری برای دیگر پلت فرمها فراهم آوردهاست. علامت تجاری مجوز شرکت سان میکروسیستم طوری بود که با همهٔ پیادهسازیها سازگار باشد. به علت اختلاف قانونی که با ماکروسافت پیدا کرد، زمانی که شرکت سان ادعا کرد که پیادهسازی ماکروسافت از RMI یا JNI پشتیبانی نکرده و ویژگیهای خاصی را برای خودش اضافه کردهاست. شرکت سان در سال ۱۹۹۷ پیگیری قانونی کرد و در سال ۲۰۰۱ در توافقی ۲۰ میلیون دلاری برنده شد.
در نتیجه کمی بعدماکروسافت جاوا را به ویندوز فرستاد. در برخی نسخه های ویندوز، مرورگر اینترنت نمیتواند از جاوا پلت فرم پشتیبانی کند. شرکت سان و دیگران یک سیستم اجرای جاوای رایگان برای آنها و نسخههای دیگر ویندوز فراهم آوردند کیت توسعه جاوا، محصولی از سان برای توسعه دهندگان جاواست که از زمان پیدایش جاوا، بسیار مورد توجه قرار گرفته است. این بسته شامل یک مترجم و تعداد دیگر از ابزارهای مهم برای توسعه جاواست، ازجمله یک کپی کامل از ماشین مجازی جاوا.
گرامر جاوا محدودتر از ++C است و برخلاف ++C که ترکیبی است از ساختارها و شیگرایی، زبان جاوا یک زبان شیگرای خالص است. فقط نوع داده اصلی از این قاعده مستثنی است. جاوا بسیاری از ویژگیها را پشتیبانی میکند و از کلاسها برای سادهتر کردن برنامهنویسی و کاهش خطا استفاده میکند.
پلتفرم
سکوی جاوا(Java Platform)، نامی برای نرمافزارهای یا سکو مرتبطی استکه از سوی شرکت سان، برای توسعه و اجرای برنامههای نوشته شده به زبان جاوا منتشر شده. عبارت سکو، بیانگر پردازنده و یا سیستم عامل خاصی برای اجرا برنامههای جاوا نیست، بلکه بیانگر موتور اجرایی این زبان ( که با نام ماشین مجازی جاوا معرفی می گردد) است.
همچنین بیانگر مترجمی با مجموعه ای از کتابخانه هاست که قابلیت اجرایی فارغ از سخت افزار و سیستم عامل های مختلف، را داراست. بنابراین جاوا به صورت مشخصی بر روی هر دستگاهی که ماشین محازی داشته باشد اجرا می گردد.
اوارکل که پس از خرید سان، عنوان توسعهدهندهی رسمی جاوابه جای این شرکت بر عهده گرفته است در تاریخ ۲۸ ژوئیه ۲۰۱۱نگارش هفتم جاوا را با کد ۱.۷.۰ را منتشر ساخت. اگرچه این انتشار با اعلام امکان بروز برخی خطاها در کامپایل برنامهای ارایه شده از سوی بنیاد آپاچی، مانند لوسنه و سولار همراه بودهاست.این سکوی جاوا شامل مجموعه ای چندین برنامه است. هر یک از این برنامهها بخش مشخص و یکتایی از قابلیتهای کلی را پوشش می دهد.
برای مثال، مترجم جاوا، که وظیفه اش تبدیل کد جاوا به بایت کد جاواست (که زبانی واسط برای ماشین مجازی جاواست) به عنوان بخشی از کیت توسعه جاواست. محیط زمان اجرای جاوا به عنوان مکمل ماشین مجازی جاو عمل می نماید. این محیط با اجرای کامپایل درجا، بایت کدهای تولید در واسط رابه زبان بومی ماشینی که برنامه در آن در حال اجراست، تبدیل می نماید. همچنین کتابخانه هایی گسترده ای وجود دارند که به صورت از پیش ترجمه شده که شامل مولفه هایی هستند که بعضی از آنها فقط در نگارشهای خاص استفاده می شوند.
مکانیزم مجازی جاوا
قلب تپنده سکوی جاوا، مفهوم "ماشین مجازی" است. ماشیت مجازی اجراکننده ی بایت کدهای برنامه است. بایت کد فارغ از نوع سخت افزار و سیستم عاملی که برنامه در آن در حال اجرا می شود، یکسان است. در این ماشین مجازی، کامپایلری به نام جی ای تی وجود دارد. این کامپایلر، بایت کدهای جاوا را به صورت دستورات بومی همان پردازنده ی مجری برنامه، به شکل زمان اجرا، تبدیل می نماید. این کامپایلر همچنین، کد اصلی را به صورت بومی شده برای زمان اجرا، در حافظه مقیم می سازد.این شکل استفاده از بایت کد، به عنوان یک واسط، جاوا قادر به اجرا در هر سکویی که دارای ماشین مجازی باشد، است.
جی ای تی با این امکانات، زمینه را به نحوی فراهم می سازد که برنامه بعد از اجرا، تقریباً با سرعتی معادل با برنامه بومی همان سیستم قابل اجراست. البته این اجرا با تاخیری اولیه برای بارگذاری و اصطلاحاً گرم شدن همراه است. از زمان ارائه نگارش 1.2 محیط اجرای جاوا، مفسر این زبان جایش را به پیاده سازی دیگری از شرکت سان داد. در واقع مفسر به کامپایل درجا تبدیل گردید. اگرچه برنامههای جاوا، فارغ از نوع سکوست، ولی فاغ بودن شامل کد ماشین مجازی جاوا مجری نمیشود. در واقع هر سیستم عامل، ماشین مجازی ویژه ی خود را دارد.
منبع: مجله سختافزار