سکوی جاوا، نسخه استاندارد

**سکوی جاوا، نگارش استاندارد**  که به صورت اختصار *Java SE* نوشته می‌شود. تا نگارش ۵٫۰ آن به عبارت نمایش دهندهٔ آن Java 2 Platform, Standard Edition و با کوته نوشت *J2SE* بود تا به صورت امروزی آن درآمد. نکارش استاندارد، مجموعه‌ای از **واسط‌های برنامه‌نویسی** است. این نگارش به عنوان نگارش پایه‌ای برای نگارش سازمانی و نگارش میکرو است. نگارش کنونی جاوا، نکارش ۶ است. این نگارش در دسامبر ۲۰۰۶ (آذر ۱۳۸۵) منتشر شده و ۲۱ بار روزآوری شده که آخرین آن از ژوئیه ۲۰۱۰(تیر ۱۳۸۹) توزیع شده‌است.

## نام نگارش
عدد *۲* در نام نگارش قبلی٬(*J2SE *) به خاطر پیشرفتی است که از نگارش یکم (۱٫۱)به نگارش دوم (۱٫۲) در سال ۱۹۹۸ (۱۳۷۷) توسط سان میکروسیستم انتخاب شد. پس از انتشار نگارش ششم، نام این محصول دوباره به عبارت *Java SE*(بدون عدد ۲) بازگشت. تغییراتی دیگر در نوع شماره‌گذاری این نگارش رخ داد: از نگارش پنجم، که به شماره ۱٫۵٫۰ ٬در سپتامبر ۲۰۰۴ (شهریور ۱۳۸۳) منتشر شد، شماره‌گذاری به شکل حذف عدد *۱* و نمایش به صورت *نگارش استاندارد نگارش ۵* درآمد. در ۶ مرداد ۱۳۹۰ نگارش ۷ جاوا پس از مدت‌ها انتظار منتشر شد.

## از منظر برنامه‌نویسی
جاوا نگارش استاندارد، نگارش ششم شامل:
* ابزار واسط کاربری(جاوا ای‌دبلیوتی٬جاوا سوینگ، جاوای دوبعدی)
* ابزار یکپارچه‌سازی(IDL، JDBC، JNDI، RMI، RMIIIOP)
* کتابخانه‌های مهم((I/O٬JNI، serialization٬...)
* کتابخانه‌های پایه‌ای مبتنی بر زبان، ابزارهای کمکی)
بسیاری از کلاس‌های اساسی و پایه‌ای در بستهٔ جاوا٬
*java.lang*و *java.util* قرار دارد و بخش ورودی و خروجی در جاوا در بستهٔ *java.io* قرار دارد. کلاس‌های زیر، کلاس‌ّای اصلی جاوا هستند که به همراه جزییاتی در ذکر می‌گردند. برای اطلاعات بیشتر به اسناد جاوا، که زبان انگلیسی توسط شرکت سان میکروسیستم تهیه شده، مراجعه نمایید.

### کلاس‌های پایه‌ای <code>java.lang</code>
بسته‌های `java.lang`و تمام زیر بسته‌های آن، کلاس‌های پایه‌ای زبان برنامه‌نویسی جاوا را فراهم می‌نماید. مکانیزم‌هایی که فراهم می‌آورد برای موارد زیر نگاشته شده‌اند:
* کلاس اصلی و و پایه‌ای `Object` است، که از تمام کلاس‌ها و واسط‌ها مشتق‌شده از آن هستند.
* ابرکلاس، `Class`، پایه و اساس سازوکار خود-بازتابی است.
* لفافه‌بندی٬()، را برای بسته‌بندی کلاس‌های پایه‌ای : `Boolean`، `Character` oder `Integer` فراهم می‌آورد.
* کلاس `String `، برای کارهای مربوط به رشته.
* کلاس `System `، برای بازیابی متغیرهای محیطی که *ویژگی‌های سیستمی* نیز نامیده می‌شوند، استفاده می‌شود. ویژگی‌های سیستمی، ویژگی‌هایی هستند از قبیل شمارهٔ نگارشِ محیط زمان‌اجرایِ جاوا. می‌توان از این متغیرهای تعریف شده، برای اجرای خط فرمان جاوا، با معرفی JAVA_HOME به عنوان محل جی‌دی‌کا بر روی درایوی که نصب شده، استفاده کرد.
کوته‌نوشت "lang"، به جای عبارت کامل *language*، به معنای زبان در انگلیسی است. این بدان خاطر است که برای برنامه‌نویسی زبان، ابزاری پایه‌ای است.

