آموزش جدید Java
برای ثبت نام در دوره آموزش Java می توانید از لنک موجود استفاده نمایید .
مقدمه ای بر زبان و بستر اجرای Java
پروژه ی زبان برنامه نویسی جاوا را توسعه دهنده ی مشهور James Gosling در شرکت Sun Microsystem برای اولین بار کلید زده و در سال 1995 آن را به عنوان مولفه ی اصلی بستر اجرای جاوا (Java 1.0 [J2SE]) از شرکت Sun Microsystems منتشر کرد (Java 1.0 [J2SE]).
آخرین ویرایش رسمی و پایدار جاوا، بستر اجرای جاوا ورژن 8 یا 8 Java Standard Edition می باشد. با پیشرفت زبان Java و محبوبیتی که بدست آورد، تنظیمات مختلفی صورت گرفت تا جاوا با انواع پلت فرم ها سازگاری داشته و برنامه های نوشته شده با آن در تمامی محیط ها قابل اجرا باشد. برای مثال می توان به J2EE برای پیاده سازی اپلیکیشن های تجاری و بزرگ، J2ME برای توسعه ی اپلیکیشن های کوچک و تحت موبایل اشاره کرد.
ورژن های جدید J2 هر یک به ترتیب تحت عنوان Java SE"، Java EE و Java ME نام گذاری شدند. آنچه باعث محبوبیت بالای Java شده، شعار "کد را یکبار بنویس و آن را در همه بسترها اجرا کن" می باشد.
از ویژگی ها و امکانات زبان جاوا می توان به موارد زیر اشاره کرد:
- شی گرا یا Object Oriented – در آموزش Java همه چیز یک آبجکت است و از آنجایی که این زبان مبتنی بر مدل شی گرا/Object model می باشد، به راحتی می توان آن را گسترش داد.
- مستقل از بستر اجرای خاص و قابل اجرا بر روی محیط های مختلف/platform independent – برخلاف بیشتر زبان های برنامه نویسی مانند C و C++، زبان جاوا پس از کامپایل، مستقیما به زبان قابل فهم برای ماشین تبدیل نمی شود بلکه کامپایلر دستورات جاوا را به یک زبان میانی مستقل از پلت فرم به نام byte code ترجمه می کند. این زبان میانی را سپس برنامه ای به نام دستگاه مجازی جاوا یا JVM که نسخه های مختلف آن برای پلت فرم های متفاوت طراحی و پیاده سازی شده، به زبان قابل فهم برای ماشین تفسیر می کند.
- سادگی – Java طوری طراحی شده که یادگیری آن سهل باشد. پس از درک مفاهیم پایه ای شی گرایی و OOP، یادگیری باقی زبان بسیار آسان خواهد بود.
- امن (Secure) – Java به توسعه دهنده این امکان را می دهد که یک برنامه ی کارا، عاری از ویروس، قابل اطمینان و امن برای تمامی سیستم ها پیاده سازی کند. برنامه های مبتنی بر آموزش Java برای سنج هویت و authentication از روش رمزنگاری کلید عمومی (public-key encryption) بهره می گیرند.
- قابلیت اجرا بر روی پردازنده و محیط های مختلف به صورت یکسان/ Architecture-neutral- کامپایلر جاوا یک فایل حاوی آبجکت با فرمت خاص و architecture-neutral تولید می کند که برای کد کامپایل شده قابلیت اجرا بر روی پردازنده ی های مختلف و محیط های اجرایی مطرح را فراهم می آورد. این امکان با حضور سیستم زمان اجرای جاوا یا java runtime system در اختیار توسعه دهندگان برنامه ی جاوا قرار می گیرد.
- Portable و قابلیت اجرا بر روی هر سخت افزاری که JVM سازگار و مربوطه را دارد – خروجی کامپایلر جاوا یک کد غیر قابل اجرا به نام Bytecode است. در صورت وجود JVM یا دستگاه مجازی جاوا سازگار با سخت افزار میزبان، Bytecode را سیستم زمان اجرای جاوا یا Java run-time system که خود توسط jvm فراخوانی می شود، اجرا می نماید. کامپایلر مورد استفاده ی Java با ANSI C نوشته شده و یک زیرمجموعه از POSIX می باشد.
- Robust – Java سعی می کند با تاکید بر روی بررسی خطاها در زمان کامپایل و اجرا، شرایطی که ممکن است در آن خطاهای زیادی رخ دهد را از میان بردارد.
- قابلیت پردازش موازی و انجام چند کار به صورت همزمان (multi-threaded) – با قابلیت پردازش موازی زبان جاوا، این امکان برای توسعه دهنده فراهم شده که برنامه هایی پیاده سازی کند که چندین کار و عملیات را همزمان انجام دهد. این ویژگی زبان Java به توسعه دهنده امکان می دهد تا اپلیکیشن های تعاملی با قابلیت اجرا و پاسخ گویی سریع بنویسد.
- مفسری (Interpreted) – byte code که خروجی کامپایلر جاوا می باشد در حین اجرا به دستورات قابل فهم برای ماشین تبدیل می شود و این دستورات در حافظه ذخیره نمی شوند. فرایند توسعه بسیار سریع تر و تحلیلی خواهد بود چرا که پروسه ی linking (متصل کردن فایل ها فایل های اجرایی کوچک در قالب یک فایل اجرایی بزرگ واحد) افزایشی و سبک خواهد بود.
- کارایی بالا/high performance – به کمک کامپایلرهایی که کدها را در لحظه و به صورت داینامیک (Just-In-Time) ترجمه می کنند، سرعت اجرای برنامه افزایش می یابد.
- Distributed – قابلیت توسعه ی اپلیکیشن های تجاری، بزرگ و توزیع شده بر روی بستر وب و اینترنت را فراهم می آورد.
- Dynamic (داینامیک و دارای قابلیت تفسیر کد بر اساس دستگاه میزبان در زمان اجرا) – Java در اصل نسبت به C و C++ از ویژگی پویایی بیشتری برخودار است چرا که برای تطبیق با محیطی در حال تکامل تعبیه شده است. برنامه های مبتنی بر Java مقدار زیادی اطلاعات زمان اجرا (run-time) را با خود حمل می کنند که این اطلاعات می توانند جهت بررسی صحت و برطرف کردن دسترسی به آبجکت ها در زمان اجرا بکار روند.
پیشینه ای از جاوا
James Gosling پروژه ی زبان برنامه نویسی Java را در ژوئن سال 1991 جهت استفاده در یکی از چندین پروژه ی گیرنده ی دیجیتال تلویزیون (set-top box) خود کلید زد. زبان مورد نظر که در ابتدای امر "Oak"، اسم درختی که در بیرون دفتر مخترع زبان قرار داشت، نام گذاری شده بود و گاهی "Green" نیز نامیده می شد، در نهایت با استخراج کلمه ای تصادفی از یک لیست به Java تغییر نام یافت.
شرکت Sun اولین پیاده سازی و ویرایش عمومی از Java را تحت عنوان Java 1.0 در سال 1995 منتشر کرد. این زبان با شعار "کد را یکبار بنویس و آن را در تمامی محیط ها اجرا کن" یا WORA و ارائه ی runtime های رایگان برای بسترهای اجرا (platform) مطرح، محبوبیت بسیاری کسب کرد.
در تاریخ 13 نوامبر سال 2006، شرکت نام برده عمده ی قابلیت ها و ابزار Java را به صورت یک نرم افزار رایگان و متن باز (open source) تحت لیسانس GPL در اختیار عموم قرار داد.
در 8 مه سال 2007 میلادی، شرکت Sun پروسه را به اتمام رسانده و کل هسته (core) جاوا را به استثنای بخش کوچکی از کد که Sun مجوز نشر آن را نداشت، به صورت رایگان و متن باز (open-source) در اختیار توسعه دهندگان علاقه مند قرار داد.
آموزش متدهای رشته ای(String Method) در Java
در Java متد String charAt() مقدار char یا کاراکتر مورد نظر موجود در اندیس (شماره ی مکان قرار گیری) ورودی را برمی گرداند. اندیس از 0 آغاز می شود. اگر شماره ی اندیس از بازه ی اندیس و طول رشته ی ورودی بزرگتر باشد یا مقدار آن منفی باشد، خطای StringIndexOutOfBoundsException را بجای خروجی برمی گرداند.
متد java string length() تعداد کل کاراکترهای موجود در رشته که همان طول رشته تلقی می شود را برمی گرداند. طول رشته ی java معادل همان واحد کدی (code unit) Unicode رشته می باشد.
متد java string format() رشته ی ورودی را بر اساس زبان محلی که توسط پارامتر Locale مشخص می شود و همچنین بر اساس فرمت و آرگومان های ارسال شده، فرمت بندی کرده و در خروجی برمی گرداند.
متد string substring() در Java بخشی از یک رشته (که در اصطلاح به آن substring گفته می شود) را استخراج کرده و به عنوان خروجی برمی گرداند.
متد string contains() در Java بررسی می کند آیا دنباله ی کاراکترها که به عنوان پارامتر به متد ارسال می شود، در رشته ی مورد نظر وجود دارد یا خیر. اگر کاراکترهای مورد نظر در این رشته موجود باشد، مقدار true و در غیر این صورت false را بازگردانی می کند.
متد string join() در Java رشته ی ورودی (المان هایی از جنس رشته) را با کاراکتر تفکیک کننده ی مورد نظر (پارامتر delimiter) به هم متصل کرده و در خروجی آن رشته را بازمی گرداند. در این متد، تفکیک کننده به ازای هر المان کپی می شود.
متد string equals() دو رشته از جنس آبجکت را بر اساس محتوا بایکدیگر مقایسه می نماید. اگر حتی یک کاراکتر از رشته ی مورد نظر با کاراکتر موجود در رشته ی ورودی منطبق نباشد، مقدار بولی false را برمی گرداند. اگر تمامی کاراکترهای دو رشته با هم منطبق باشند، مقدار true را برمی گرداند.
متد java string isEmpty() بررسی می کند آیا رشته ی ورودی خالی از محتوا است یا خیر. چنانچه طول رشته (تعداد کاراکترهای داخل آن) برابر 0 باشد، مقدار true و در غیر این صورت false را برمی گرداند.
متد java string concat() رشته ی ارسال شده به عنوان آرگومان را به انتهای رشته ی مورد نظر الصاق می کند. خروجی این متد ترکیب محتوای رشته ی مورد نظر (آبجکت از جنس کلاس string) و رشته ی ورودی می باشد. به عبارت دیگر این متد یک رشته را به انتهای رشته ی دیگر الصاق می کند.
متد replace() تمامی کاراکترهای جدید (محتوای رشته ی ارسال شده به عنوان پارامتر) را جایگزین کاراکترهای قدیمی در رشته ی مورد نظر کرده و رشته ی ویرایش شده را در خروجی برمی گرداند.
متد String equalsIgnoreCase در Java محتوای دو رشته را صرف نظر از کوچک و بزرگی حروف، با یکدیگر مقایسه می کند. این متد عملکردی مشابه equals() دارد با این تفاوت که نسبت به کوچک و بزرگی حروف حساس نیست. در صورتی که حتی یک کاراکتر با کاراکتر موجود رشته ی اصلی مطابقت نداشته باشد، مقدار false را برمی گرداند و در غیر این صورت true را بازگردانی می کند.
متد split() در Java رشته ی مورد نظر بر اساس عبارت باقاعده (پارامتر regex) یا الگوی ارسال شده به عنوان آرگومان به رشته های کوچکتر یا به عبارتی آرایه ای از رشته ها تبدیل می کند و آن را در خروجی برمی گرداند (یک آرایه از رشته ها باز می گرداند).
متد java string startsWith() بررسی می کند آیا رشته (محتوای آبجکت از جنس کلاس String برای مثال s1) با پیشوند ارسال شده به عنوان آرگومان (دنباله ای از کاراکترها) آغاز می شود یا خیر. اگر رشته با مقدار پارامتر prefix آغاز شود، true را برمی گرداند و در غیر این صورت false را بازمی گرداند.
متد string substring() بخشی از کل یک رشته را (از اندیس شروع تا اندیس پایان) استخراج کرده و در خروجی برمی گرداند.
متد toCharArray() در Java رشته ی ورودی را به آرایه ای از کاراکترهای تبدیل می کند. این متد در خروجی یک آرایه از کاراکترها را می سازد که طول و تعداد کاراکترهای موجود در آن برابر رشته ی اصلی بوده و محتوای آن با کاراکترهای همان رشته ی اصلی پر (مقداردهی اولیه) می شوند.
متد toLowerCase() در Java کاراکترهای رشته ی ورودی را به حروف کوچک تبدیل می کند. به عبارت دیگر، این تابع تمامی کاراکترهای رشته را از حروف بزرگ به کوچک تبدیل می کند.
متد toUpperCase() در Java کاراکترهای رشته ی ورودی را به حروف بزرگ تبدیل می کند.
متد trim() کاراکترهای space (فاصله) را از ابتدا و انتهای رشته ی مورد نظر حذف می کند. مقدار Unicode کاراکتر space معادل '\u0020' می باشد. متد trim() در جاوا بررسی می کند آیا مقدار مزبور قبل و بعد از رشته ی مورد نظر وجود دارد یا خیر. در صورت مواجه شدن با این مقدار، space را از دو طرف رشته حذف کرده و رشته ی ویرایش شده را به عنوان خروجی برمی گرداند.
متد valueOf() در Java انواع داده ای که به عنوان آرگومان به تابع فرستاده شده اند را به رشته تبدیل می کند. به کمک این متد توسعه دهنده می تواند نوع int، long، boolean، character، float، double، object و char array را به رشته تبدیل کند.