peyman5959
یک شنبه 21 آبان 1391, 14:30 عصر
جاوا و تعامل مستقیم
حتما تا بحال از سایت ها و مقالات آموزشی متعدد تاریخچه ی جاوا رو میدنید برای همین به تاریخچه و دیگر موضوعات نمی پردازم و فقط به این موضوع اشاره میکنم که خالق زبان برنامه نویسی جاوا جیمز گوسلینگ بوده و این پروژه به صورت مجانی و آپن سورس تحت لیسانس شرکت سان در میاد توسط افراد مختلف در سراسر دنیا توسعه پیدا میکنه و به شکل امروزی میرسه .
اما خود جاوا فقط زبان برنامه نویسی و سینتکس نیست (بر خلاف مفهوم زبان های برنامه نویسی مایکروسافتی که در آن ها زبان بهانه بود ولی اصل چیزی که ارائه میشد 32 بیت بود) بلکه یک پلتفورمه که اوین کاری که میکنه اینه که بستری بر روی سستم عامل اجرا میکنه که شما را دیگه وابسته به یک سیستم عامل خاص نمیکنه. شما فکر کنید یک برنامه در محیط ویندوز مینویسید و میتونید حتنی در محیط یونیکس و سولاریس هم اجراش کنید. این اولین لذت کار با جاوا میباسد . (که شاید اکثر افراد بدونن)
اما ویژگی بعدی جاوا پیاده سازی شی گرایی خالص بدون پیچیدگی و د گی شدن با مفاهیم خاص میباشد. زبان برنامه نویسی جاوا به شکلی ساخته شده که در صورتی که شما ذهنیت شی گر نداشته باشید نمیتوانید حتی یک برنامه کوچک ماشین حساب هم بنویسید .
اما مفاهیم جاوا و کد نویسی در زمره این عظیم تکنولوژی به سه بخش عمده تقسیم میشه که عبارتند از :
1-برنامه نویسی Desktop Application : در این بخش که ممکنه بیشتر از هر بخش دیگه ای با هاش آشنا باشید شما میتوانید برنامه های ویندوزی و گرافیکی بنویسید . در این بخش شما به یک کتابخانه وسیع با بیش از هزاران ای پی آی دسترسی خواهید داشت و توانایی نوشتن هر گونه نرم افزار برای اجرا بر روی پی سی خانگی را خواهید داشت و از نوشتن بازی های گرافیکی دو بعدی گرفته تا برنامه های دیتا بیسی همگی در ویژگ این برنامه ها نهفته می باشد. این بخش از برنامه نویسی برای جاوا رو J2SE یا Java 2 Platform Standard Edition مینامند . که شامل کتا بخانه هایی چون Swing,AWT,J2D,JNI,.... میباشد.
2-برنامه نویسی تحت سرور : در این بخش که پر کراربرد ترین و گران ترین و جالب ترین بخش های برنامه نویسی جاوا ست شما توانایی نوشتن برنامه برای یک شبکه و کلا یک سرور را خواهید داشت. این بخش جاوا صرفا شامل برنامه نویسی تحت وب و HTTP نمیباشد بلکه مخصوص برنامه نویسی برای شبکه های بزرگ نیز میباشد. اکثر پروژه های بزرگ مثل اتوماسیون ها وزرات خانه های دولتی ، ارتش ، وزارت اطلاعات و یا کتابخانه ملی و ... را با این بخش از جاوا مینویسند. مفاهیم بخش های مختلف این قسم برنامه نویسی جاوا به قدری زیاد و گسترده است که شاید شما را به قدری گیج کنه که از کلا هر چی برنامه نویسی سیر بشید ولی اگه وقت بذارید و از چند نفر کار بلد هم کمک بگیرید متوجه خواهید شد که گنج واقعه ای همین کنار دستتون بوده و شما تو ماکروسافت دنبالش میگشتید.
همین قدر بگم که این بخش از جاوا تنها میان افزاری هست که بطور کامل استاندارد ها برنامه نویسی تحت شبکه و سرور رو در خودش جای داده و اصولا برای پروژه هاییی ک توسط اون انجام میشه بودجه های میلیاردی در نظر گرفته میشه. و فقط همین ق در بدونید بزرگترین تولد کننده نرم افزار جهان و پول دار ترین آن ها (یعنی اوراکل) داره از روی کار بر همین بخش جاوا پول در میاره و بهتره بدونید که سرمایه ای که برای یکی از پروژه های کوچک گرفته بودند چیزی حدود به نصف بودجه جمهوری اسلامی ایران بوده.
(منظورم از اورکل دیتا بیس اون نیست بلکه منظورم Application Server اون و بخش توسعه اپلیکیشن سرورشه).
این بخش از برنامه نویسی جاوا رو J2EE یا Java 2 Enterprise Edition مینامند که در این بخش بیشتر راجع بهش حرف میزنیم.
3- برنامه نویسی موبایل : در این بخش شما میتونید برای موبایل و دیگر سخت افزار های مشابه اون برنامه بنویسید (هادی جان در باره این بخش جاوا اطلاعات زیادی دارند.) . این بخش از برنامه نویسی جاوا دارای کتابخانه های مختلف برای گرافیک در جاوا ابزار و کنترل های جاوا و ابزار جانبی چون بلوتوس و یا انفرارد و ..... را داراست .
جاوا (به انگلیسی: Java) یک زبان برنامهنویسی شئگراست که برای اولین بار توسط جیمز گوسلینگ در شرکت سان مایکروسیستمز ایجاد شد و در سال ۱۹۹۵ به عنوان بخشی از سکوی جاوا منتشر شد. زبان جاوا شبیه به ++C است اما مدل شیءگرایی آسانتری دارد و از قابلیتهای سطح پایین کمتری پشتیبانی میکند. یکی از قابلیتهای اصلی جاوا این است که مدیریت حافظه را بطور خودکار انجام میدهد. ضریب اطمینان عملکرد برنامههای نوشتهشده به این زبان بالا است و وابسته به سیستمعامل خاصی نیست، به عبارت دیگر میتوان آن را روی هر رایانه با هر نوع سیستمعاملی اجرا کرد. برنامههای جاوا به صورت کدهای بیتی همگردانی (کامپایل) میشوند. که مانند کد ماشین هستند و به ویژه وابسته به سیستمعامل خاصی نیستند.
آموزش جاوا (http://www.tahlildadeh.com/CourseDetails/90/java.aspx)
در مقایسه با زبانهای دیگر، همچون ++C یا بیسیک یا فورترن، جاوا زبان نسبتاً جدیدتری است. شرکت (sun Microsystems)سان مایکروسیستمز در سال ۱۹۹۱ یک پروژه تحقیقاتی به نام گرین (Green) را آغاز کرد. هدف این پروژه ایجاد زبانی جدید شبیه به ++C بود که نویسنده اصلی آن، جیمز گاسلینگ، آن را بلوط (Oak) نامید. اما بعدها به دلیل برخی مشکلات حقوقی[نیازمند منبع] از میان لیستی از کلمات تصادفی[۱] نام آن به جاوا تغییر کرد.
پروژه گرین به دلیل مشکلات بازاریابی در شرف لغو شدن بود تا اینکه گسترش وب در سال ۱۹۹۳ باعث نمایش تواناییهای وافر جاوا در این عرصه گشت. اینگونه بود که شرکت سان مایکروسیستمز در مه ۱۹۹۵ جاوا را رسماً به بازار عرضه کرد.
جاوا یک زبان برنامهنویسی است که در آغاز توسط شرکت سان مایکروسیستمز ایجاد شدهاست و در سال ۱۹۹۵ به عنوان بخش اصلی سکوی جاوا منتشر شد. این زبان قسمتهای بسیاری از گرامر خود را از C و ++C گرفته اما دارای مدل شیگرایی سادهای است و امکانات سطح پایین کمی دارد. کاربرد جاوا در کامپایل به صورت بایت کد است که قابلیت اجرا روی تمامی ماشینهای شبیهسازی جاوا را داشته باشد صرف نظر از معماری و خصوصیات آن کامپیوتر. اجرای اصلی کامپایلرهای جاوا، ماشینهای پیادهسازی و کتابخانههای آن توسط این شرکت از سال ۱۹۹۵ منتشر شد. در 1997 may این شرکت، نرمافزار رایگان این زبان را فراهم کرد. دیگران هم کاربردهای دیگری از این زبان را منتشر کردند مثل کامپایلر GNU برای جاوا.
مرورگرهای اصلی وب، به هم پیوستند تا به طور مطمئن جاوا اپلت را بدون صفحات وب اجرا کنند و به این صورت جاوا خیلی زود معروف و محبوب شد. با پیدایش java2، نسخهٔ جدید توانست ترکیبهای جدیدی را برای نوعهای مختلف پلت فرمها ایجاد کند. به عنوان مثال J2EE، باهدف کاربرد برای تشکیلات اقتصادی، و نسخهٔ سکوی جاوا، نسخه میکرو برای موبایل منتشر شد. در سال 199۶ با هدف بازاریابی، این شرکت نسخهٔ جدید J2 را با نامهای سکوی جاوا، نسخه سازمانی، سکوی جاوا، نسخه میکرو و سکوی جاوا، نسخه استاندارد منتشر کرد. در سال ۱۹۹۷ شرکت سان میکروسیستمز،ISO/IEC JTC1 standards body و Ecma International را به فرمول جاوا تغییر داد. شرکت sun بسیاری از کاربردهای جاوایش را بدون هیچ هزینهای فراهم آورد. شرکت sun با فروش مجوز برای بعضی از کاربردهای خاصش مثل Java Enterprise System درآمدی را بدست آورد. اولین تمایزی که بین SDK و سکوی جاوا داد شامل فقدان کامپایلر برای JRE و سرفایلها بود. در ۱۳ نوامبر 199۶ شرکت sun نرمافزار جاوا را به صورت رایگان و با مجوز عمومی برای همه منتشر کرد. جاوا یک پلتفرم نرمافزاری است.
جاوا برای نوشتن انواع برنامههای کاربردی مناسب است. با جاوا میتوان انواع برنامههای زیر را نوشت:
برنامههای تحت وب
برنامهنویسی سیستمهای کوچک مانند موبایل، پاکت پیسی و...
برنامههای کاربردی بزرگ (Enterprise)
برنامههای رومیزی (Desktop)
و غیره.
قابلیت خاصی در جاوا وجود دارد بنام اپلت. اپلتها امکانات فراوانی برای نوشتن برنامههای تحت وب در اختیار برنامهنویسان قرار میدهند که دیگر زبانهای برنامهنویسی فاقد آن هستند.[نیازمند منبع] البته وجود ماشین مجازی جاوا برای اجرای اپلت لازم است. اپلتها نظیر فناوری اکتیوایکس شرکت مایکروسافت هستند که برنامهنویسان را قادر میسازد تا امکاناتی را به مرورگر کاربر بیافزایند. البته تفاوت این دو در امنیت میباشد به گونهای که اپلتها بدلیل اینکه در محیطی به نام جعبه شنی اجرا میشوند امن هستند ولی Activexها فاقد چنین امنیتی هستند.
سیستمعامل: هر چقدر زبانهای.net قوی باشند تنها بر روی پلت فرم ویندوز اجرا میشوند و برخی ویندوز را سیستمعامل غیر قابل اعتمادی در برنامه نویسی Enterprise میدانند.[نیازمند منبع] ولی جاوا از این نظر انتخابی خوب است.
قابلیت حمل: جاوا بر روی پلتفرمهای گوناگونی قابل اجرا است، از ATM و ماشین رختشویی گرفته تا سرورهای سولاریس با قابلیت پشتیبانی از 1024 cpu برای پردازش.
جاوا بیشتر از یک زبان است: جاوا فقط یک زبان نیست و انجمنهایی متشکل از بزرگان صنایع و برنامهنویسان زیادی مشغول به توسعه و ایجاد استانداردهای جدید و به روز هستند.
خط مشی جاوا
یکی از ویژگیهای جاوا قابل حمل بودن آن است. یعنی برنامهٔ نوشته شده به زبان جاوا باید به طور مشابهی در کامپیوترهای مختلف با سختافزارهای متفاوت اجرا شود. و باید این توانایی را داشته باشد که برنامه یک بار نوشته شود، یک بار کامپایل شود و در همه کامپیوترها اجرا گردد. به این صورت که کد کامپایل شدهٔ جاوا را ذخیره میکند، اما نه بهصورت کد ماشین بلکه بهصورت بایت کد جاوا. دستورالعملها شبیه کد ماشین هستند، اما با ماشینهای مجازی که به طور خاص برای سختافزارهای مختلف نوشته شدهاند، اجرا میشوند. در نهایت کاربر از سکوی جاوا نصب شده روی ماشین خود یا مرورگر وب استفاده میکند. کتابخانههای استاندارد یک راه عمومی برای دسترسی به ویژگیهای خاص فراهم میکنند. مانند گرافیک، نخکشی و شبکه. در بعضی از نسخههای ماشین مجازی جاوا بایت کدها میتوانند قبل و در زمان اجرای برنامه به کدهای محلی کامپایل شوند. فایدهٔ اصلی استفاده از بایت کد، قسمت کردن است. اما ترجمهٔ کلی یعنی برنامههای ترجمه شده تقریباً همیشه کندتر از برنامههای کامپایل شدهٔ محلی اجرا میشوند. این شکاف میتواند با چند تکنیک خوشبینانه که در کاربردهای JVM قبلی معرفی شد، کم شود. یکی از این تکنیکها JIT است که بایت کد جاوا را به کد محلی ترجمه کرده و سپس آن را پنهان میکند. در نتیجه برنامه خیلی سریعتر نسبت به کدهای ترجمه شدهٔ خالص شروع و اجرا میشود. بیشتر VMهای پیشرفته، بهصورت کامپایل مجدد پویا، در آنالیز VM، رفتار برنامهٔ اجرا شده و کامپایل مجدد انتخاب شده و بهینهسازی قسمتهای برنامه، استفاده میشوند. کامپایل مجدد پویا میتواند کامپایل ایستا را بهینهسازی کند. زیرا میتواند قسمت hot spot برنامه و گاهی حلقههای داخلی که ممکن است زمان اجرای برنامه را افزایش دهند را تشخیص دهد. کامپایل JIT و کامپایل مجدد پویا به برنامههای جاوا اجازه میدهد که سرعت اجرای کدهای محلی بدون از دست دادن قابلیت انتقال افزایش پیدا کند.
تکنیک بعدی به عنوان کامپایل ایستا شناخته شدهاست. که کامپایل مستقیم به کدهای محلی است مانند بسیاری از کامپایلرهای قدیمی. کامپایلر ایستای جاوا، بایت کدها را به کدهای شی محلی ترجمه میکند.
کارایی جاوا نسبت به نسخههای اولیه بیشتر شد. در تعدادی از تستها نشان داده شد که کارایی کامپایلرJIT کاملاََ مشابه کامپایلر محلی شد. عملکرد کامپایلرها لزوماَ کارایی کدهای کامپایل شده را نشان نمیدهند. یکی از پیشرفتهای بی نظیر در در زمان اجرای ماشین این بود که خطاها ماشین را دچار اشکال نمیکردند. علاوه بر این در زمان اجرای ماشینی مانند جاوا وسایلی وجود دارد که به زمان اجرای ماشین متصل شده و هر زمانی که یک استثنا رخ میدهد، اطلاعات اشکال زدایی که در حافظه وجود دارد، ثبت میکنند.
ادامه دارد...
لطفا براي فراگيري كامل برنامه نويسي جاوا به لينك روبرو رجوع كنيد: آموزش جاوا (http://www.tahlildadeh.com/CourseDetails/90/java.aspx)
حتما تا بحال از سایت ها و مقالات آموزشی متعدد تاریخچه ی جاوا رو میدنید برای همین به تاریخچه و دیگر موضوعات نمی پردازم و فقط به این موضوع اشاره میکنم که خالق زبان برنامه نویسی جاوا جیمز گوسلینگ بوده و این پروژه به صورت مجانی و آپن سورس تحت لیسانس شرکت سان در میاد توسط افراد مختلف در سراسر دنیا توسعه پیدا میکنه و به شکل امروزی میرسه .
اما خود جاوا فقط زبان برنامه نویسی و سینتکس نیست (بر خلاف مفهوم زبان های برنامه نویسی مایکروسافتی که در آن ها زبان بهانه بود ولی اصل چیزی که ارائه میشد 32 بیت بود) بلکه یک پلتفورمه که اوین کاری که میکنه اینه که بستری بر روی سستم عامل اجرا میکنه که شما را دیگه وابسته به یک سیستم عامل خاص نمیکنه. شما فکر کنید یک برنامه در محیط ویندوز مینویسید و میتونید حتنی در محیط یونیکس و سولاریس هم اجراش کنید. این اولین لذت کار با جاوا میباسد . (که شاید اکثر افراد بدونن)
اما ویژگی بعدی جاوا پیاده سازی شی گرایی خالص بدون پیچیدگی و د گی شدن با مفاهیم خاص میباشد. زبان برنامه نویسی جاوا به شکلی ساخته شده که در صورتی که شما ذهنیت شی گر نداشته باشید نمیتوانید حتی یک برنامه کوچک ماشین حساب هم بنویسید .
اما مفاهیم جاوا و کد نویسی در زمره این عظیم تکنولوژی به سه بخش عمده تقسیم میشه که عبارتند از :
1-برنامه نویسی Desktop Application : در این بخش که ممکنه بیشتر از هر بخش دیگه ای با هاش آشنا باشید شما میتوانید برنامه های ویندوزی و گرافیکی بنویسید . در این بخش شما به یک کتابخانه وسیع با بیش از هزاران ای پی آی دسترسی خواهید داشت و توانایی نوشتن هر گونه نرم افزار برای اجرا بر روی پی سی خانگی را خواهید داشت و از نوشتن بازی های گرافیکی دو بعدی گرفته تا برنامه های دیتا بیسی همگی در ویژگ این برنامه ها نهفته می باشد. این بخش از برنامه نویسی برای جاوا رو J2SE یا Java 2 Platform Standard Edition مینامند . که شامل کتا بخانه هایی چون Swing,AWT,J2D,JNI,.... میباشد.
2-برنامه نویسی تحت سرور : در این بخش که پر کراربرد ترین و گران ترین و جالب ترین بخش های برنامه نویسی جاوا ست شما توانایی نوشتن برنامه برای یک شبکه و کلا یک سرور را خواهید داشت. این بخش جاوا صرفا شامل برنامه نویسی تحت وب و HTTP نمیباشد بلکه مخصوص برنامه نویسی برای شبکه های بزرگ نیز میباشد. اکثر پروژه های بزرگ مثل اتوماسیون ها وزرات خانه های دولتی ، ارتش ، وزارت اطلاعات و یا کتابخانه ملی و ... را با این بخش از جاوا مینویسند. مفاهیم بخش های مختلف این قسم برنامه نویسی جاوا به قدری زیاد و گسترده است که شاید شما را به قدری گیج کنه که از کلا هر چی برنامه نویسی سیر بشید ولی اگه وقت بذارید و از چند نفر کار بلد هم کمک بگیرید متوجه خواهید شد که گنج واقعه ای همین کنار دستتون بوده و شما تو ماکروسافت دنبالش میگشتید.
همین قدر بگم که این بخش از جاوا تنها میان افزاری هست که بطور کامل استاندارد ها برنامه نویسی تحت شبکه و سرور رو در خودش جای داده و اصولا برای پروژه هاییی ک توسط اون انجام میشه بودجه های میلیاردی در نظر گرفته میشه. و فقط همین ق در بدونید بزرگترین تولد کننده نرم افزار جهان و پول دار ترین آن ها (یعنی اوراکل) داره از روی کار بر همین بخش جاوا پول در میاره و بهتره بدونید که سرمایه ای که برای یکی از پروژه های کوچک گرفته بودند چیزی حدود به نصف بودجه جمهوری اسلامی ایران بوده.
(منظورم از اورکل دیتا بیس اون نیست بلکه منظورم Application Server اون و بخش توسعه اپلیکیشن سرورشه).
این بخش از برنامه نویسی جاوا رو J2EE یا Java 2 Enterprise Edition مینامند که در این بخش بیشتر راجع بهش حرف میزنیم.
3- برنامه نویسی موبایل : در این بخش شما میتونید برای موبایل و دیگر سخت افزار های مشابه اون برنامه بنویسید (هادی جان در باره این بخش جاوا اطلاعات زیادی دارند.) . این بخش از برنامه نویسی جاوا دارای کتابخانه های مختلف برای گرافیک در جاوا ابزار و کنترل های جاوا و ابزار جانبی چون بلوتوس و یا انفرارد و ..... را داراست .
جاوا (به انگلیسی: Java) یک زبان برنامهنویسی شئگراست که برای اولین بار توسط جیمز گوسلینگ در شرکت سان مایکروسیستمز ایجاد شد و در سال ۱۹۹۵ به عنوان بخشی از سکوی جاوا منتشر شد. زبان جاوا شبیه به ++C است اما مدل شیءگرایی آسانتری دارد و از قابلیتهای سطح پایین کمتری پشتیبانی میکند. یکی از قابلیتهای اصلی جاوا این است که مدیریت حافظه را بطور خودکار انجام میدهد. ضریب اطمینان عملکرد برنامههای نوشتهشده به این زبان بالا است و وابسته به سیستمعامل خاصی نیست، به عبارت دیگر میتوان آن را روی هر رایانه با هر نوع سیستمعاملی اجرا کرد. برنامههای جاوا به صورت کدهای بیتی همگردانی (کامپایل) میشوند. که مانند کد ماشین هستند و به ویژه وابسته به سیستمعامل خاصی نیستند.
آموزش جاوا (http://www.tahlildadeh.com/CourseDetails/90/java.aspx)
در مقایسه با زبانهای دیگر، همچون ++C یا بیسیک یا فورترن، جاوا زبان نسبتاً جدیدتری است. شرکت (sun Microsystems)سان مایکروسیستمز در سال ۱۹۹۱ یک پروژه تحقیقاتی به نام گرین (Green) را آغاز کرد. هدف این پروژه ایجاد زبانی جدید شبیه به ++C بود که نویسنده اصلی آن، جیمز گاسلینگ، آن را بلوط (Oak) نامید. اما بعدها به دلیل برخی مشکلات حقوقی[نیازمند منبع] از میان لیستی از کلمات تصادفی[۱] نام آن به جاوا تغییر کرد.
پروژه گرین به دلیل مشکلات بازاریابی در شرف لغو شدن بود تا اینکه گسترش وب در سال ۱۹۹۳ باعث نمایش تواناییهای وافر جاوا در این عرصه گشت. اینگونه بود که شرکت سان مایکروسیستمز در مه ۱۹۹۵ جاوا را رسماً به بازار عرضه کرد.
جاوا یک زبان برنامهنویسی است که در آغاز توسط شرکت سان مایکروسیستمز ایجاد شدهاست و در سال ۱۹۹۵ به عنوان بخش اصلی سکوی جاوا منتشر شد. این زبان قسمتهای بسیاری از گرامر خود را از C و ++C گرفته اما دارای مدل شیگرایی سادهای است و امکانات سطح پایین کمی دارد. کاربرد جاوا در کامپایل به صورت بایت کد است که قابلیت اجرا روی تمامی ماشینهای شبیهسازی جاوا را داشته باشد صرف نظر از معماری و خصوصیات آن کامپیوتر. اجرای اصلی کامپایلرهای جاوا، ماشینهای پیادهسازی و کتابخانههای آن توسط این شرکت از سال ۱۹۹۵ منتشر شد. در 1997 may این شرکت، نرمافزار رایگان این زبان را فراهم کرد. دیگران هم کاربردهای دیگری از این زبان را منتشر کردند مثل کامپایلر GNU برای جاوا.
مرورگرهای اصلی وب، به هم پیوستند تا به طور مطمئن جاوا اپلت را بدون صفحات وب اجرا کنند و به این صورت جاوا خیلی زود معروف و محبوب شد. با پیدایش java2، نسخهٔ جدید توانست ترکیبهای جدیدی را برای نوعهای مختلف پلت فرمها ایجاد کند. به عنوان مثال J2EE، باهدف کاربرد برای تشکیلات اقتصادی، و نسخهٔ سکوی جاوا، نسخه میکرو برای موبایل منتشر شد. در سال 199۶ با هدف بازاریابی، این شرکت نسخهٔ جدید J2 را با نامهای سکوی جاوا، نسخه سازمانی، سکوی جاوا، نسخه میکرو و سکوی جاوا، نسخه استاندارد منتشر کرد. در سال ۱۹۹۷ شرکت سان میکروسیستمز،ISO/IEC JTC1 standards body و Ecma International را به فرمول جاوا تغییر داد. شرکت sun بسیاری از کاربردهای جاوایش را بدون هیچ هزینهای فراهم آورد. شرکت sun با فروش مجوز برای بعضی از کاربردهای خاصش مثل Java Enterprise System درآمدی را بدست آورد. اولین تمایزی که بین SDK و سکوی جاوا داد شامل فقدان کامپایلر برای JRE و سرفایلها بود. در ۱۳ نوامبر 199۶ شرکت sun نرمافزار جاوا را به صورت رایگان و با مجوز عمومی برای همه منتشر کرد. جاوا یک پلتفرم نرمافزاری است.
جاوا برای نوشتن انواع برنامههای کاربردی مناسب است. با جاوا میتوان انواع برنامههای زیر را نوشت:
برنامههای تحت وب
برنامهنویسی سیستمهای کوچک مانند موبایل، پاکت پیسی و...
برنامههای کاربردی بزرگ (Enterprise)
برنامههای رومیزی (Desktop)
و غیره.
قابلیت خاصی در جاوا وجود دارد بنام اپلت. اپلتها امکانات فراوانی برای نوشتن برنامههای تحت وب در اختیار برنامهنویسان قرار میدهند که دیگر زبانهای برنامهنویسی فاقد آن هستند.[نیازمند منبع] البته وجود ماشین مجازی جاوا برای اجرای اپلت لازم است. اپلتها نظیر فناوری اکتیوایکس شرکت مایکروسافت هستند که برنامهنویسان را قادر میسازد تا امکاناتی را به مرورگر کاربر بیافزایند. البته تفاوت این دو در امنیت میباشد به گونهای که اپلتها بدلیل اینکه در محیطی به نام جعبه شنی اجرا میشوند امن هستند ولی Activexها فاقد چنین امنیتی هستند.
سیستمعامل: هر چقدر زبانهای.net قوی باشند تنها بر روی پلت فرم ویندوز اجرا میشوند و برخی ویندوز را سیستمعامل غیر قابل اعتمادی در برنامه نویسی Enterprise میدانند.[نیازمند منبع] ولی جاوا از این نظر انتخابی خوب است.
قابلیت حمل: جاوا بر روی پلتفرمهای گوناگونی قابل اجرا است، از ATM و ماشین رختشویی گرفته تا سرورهای سولاریس با قابلیت پشتیبانی از 1024 cpu برای پردازش.
جاوا بیشتر از یک زبان است: جاوا فقط یک زبان نیست و انجمنهایی متشکل از بزرگان صنایع و برنامهنویسان زیادی مشغول به توسعه و ایجاد استانداردهای جدید و به روز هستند.
خط مشی جاوا
یکی از ویژگیهای جاوا قابل حمل بودن آن است. یعنی برنامهٔ نوشته شده به زبان جاوا باید به طور مشابهی در کامپیوترهای مختلف با سختافزارهای متفاوت اجرا شود. و باید این توانایی را داشته باشد که برنامه یک بار نوشته شود، یک بار کامپایل شود و در همه کامپیوترها اجرا گردد. به این صورت که کد کامپایل شدهٔ جاوا را ذخیره میکند، اما نه بهصورت کد ماشین بلکه بهصورت بایت کد جاوا. دستورالعملها شبیه کد ماشین هستند، اما با ماشینهای مجازی که به طور خاص برای سختافزارهای مختلف نوشته شدهاند، اجرا میشوند. در نهایت کاربر از سکوی جاوا نصب شده روی ماشین خود یا مرورگر وب استفاده میکند. کتابخانههای استاندارد یک راه عمومی برای دسترسی به ویژگیهای خاص فراهم میکنند. مانند گرافیک، نخکشی و شبکه. در بعضی از نسخههای ماشین مجازی جاوا بایت کدها میتوانند قبل و در زمان اجرای برنامه به کدهای محلی کامپایل شوند. فایدهٔ اصلی استفاده از بایت کد، قسمت کردن است. اما ترجمهٔ کلی یعنی برنامههای ترجمه شده تقریباً همیشه کندتر از برنامههای کامپایل شدهٔ محلی اجرا میشوند. این شکاف میتواند با چند تکنیک خوشبینانه که در کاربردهای JVM قبلی معرفی شد، کم شود. یکی از این تکنیکها JIT است که بایت کد جاوا را به کد محلی ترجمه کرده و سپس آن را پنهان میکند. در نتیجه برنامه خیلی سریعتر نسبت به کدهای ترجمه شدهٔ خالص شروع و اجرا میشود. بیشتر VMهای پیشرفته، بهصورت کامپایل مجدد پویا، در آنالیز VM، رفتار برنامهٔ اجرا شده و کامپایل مجدد انتخاب شده و بهینهسازی قسمتهای برنامه، استفاده میشوند. کامپایل مجدد پویا میتواند کامپایل ایستا را بهینهسازی کند. زیرا میتواند قسمت hot spot برنامه و گاهی حلقههای داخلی که ممکن است زمان اجرای برنامه را افزایش دهند را تشخیص دهد. کامپایل JIT و کامپایل مجدد پویا به برنامههای جاوا اجازه میدهد که سرعت اجرای کدهای محلی بدون از دست دادن قابلیت انتقال افزایش پیدا کند.
تکنیک بعدی به عنوان کامپایل ایستا شناخته شدهاست. که کامپایل مستقیم به کدهای محلی است مانند بسیاری از کامپایلرهای قدیمی. کامپایلر ایستای جاوا، بایت کدها را به کدهای شی محلی ترجمه میکند.
کارایی جاوا نسبت به نسخههای اولیه بیشتر شد. در تعدادی از تستها نشان داده شد که کارایی کامپایلرJIT کاملاََ مشابه کامپایلر محلی شد. عملکرد کامپایلرها لزوماَ کارایی کدهای کامپایل شده را نشان نمیدهند. یکی از پیشرفتهای بی نظیر در در زمان اجرای ماشین این بود که خطاها ماشین را دچار اشکال نمیکردند. علاوه بر این در زمان اجرای ماشینی مانند جاوا وسایلی وجود دارد که به زمان اجرای ماشین متصل شده و هر زمانی که یک استثنا رخ میدهد، اطلاعات اشکال زدایی که در حافظه وجود دارد، ثبت میکنند.
ادامه دارد...
لطفا براي فراگيري كامل برنامه نويسي جاوا به لينك روبرو رجوع كنيد: آموزش جاوا (http://www.tahlildadeh.com/CourseDetails/90/java.aspx)