### کلاس‌های مربوط به ساختمان داده، زمان، بین‌المللی سازی(<code>java.util</code>)
بستهٔ `java.util`، کلاس‌های مختلفی را تعریف نموده‌است. این بسته نسبت به بسته `java.lang`، ابزارهای پایه‌ای کمتری را در خود دارد ولی هر برنامه‌ای در جاوا نیازمند ابزارهایی از این بسته‌است. کوته‌نوشت٬`util`، نمایانگر عبارت انگلیسیِ *utility* است، وجه تسمیه‌ای مناسب برای ابزاری است که دربردارد:
* بسیاری از کلاس‌های معروف به `collection`٬یک سلسله‌مراتب از پیاده‌سازی‌هایی است که ساختارِ ساختمان‌های مختلفی را پیاده‌سازی نموده‌است.
* کلاس‌های `Date`، `Calendar`، برای کارهای مربوط به تاریخ و تقویم می‌باشد.
* کلاس `ResourceBundle `، که بخشی از آنچه که به Resource، شهرت دارد، است. منابع، در این بخش، متون، تصویر و سایر اشیایی است که قابل استفاده در برنامه برای زبان‌های بین‌المللی باشند. به وسیلهٔ آن، توسعهٔ برنامه برای کشورهای مختلف با زبان‌های مختلف، قادر به تعیین زبان بدون تغییر در کد برنامه می‌باشد.
* کلاس `Properties`، شامل مقادیر رشته‌ای نامگذاری شده‌است، که قابل خواندن از فایل‌های متنی هستند، است. این فایلهای متنی، با نام فایله‌های خصوصیات جاوا ،، که به عنوان ساز و کاری ساده برای پیکربندی مورد استفاده قرار می‌گیرد.
* بستهٔ `java.util.zip`، شامل کلاس‌هایی مربوط به فایل‌های فشرده و فرایندهای تولید آن هاست که قالب‌هایی از قبیل زیپ، جی زیپ را پشتیبانی می‌نماید.
* بستهٔ `java.util.jar`، که برای تولید و پردازش آرشیو جاوا مورد استفاده قرار می‌گیرد (فایل *جار*).
* بستهٔ `java.util.regex`، که پشتیبانی از عبارات منظم، برای یافتن الگوهای خاص در فایل است. کلاس رشته(String)، از این بسته برای متدهایی مانند `matches` استفاده می‌نماید.

### کلاس‌های مربوط به ورودی و خروجی(<code>java.io</code>)
بستهٔ `java.io` شامل، کلاس‌هایی برای ورودی و خروجی استفاده می‌شود، که به صورت عمده از آن به صورت *جریان* (Stream)، یاد می‌شود،
* کلاس انتزاعی، `InputStream `، که پایه و اساس تمام جریان‌های ورودی است، که مثال‌های آن عبارتند از صفحه کلید و فایل.
* کلاس انتزاعی `OutputStream `، که پایه و اساس نمام جریان‌های خروجی است، که مثال‌های آن عبارتند از کاراکتر و صفحه نمایش.
* جریان‌ها در نگارش‌های اولیهٔ جاوا معرفی و برای پردازش بایت‌ها مورد استفاده قرار گرفت. بعدها کلاس‌های `Writer <code>، `Reader به عنوان جریان‌های ورودی و خروجی که قابلیت پشتیبانی از کاراکترهای بونیکد را به همراه داشتن معرفی شد.

### سایر بسته‌های مهم

## جستارهای وابسته
* جاوا (زبان برنامه‌نویسی)
* پلتفرم جاوا
* جاوا کارت
* جاوا نسخهٔ میکرو
* جاوا نسخهٔ سازمانی

## منابع

## پیوند به بیرون
* صفحهٔ اصلی جاوا اس‌ای
* مستندات رابط برنامه‌نویسی جاوا اس‌ای
* JSR 270 (جاوا اس‌ای نسخهٔ ۶)
* JSR 176 (جی‌تواس‌ای نسخهٔ ۵)
* JSR 59 (جی‌تواس‌ای نسخهٔ ۱٫۴)
* ابزار برنامه‌نویسی جاوا (وضعیت آگوست ۲۰۰۶)
** 1.7 (در حال تولید، در سه‌ماهه چهارم ۲۰۰۸ منتشر خواهد شد)
** 1.6 (نسخه پایدار)
** 1.5 (نسخهٔ پایدار جاری)
** 1.4 (نسخهٔ پایدار)
** 1.3 (قدیمی)
** 1.2 (پشتیبانی نمی‌شود)
* http://www.java.net/jdk/opensource/ (جاوا نگارش متن باز)
* http://java.sun.com/developer/JDCTechTips/index.html (نکات جاوا نگارش استاندارد)

رده:برنامه‌نویسی
رده:پلت‌فرم جاوا
رده:جاوا
رده:سکوهای رایانش