آموزش هوش مصنوعی از صفر ، بدون پیش‌نیاز آموزش هوش مصنوعی ، از صفر بدون پیش‌نیاز!
🎯 شروع یادگیری

آموزش جدید 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 SEJava 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) در اختیار توسعه دهندگان علاقه مند قرار داد.



مقاله های آموزش Java

آموزش Java -معرفی Java
آموزش Java -معرفی Java

شرح مفهوم platform: هر سخت افزار یا محیط نرم افزاری که برنامه در آن اجرا می شود، تحت عنوان platform شناخته می شود. از آنجایی که Java محیط اجرا (runtime environment) و توابع کتابخانه ای/API اختصاصی خود را دارد، به آن platform گفته می شود.

5051 بازدید
ادامه
آموزش Java-پیشینه ی Java
آموزش Java-پیشینه ی Java

بد نیست نگاه مختصری بر تاریخچه ی زبان Java داشته باشیم. برای اولین بار گروه برنامه نویسی به نام Green Team تصمیم به طراحی زبانی برای دستگاه های دیجیتالی، لمسی و لوازم خانگی نظیر تلوزیون گرفتند. در ابتدای امر، این کار برای اعضای تیم نام برده بسیار دشوار و پیچیده به نظر می آمد.

3135 بازدید
ادامه
آموزش Java – امکانات و قابلیت های Java
آموزش Java – امکانات و قابلیت های Java

از آنجایی که گرامر زبان Java مبتنی بر C++ است، آن دسته از برنامه نویسانی که قبلا با C++ کار کرده اند به راحتی می توانند Java را نیز یاد بگیرند.

4622 بازدید
ادامه
آموزش Java – مقایسه ی Java با C++
آموزش Java – مقایسه ی Java با C++

تفاوت ها و شباهت های بسیار زیادی بین زبان برنامه نویسی C++ و Java وجود دارد که در زیر به آن ها اشاره خواهیم کرد. لیستی از تفاوت های اصلی بین دو زبان مزبور را در جدول حاضر مشاهده می کنید:

6188 بازدید
ادامه
آموزش Java - نوشتن برنامه ی ساده با Java
نوشتن برنامه ی ساده با Java

در این مقاله، با گرامر و ابزار زبان Java یک برنامه ی ساده ی کاربردی خواهیم نوشت. کافی است ابزار توسعه ی اپلیکیشن جاوا یا JDK را نصب کنیم.

10545 بازدید
ادامه
آموزش جزییات کامپایل در Java
آموزش جزییات کامپایل در Java

در آموزش حاضر به شرح تفصیلی جزئیات برنامه ی ساده ی چاپ متن در خروجی Hello Java خواهیم پرداخت.

6066 بازدید
ادامه
آموزش نحوه ی تنظیم و مقداردهی متغیر path در Java
آموزش نحوه ی تنظیم و مقداردهی متغیر path در Java

اگر شما فایلی که حاوی دستورات زبان java (java source file) هست را داخل پوشه ی jdk/bin ذخیره نمایید، دیگر لازم نیست path را مقداردهی نیز کنید. در شرح علت آن باید گفت که تمامی ابزار مورد نیاز در پوشه ی جاری در دسترس شما خواهد بود.

11463 بازدید
ادامه
آموزش شرح تفاوت بین JDK، JRE و JVM در Java
آموزش شرح تفاوت بین JDK، JRE و JVM در Java

جهت توسعه و پیاده سازی اپلیکیشن های مبتنی بر Java بد نیست تفاوت بین (ابزار توسعه ی جاوا) JDK ، (محیط و بستر اجرای برنامه ی جاوا) JRE و (دستگاه مجازی جاوا) JVM را درک نمایید. در مبحث حاضر شرح مختصری از JVM یا همان دستگاه مجازی جاوا در اختیار شما قرار خواهیم داد.

10265 بازدید
ادامه
آموزش ماشین مجازی در Java
آموزش ماشین مجازی در Java

Java Virtual Machine یا به اختصار JVM یک دستگاه انتزاعی و مجرد پیاده سازی شده از روی یک دستگاه حقیقی مانند رایانه است که برنامه های نوشته شده با زبان Java را به مانند یک دستگاه واقعی اجرا می کند.

4061 بازدید
ادامه
آموزش انواع Data Type در Java
آموزش انواع Data Type در Java

متغیر یا به انگلیسی variable اسمی است که به ناحیه ای در حافظه تخصیص می یابد و نقش ظرف را برای نگهداری مقداری در حافظه ایفا می کند. در کل سه نوع متغیر در Java وجود دارد

8745 بازدید
ادامه
آموزش Unicode در Java
آموزش Unicode در Java

سیستم یونیکد یک استاندارد بین المللی کدگذاری کاراکتر است که قابلیت نمایش و ارائه ی بیشتر زبان های نوشتاری دنیا را دارا می باشد.

4343 بازدید
ادامه
آموزش Java – استفاده از monitor reentrant یا قفل های قابل استفاده ی مجدد در Java
آموزش Java – استفاده از monitor reentrant یا قفل های قابل اس ...

طبق گفته های شرکت Sun Microsystems، قفل یا monitor های جاوا reentrant هستند، بدین معنی که اگر متدی از داخل متدی دیگر که synchronized هست، فراخوانی شود، thread می تواند از همان monitor برای هر دو متد استفاده کند.

3188 بازدید
ادامه

آموزش دستور کنترل در Java

آموزش دستورات If و Else در Java
آموزش دستورات If و Else در Java

if یک دستور شرطی و کنترل روند اجرای برنامه است که به توسعه دهنده امکان می دهد تا شرط یا شروطی را بررسی کند و در صورت صحیح بودن شرط مورد نظر دستور یا عملیات خاصی را اجرا کند.

11653 بازدید
ادامه
آموزش دستور Switch در Java
آموزش دستور Switch در Java

دستور switch از میان چندین دستور آن دستوری که شرط متناظرش برقرار و صحیح باشد را اجرا می کند. ساختمان switch کاربردی مشابه if else if دارد.

8667 بازدید
ادامه
آموزش حلقه ی For در Java
آموزش حلقه ی For در Java

حلقه ی for در Java به توسعه دهنده این امکان را می دهد تا یک مجموعه دستور را تا زمانی که شرط خاصی برقرار است، به تعداد دفعات معین تکرار کند. اگر تعداد دفعات تکرار دستورات ثابت است، توصیه می شود که از حلقه ی for استفاده نمایید.

6637 بازدید
ادامه
آموزش حلقه ی While در Java
آموزش حلقه ی While در Java

حلقه ی while در Java یک مجموعه دستور را تا زمانی که شرط خاصی برقرار باشد، تکرار می نماید. چنانچه تعداد دفعات تکرار ثابت و مشخص نیست، توصیه می شود از این حلقه برای تکرار مجموعه دستور مورد نظر بهره بگیرید.

5065 بازدید
ادامه
آموزش Java – حلقه ی do-while در Java
آموزش Java – حلقه ی do-while در Java

حلقه ی do-while در Java بخشی از برنامه را به تعداد دفعات معینی تکرار می کند. اگر تعداد دفعات تکرار مجموعه دستورات ثابت و مشخص نیست و قصد دارید که حلقه را حداقل یکبار قبل از بررسی شرط، اجرا نمایید، توصیه می شود که از این حلقه استفاده کنید. با توجه به آنچه گفته شد، حلقه ی do-while حداقل یکبار اجرا می شود، خواه شرطی که در پایین آن تعریف شده صحیح باشد خواه غلط.

5026 بازدید
ادامه
آموزش Java – دستور break در Java
آموزش Java – دستور break در Java

دستور break در Java در برنامه نویسی جهت قطع روند اجرای برنامه و خروج از ساختمان حلقه یا switch بکار می رود. به عبارت دیگر این دستور سبب می شود جریان اجرای برنامه در مواجه با شرط صحیح مورد نظر که دستور break پس از آن درج شده، قطع گردد. در Java

5238 بازدید
ادامه
آموزش دستور Continue در Java
آموزش دستور Continue در Java

دستور continue در زبان Java گام جاری حلقه (از روی دستورات درج شده پس از شرط که دستور continue در صورت برقرار بودن آن اعمال می شود) را نادیده گرفته و سپس دستورات را از بالای ساختمان حلقه از سر می گیرد. در صورت استفاده از continue در حلقه های تودرتو، دستور مزبور تنها داخل حلقه ی داخلی اعمال می شود.

4491 بازدید
ادامه
آموزش Comment در Java
آموزش Comment در Java

Comment ها در Java یا هر زبان برنامه نویسی دیگر، دستوراتی هستند که به منظور درج توضیحات درباره ی کد مربوط استفاده شده و کامپایلر یا مفسر آن ها را به عنوان جزئی از برنامه اجرا نمی کند. به عبارت دیگر توسعه دهنده می تواند با بکارگیری comment در کد برنامه ی خود درباره ی اجزا و کامپوننت های مختلف اپلیکیشن نظیر متغیر، متد، کلاس یا هر دستور دیگری توضیحات کاربردی ارائه دهد.

4611 بازدید
ادامه
آموزش پیاده سازی برنامه های مختلف با زبان Java
آموزش پیاده سازی برنامه های مختلف با زبان Java

در آموزش حاضر چندین برنامه ی ساده را با استفاده از زبان برنامه نویسی Java پیاده سازی خواهیم کرد.

6567 بازدید
ادامه

آموزش ارث بری در Java

آموزش وراثت در Java
آموزش Java – وراثت/Inheritance

وراثت در جاوا مکانیزمی است که توسط آن آبجکتی تمامی ویژگی (property) و قابلیت ها (behavior) آبجکت پدر را کسب کرده و در اصطلاح به ارث می برد.

11616 بازدید
ادامه
آموزش  Aggregation در Java
آموزش Aggregation در Java

زمانی که یک کلاس جاوایی حاوی اشاره گری به کلاس دیگری باشد (entity reference یا آبجکت از جنس کلا دیگر)، این امر تحت عنوان Aggregation یا رابطه ی یک طرفه ی Has-A شناخته می شود. در Java

7444 بازدید
ادامه

آموزش کلاس های انتزاعی در Java

آموزش کلاس های انتزاعی در Java
آموزش Java - کلاس های انتزاعی در Java

یک کلاس که با کلیدواژه ی abstract اعلان شده باشد، به عنوان کلاس abstract/انتزاعی شناخته می شود. کلاس abstract می تواند متدهای abstract یا بدون بدنه و متدهای با بدنه (nonabstract) داشته باشد. پیش از پرداختن به کلاس های abstract در Java، لازم است با مفهوم abstraction آشنا شویم.

10898 بازدید
ادامه
آموزش کار با interface در Java
آموزش کار با interface در Java

interface در جاوا مانند یک الگو یا نقشه برای کلاس می باشد. این ساختار دارای ثوابت static و متدهای بدون بدنه (abstract) می باشد. به عبارت دیگر interface مکانیزمی برای پیاده سازی مفهوم انتزاع (abstraction) در برنامه نویسی می باشد. لازم به ذکر است که داخل interface توسعه دهنده می تواند فقط متدهای abstract و بدون بدنه تعریف کند. آموزش کار با interface در Java

14957 بازدید
ادامه
آموزش  تفاوت interface با کلاس abstract در Java
آموزش تفاوت interface با کلاس abstract در Java

کلاس abstract و interface هر دو برای پیاده سازی مفهوم انتزاع/abstraction در برنامه نویسی بکار می روند که می توانید در بدنه ی آن ها متدهای abstract (بدون بدنه و پیاده سازی) را تعریف کنید. کلاس abstract و interface هر دو غیر قابل نمونه سازی هستند و به عبارت ساده تر نمی توان مانند کلاس از روی آن ها آّبجکت ساخت.آموزش تفاوت interface با کلاس abstract در Java

11510 بازدید
ادامه

آموزش کلاس اشیا در Java

آموزش مفاهیم شی گرایی در Java
آموزش مفاهیم شی گرایی در Java

در این مبحث، مفاهیم و مبانی OOP را فراخواهیم گرفت. برنامه نویسی شی گرا یک الگو یا تکنیک برنامه نویسی است که مفاهیمی نظیر وراثت (inheritance)، اتصال داده ها (data binding)، چندریختی (polymorphism) و غیره .. را معرفی کرده و بکار می گیرد. آموزش مفاهیم شی گرایی در Java

18470 بازدید
ادامه
آموزش قوانین نام گذاری در شی گرایی در Java
آموزش Java – قوانین نام گذاری در شی گرایی (naming convention ...

اسم تمامی کلاس ها، interface ها، package ها، متدها و فیلدهای کلاس با توجه به این قوانین قراردادی زبان Java نام گذاری می شوند.

6372 بازدید
ادامه
آموزش آبجکت و کلاس در Java
آموزش آبجکت و کلاس در Java

در آموزش حاضر، درباره ی آبجکت و کلاس بحث خواهیم کرد. در تکنیک برنامه نویسی شی گرا، توسعه دهنده ی نرم افزار اپلیکیشن خود را به وسیله ی مجموعه ای از آبجکت ها و کلاس ها طراحی و پیاده سازی می کند.آموزش آبجکت و کلاس در Java

23635 بازدید
ادامه
آموزش تابع سازنده یا Constructor در Java
آموزش تابع سازنده یا Constructor در Java

Constructor یا تابع سازنده در زبان Java یک متد خاص است که برای مقداردهی اولیه ی فیلدهای کلاس و پرکردن آّبجکت با داده بکار می رود.

18616 بازدید
ادامه
آموزش کاربرد کلیدواژه ی Static در Java
آموزش کاربرد کلیدواژه ی Static در Java

کلیدواژه ی static در زبان Java غالبا برای مدیریت حافظه بکار می رود. می توان این کلیدواژه را به متغیر، متد، قطعه کد و کلاس های تودرتو (کلاس هایی که داخل کلاس دیگری تعریف شده اند) اعمال کرد. کلیدواژه ی نام برده به خود کلاس (برای مثال متغیر موجود در کلاس کلی) اعمال می شود نه نمونه یا نمونه هایی که از روی کلاس مورد نظر ساخته شده اند.

21813 بازدید
ادامه
آموزش کاربرد کلیدواژه ی this در Java
آموزش کاربرد کلیدواژه ی this در Java

کلیدواژه ی this کاربردهای مختلفی در زبان دارد. در Java، کلیدواژه ی this به آبجکت جاری (آبجکتی که در آن هستیم) اشاره دارد.

9706 بازدید
ادامه

آموزش چند ریختی (Polymorphism) در Java

آموزش method overloading در Java
آموزش method overloading در Java

زمانی که کلاسی چندین متد همنام با پارامترهای مختلف دارد، در اصطلاح برنامه نویسی شی گرا به آن method overloading می گویند. در برنامه ای که توسعه دهنده مجبور است به اجرای تنها یک عملیات است، داشتن چندین متد همنام می تواند در افزایش خوانایی کد اپلیکیشن نقش اساسی ایفا کند.آموزش method overloading در Java

9060 بازدید
ادامه
آموزش Java – بازنویسی متد در Java/method overriding
آموزش Java – بازنویسی متد در Java/method overriding

زمانی که متدی در کلاس فرزند (subclass) با متدی از کلاس پدر (parent class) هم نام باشد، اما پیاده سازی اختصاصی خود از آن متد را در بدنه ارائه دهد، به آن بازنویسی بدنه یا پیاده سازی متد (method overriding) می گویند.

4163 بازدید
ادامه
آموزش نوع خروجی Covariant در Java
آموزش نوع خروجی Covariant در Java

نوع خروجی covariant بدین معنی است که اگر توسعه دهنده بدنه ی متدی از کلاس پدر را در کلاس فرزند بازنویسی کرد،

3592 بازدید
ادامه
آموزش Java – کاربرد کلیدواژه ی super در Java
آموزش Java – کاربرد کلیدواژه ی super در Java

کلیدواژه ی super در Java یک متغیر یا آبجکت اشاره گر (reference variable) به نمونه ای از نزدیک ترین کلاس پدر می باشد. هر زمان که توسعه دهنده نمونه ی کلاس فرزند را ایجاد می کند، همزمان یک نمونه از کلاس پدر نیز به صورت ضمنی و غیر مستقیم در حافظه ایجاد می گردد. در Java برای اشاره به این نمونه ی ساخته شده از کلاس پدر از کلیدواژه ی super استفاده می شود.

7625 بازدید
ادامه
آموزش Java –کار با Instance initializer block  در Java
آموزش Java –کار با Instance initializer block در Java

instance initializer block برای مقداردهی اولیه ی اعضای داده ای و فیلدهای کلاس (instance member ها) بکار می رود. این قطعه کد هر بار که یک نمونه از روی کلاس ساخته می شود، اجرا می گردد.

4387 بازدید
ادامه
آموزش Java – کاربرد کلیدواژه ی final در Java
آموزش Java – کاربرد کلیدواژه ی final در Java

کلیدواژه ی final در زبان جاوا اگر همراه متغیر بکار رود، یعنی مقدار اولیه ی آن متغیر نهایی و ثابت بوده و دیگر تغییر نخواهد کرد، اگر در خط تعریف متد قید شود، بدین معنی است که آن متد قابل بازنویسی (override) و ویرایش در کلاس فرزند نخواهد بود و رفتار متد برای همیشه ثابت می باشد.

7787 بازدید
ادامه
آموزش Java – Polymorphism یا چندریختی در Java
آموزش Java – Polymorphism یا چندریختی در Java

آموزش Java – Polymorphism یا چندریختی در Java

14001 بازدید
ادامه
آموزش Java – (اتصال دیرهنگام یا زمان اجرای کد) Dynamic binding در Java
آموزش Java – (اتصال دیرهنگام یا زمان اجرای کد) Dynamic bindi ...

در این مبحث به شرح static binding و dynamic binding که تشخیص، فراخوانی و اتصال کد مربوطه در زمان کامپایل (زودهنگام) و اجرا (دیرهنگام) هست، خواهیم پرداخت.

5842 بازدید
ادامه
آموزش Java – عملگر instanceof در Java
آموزش Java – عملگر instanceof در Java

توسعه دهنده می تواند با بهره گیری از instanceof بررسی کند آیا آبجکت مورد نظر نمونه ای از نوع مشخص است یا خیر (کلاس یا کلاس فرزند (subclass) و یا interface).آموزش Java

5366 بازدید
ادامه

آموزش کپسوله سازی در Java

آموزش Java – مفهوم Package در Java
آموزش Java – مفهوم Package در Java

package یک گروه از کلاس هایی با کاربرد مشابه، interface ها و sub-package ها است. به عبارت دیگر به وسیله ی package می توان کلاس ها را رده بندی و سازمان دهی کرد. در Java پکیج به دو دسته تقسیم می شود،

9641 بازدید
ادامه
آموزش Java – Access modifier ها یا تنظیم کنندگان سطح دسترسی در Java
آموزش Java – Access modifier ها یا تنظیم کنندگان سطح دسترسی ...

در جاوا دو نوع modifier یا تعریف کننده وجود دارد: access modifier ها که تنظیم کنندگان سطح دسترسی هستند و non-access modifier.Java

6986 بازدید
ادامه
آموزش Java – کپسوله سازی/Encapsulation در Java
آموزش Java – کپسوله سازی/Encapsulation در Java

Encapsulation عبارت است از کپسوله سازی کد (منطق، رفتار و عملیات قابل اجرا توسط آبجکت) و داده ها (اطلاعات موجود در خود) با هم در قالب یک واحد همچون یک کپسول که داروهای مختلف را به صورت ترکیبی در کنار هم شامل می شود. کپسوله سازی یکی از ارکان برنامه نویسی شی گرا است که طی آن توسعه دهنده دسترسی به برخی از اعضای کلاس از بیرون را آن طور و به آن اندازه که می خواهد تنظیم و مدیریت می کند.

6345 بازدید
ادامه

آموزش آرایه در Java

آموزش Java – آرایه در Java
آموزش Java – آرایه در Java

آرایه در Java یک آبجکت است که المان هایی با نوع مشابه را دربرمی گیرد. به عبارت دقیق تر، آرایه یک ساختار داده ای است که در آن المان های مشابه و هم نوع را ذخیره می کنیم. لازم به ذکر است در آرایه ی Java تنها می توان مجموعه ثابتی از المان های هم نوع را نگهداری کرد بدین معنی که تعداد المان ها یا طول آرایه همان اول مشخص شده و در زمان اجرای برنامه دیگر قابل تغییر نخواهد بود.

18302 بازدید
ادامه

آموزش شی گرایی در Java

آموزش Java – کلاس Object در Java
آموزش Java – کلاس Object در Java

کلاس Object کلاس پدر تمامی کلاس ها در جاوا می باشد. به عبارت دیگر، بالاترین کلاس در سلسله مراتب وراثت کلاس Object است که تمامی کلاس های جاوا از آن مشتق می شوند.آموزش Java – کلاس Object در Java

7235 بازدید
ادامه
آموزش Java – clone کردن یک آبجکت یا ساخت نمونه ی عینی از آبجکت
آموزش Java – clone کردن یک آبجکت یا ساخت نمونه ی عینی از آبج ...

عبارت object cloning در برنامه نویسی به معنای ساخت یک نمونه ی عینی از روی آبجکت مورد نظر می باشد. در Java برای دستیابی به این هدف باید متد clone() از کلاس پایه ی Object فراخوانی شود.

6361 بازدید
ادامه
آموزش Java – کار با کلاس Wrapper در Java
آموزش Java – کار با کلاس Wrapper در Java

کلاس Wrapper در جاوا این امکان را به شما می دهد تا نوع آبجکت را به انواع داده ای اولیه (primitive) و انواع داده ای اولیه را به آبجکت تبدیل نمایید. نمونه هایی که از کلاس مزبور ساخته می شوند می توانند مقادیر از نوع داده ای مورد نظر را در خود کپسوله نمایند به همین علت بایستی به تابع سازنده ی (constructor) آن نوع صحیح را ارسال کنید.

6740 بازدید
ادامه
آموزش Java – توابع بازگشتی (Recursion) در Java
آموزش Java – توابع بازگشتی (Recursion) در Java

Recursion یا الگوریتم بازگشتی زمانی اتفاق می افتد که یک متد خود را به کرات صدا بزند. به متدی که خود را فراخوانی می کند، در اصطلاح تابع recursive یا بازگشتی گویند.

9422 بازدید
ادامه
آموزش Java – فراخوانی تابع به روش call by value و فراخوانی تابع به وسیله ی call by reference در Java
آموزش Java – فراخوانی تابع به روش call by value و فراخوانی ت ...

در Java آرگومان ها به صورت پیش فرض به روش (ارسال کپی از مقدار به عنوان آرگومان) call by value به تابع ارسال می شوند نه با call by reference که طی آن آدرس متغیر در حافظه ی heap به عنوان آرگومان به تابع فرستاده می شود و تغییر در مقدار آرگومان تغییر در مقدار اصلی متغیر را به دنبال دارد. در روش call by value که صرفا کپی از مقدار متغیر به عنوان آرگومان به تابع فرستاده می شود،

7399 بازدید
ادامه
آموزش Java – کار با کلیدواژه ی strictfp در Java
آموزش Java – کار با کلیدواژه ی strictfp در Java

توسعه دهنده می تواند با استفاده از کلیدواژه ی strictfp مطمئن شود هر گونه عملیاتی که بر روی مقدار متغیر از نوع ممیز شناور (floating-point) انجام می شود، در تمامی بسترهای اجرا (platform) نتیجه ی یکسان را برمی گرداند. در واقع دقت و تعداد اعداد (precision) در مقادیر خروجی ممیز شناور ممکن است در بسترهای (platform) مختلف متفاوت باشد.

3056 بازدید
ادامه
آموزش Java – تعریف Documentation API (توابع مستندسازی) و استفاده از ابزار javadoc در  Java
آموزش Java – تعریف Documentation API (توابع مستندسازی) و است ...

می توان به کمک ابزار javadoc توابعی کتابخانه ای جهت مستندنویسی و توضیح کدبرنامه ی خود تعریف کرد. برای توضیح کد خود در فایل های جاوا کافی است متن توضیح کد را داخل کاراکترهای /**... */ قرار دهید. با این روش می توانید به راحتی برای کامپوننت های مختلف کد و برنامه ی خود نظیر کلاس، متد، constructor (تابع سازنده)، فیلدها و متغیرها را کامنت درج نمایید.

3531 بازدید
ادامه
آموزش Java – ارسال پارامتر از خط فرمان (command line arguments) به برنامه در Java
آموزش Java – ارسال پارامتر از خط فرمان (command line argumen ...

آرگومان های خط فرمان، آرگومان هایی هستند که توسعه دهنده آن ها را از پنجره ی فرمان (cmd) به تابع main جاوا(Java) ارسال کرده و این پارامتر ها در زمان اجرای برنامه ی java در پارامترهای ورودی تابع مزبور،(String args[])، می شوند.

4838 بازدید
ادامه
آموزش Java – شرح تفاوت بین کلاس و آبجکت در Java
آموزش Java – شرح تفاوت بین کلاس و آبجکت در Java

تفاوت های زیادی بین آبجکت و کلاس در Java وجود دارد که در این بخش از آموزش Java به آن ها اشاره می کنیم.

5097 بازدید
ادامه
آموزش java – شرح تفاوت بین overloading و overriding در Java
آموزش java – شرح تفاوت بین overloading و overriding در Java

تفاوت های زیادی بین (بازنویسی بدنه ی متد در کلاس فرزند) method overriding و (فراخوانی متدی با نام یکسان اما هر بار با پارامترهای مختلف) method overloading در Java وجود دارد که در جدول زیر آن ها را برای شما لیست می کنیم.

6638 بازدید
ادامه

آموزش توابع رشته ای (String) در Java

آموزش Java – String در Java
آموزش Java – String در Java

در جاوا، String دنباله ای از کاراکترها (char value) است. آرایه ای از کاراکترها را نیز می توان یک رشته ی java در نظر گرفت و تقریبا عملکردی مشابه را ایفا می کند.

15075 بازدید
ادامه

آموزش متدهای رشته ای(String Method) در Java

آموزش Java – کار با تابع ()charAt در Java
آموزش Java – کار با تابع ()charAt در Java

در Java متد String charAt() مقدار char یا کاراکتر مورد نظر موجود در اندیس (شماره ی مکان قرار گیری) ورودی را برمی گرداند. اندیس از 0 آغاز می شود. اگر شماره ی اندیس از بازه ی اندیس و طول رشته ی ورودی بزرگتر باشد یا مقدار آن منفی باشد، خطای StringIndexOutOfBoundsException را بجای خروجی برمی گرداند.

5303 بازدید
ادامه
آموزش Java – کار با متدJava string ()length
آموزش Java – کار با متدJava string ()length

متد java string length() تعداد کل کاراکترهای موجود در رشته که همان طول رشته تلقی می شود را برمی گرداند. طول رشته ی java معادل همان واحد کدی (code unit) Unicode رشته می باشد.

3735 بازدید
ادامه
آموزش Java – کار با متد java string format()
آموزش Java – کار با متد java string format()

متد java string format() رشته ی ورودی را بر اساس زبان محلی که توسط پارامتر Locale مشخص می شود و همچنین بر اساس فرمت و آرگومان های ارسال شده، فرمت بندی کرده و در خروجی برمی گرداند.

4891 بازدید
ادامه
آموزش Java – کار با تابع substring() در Java
آموزش Java – کار با تابع substring() در Java

متد string substring() در Java بخشی از یک رشته (که در اصطلاح به آن substring گفته می شود) را استخراج کرده و به عنوان خروجی برمی گرداند.

2639 بازدید
ادامه
آموزش Java – کار با متد String contains()
آموزش Java – کار با متد String contains()

متد string contains() در Java بررسی می کند آیا دنباله ی کاراکترها که به عنوان پارامتر به متد ارسال می شود، در رشته ی مورد نظر وجود دارد یا خیر. اگر کاراکترهای مورد نظر در این رشته موجود باشد، مقدار true و در غیر این صورت false را بازگردانی می کند.

5807 بازدید
ادامه
آموزش Java – کار با تابع string join در Java
آموزش Java – کار با تابع string join()

متد string join() در Java رشته ی ورودی (المان هایی از جنس رشته) را با کاراکتر تفکیک کننده ی مورد نظر (پارامتر delimiter) به هم متصل کرده و در خروجی آن رشته را بازمی گرداند. در این متد، تفکیک کننده به ازای هر المان کپی می شود.

2949 بازدید
ادامه
آموزش Java – کار با تابع equals در Java
آموزش Java – کار با تابع equals در Java

متد string equals() دو رشته از جنس آبجکت را بر اساس محتوا بایکدیگر مقایسه می نماید. اگر حتی یک کاراکتر از رشته ی مورد نظر با کاراکتر موجود در رشته ی ورودی منطبق نباشد، مقدار بولی false را برمی گرداند. اگر تمامی کاراکترهای دو رشته با هم منطبق باشند، مقدار true را برمی گرداند.

4782 بازدید
ادامه
آموزش Java – کار با تابع isEmpty در Java
آموزش Java – کار با تابع isEmpty در Java

متد java string isEmpty() بررسی می کند آیا رشته ی ورودی خالی از محتوا است یا خیر. چنانچه طول رشته (تعداد کاراکترهای داخل آن) برابر 0 باشد، مقدار true و در غیر این صورت false را برمی گرداند.

3010 بازدید
ادامه
آموزش Java – کار با تابع concat در Java
آموزش Java – کار با تابع concat در Java

متد java string concat() رشته ی ارسال شده به عنوان آرگومان را به انتهای رشته ی مورد نظر الصاق می کند. خروجی این متد ترکیب محتوای رشته ی مورد نظر (آبجکت از جنس کلاس string) و رشته ی ورودی می باشد. به عبارت دیگر این متد یک رشته را به انتهای رشته ی دیگر الصاق می کند.

3947 بازدید
ادامه
آموزش Java - کار با تابع replace در Java
آموزش Java – کار با تابع replace در Java

متد replace() تمامی کاراکترهای جدید (محتوای رشته ی ارسال شده به عنوان پارامتر) را جایگزین کاراکترهای قدیمی در رشته ی مورد نظر کرده و رشته ی ویرایش شده را در خروجی برمی گرداند.

4042 بازدید
ادامه
آموزش Java - کار با تابع equalsIgnoreCase() در Java
آموزش Java - کار با تابع equalsIgnoreCase() در Java

متد String equalsIgnoreCase در Java محتوای دو رشته را صرف نظر از کوچک و بزرگی حروف، با یکدیگر مقایسه می کند. این متد عملکردی مشابه equals() دارد با این تفاوت که نسبت به کوچک و بزرگی حروف حساس نیست. در صورتی که حتی یک کاراکتر با کاراکتر موجود رشته ی اصلی مطابقت نداشته باشد، مقدار false را برمی گرداند و در غیر این صورت true را بازگردانی می کند.

3819 بازدید
ادامه
آموزش Java - کار با تابع split() در Java
آموزش Java - کار با تابع split() در Java

متد split() در Java رشته ی مورد نظر بر اساس عبارت باقاعده (پارامتر regex) یا الگوی ارسال شده به عنوان آرگومان به رشته های کوچکتر یا به عبارتی آرایه ای از رشته ها تبدیل می کند و آن را در خروجی برمی گرداند (یک آرایه از رشته ها باز می گرداند).

9349 بازدید
ادامه
آموزش Java – متد string startsWith() در Java
آموزش Java – متد string startsWith() در Java

متد java string startsWith() بررسی می کند آیا رشته (محتوای آبجکت از جنس کلاس String برای مثال s1) با پیشوند ارسال شده به عنوان آرگومان (دنباله ای از کاراکترها) آغاز می شود یا خیر. اگر رشته با مقدار پارامتر prefix آغاز شود، true را برمی گرداند و در غیر این صورت false را بازمی گرداند.

2896 بازدید
ادامه
آموزش Java - کار با تابع substring در Java
آموزش Java - کار با تابع substring در Java

متد string substring() بخشی از کل یک رشته را (از اندیس شروع تا اندیس پایان) استخراج کرده و در خروجی برمی گرداند.

5121 بازدید
ادامه
آموزش Java – کار با متد toCharArray() در Java
آموزش Java – کار با متد toCharArray() در Java

متد toCharArray() در Java رشته ی ورودی را به آرایه ای از کاراکترهای تبدیل می کند. این متد در خروجی یک آرایه از کاراکترها را می سازد که طول و تعداد کاراکترهای موجود در آن برابر رشته ی اصلی بوده و محتوای آن با کاراکترهای همان رشته ی اصلی پر (مقداردهی اولیه) می شوند.

2962 بازدید
ادامه
آموزش Java – کار با تابع toLowerCase() در Java
آموزش Java – کار با تابع toLowerCase() در Java

متد toLowerCase() در Java کاراکترهای رشته ی ورودی را به حروف کوچک تبدیل می کند. به عبارت دیگر، این تابع تمامی کاراکترهای رشته را از حروف بزرگ به کوچک تبدیل می کند.

3161 بازدید
ادامه
آموزش Java – کار با تابع toUpperCase() در Java
آموزش Java – کار با تابع toUpperCase() در Java

متد toUpperCase() در Java کاراکترهای رشته ی ورودی را به حروف بزرگ تبدیل می کند.

3361 بازدید
ادامه
آموزش Java – کار با تابع trim() در Java
آموزش Java – کار با تابع trim() در Java

متد trim() کاراکترهای space (فاصله) را از ابتدا و انتهای رشته ی مورد نظر حذف می کند. مقدار Unicode کاراکتر space معادل '\u0020' می باشد. متد trim() در جاوا بررسی می کند آیا مقدار مزبور قبل و بعد از رشته ی مورد نظر وجود دارد یا خیر. در صورت مواجه شدن با این مقدار، space را از دو طرف رشته حذف کرده و رشته ی ویرایش شده را به عنوان خروجی برمی گرداند.

5234 بازدید
ادامه
آموزش Java – کار با متد valueOf() در Java
آموزش Java – کار با متد valueOf() در Java

متد valueOf() در Java انواع داده ای که به عنوان آرگومان به تابع فرستاده شده اند را به رشته تبدیل می کند. به کمک این متد توسعه دهنده می تواند نوع int، long، boolean، character، float، double، object و char array را به رشته تبدیل کند.

4339 بازدید
ادامه

آموزش عبارات با قاعده(Regular Experation) در Java

آموزش Java – کار با Regex یا عبارات باقاعده در Java
آموزش Java – کار با Regex یا عبارات باقاعده در Java

Java Regex یا عبارات باقاعده یک سری توابع کتابخانه ای/API در جاوا هستند که توسعه دهنده به کمک آن ها می تواند الگوهایی تعریف کرده و بر اساس آن عبارت مورد نظر را در رشته جستجو و پس از یافتن ،ویرایش (جایگزین) نماید. به طور کلی Regular expression عبارت است از تعدادی روش و قانون که برای بررسی وجود یک عبارت (دنباله ای از مقادیر متنی، عددی و ...)، استخراج و جایگزینی آن در بستر بکار می رود.

10991 بازدید
ادامه

آموزش مدیریت خطا (Exception Handling) در Java

آموزش Java – مدیریت خطا/Exception Handling در Java
آموزش Java – مدیریت خطا/Exception Handling در Java

مدیریت خطا/Exception Handling در Java یکی از مکانیزم های کارا جهت مدیریت خطاهای زمان اجرا است تا جریان اجرای برنامه قطع نشده و روند عادی برنامه دچار اخلال نشود.

8749 بازدید
ادامه
آموزش Java – کار با دستورهای try-catch در Java
آموزش Java – کار با دستورهای try-catch در Java

در Java داخل بدنه ی try کدی که ممکن است سبب رخداد خطا شود را قرار می دهند. بعد از قطعه کد try حتما باید یا دستور catch و یا finally استفاده شود. کدی که ممکن است اجرای آن منجر به خطا شود، بایستی داخل قطعه کد try قرار داده شده و در واقع در این قسمت از برنامه امتحان شود تا امکان اجرای موفقیت آمیز آن مشخص گردد

8122 بازدید
ادامه
آموزش Java – مدیریت چندین خطا به طور همزمان با قطعه کدهای catch در Java
آموزش Java – مدیریت چندین خطا به طور همزمان با قطعه کدهای ca ...

در شرایطی که لازم است در صورت رخداد خطاهای متفاوت، جهت مدیریت هریک عملیات متفاوتی در Java را اجرا کنید، می توانید پس از بدنه ی دستور try خود از چندین قطعه کد catch استفاده نمایید.

3372 بازدید
ادامه
آموزش Java – دستورات try تودرتو در Java
آموزش Java – دستورات try تودرتو در Java

می توان یک قطعه کد try را در Java در بدنه ی قطعه کد try دیگر گنجاند که در اصطلاح به آن دستورات try تودرتو/nested گفته می شود

3391 بازدید
ادامه
آموزش Java – کار با دستور finally در Java
آموزش Java – کار با دستور finally در Java

قطعه کد finally در Java میزبان کدهایی است که اجرای آن ها بسیار مهم است نظیر بستن connection به دیتابیس یا متوقف کردن stream از بایت ها و غیره ... . دستور finally صرف نظر این که خطایی در برنامه رخ داده و مدیریت می شود یا خیر، اجرا خواهد شد و به عبارت دیگر فراخوانی آن قطعی است. finally همیشه پس از try یا catch استفاده می شود.

4205 بازدید
ادامه
آموزش Java – کار با دستور throw در Java
آموزش Java – کار با دستور throw در Java

کلیدواژه ی throw در Java زمانی استفاده می شود که توسعه دهنده بخواهد یک خطا را به صورت صریح صادر (throw) کرده و از وقوع رخداد خاصی اطلاع رسانی کند.

6071 بازدید
ادامه
آموزش Java – Exception propagation در Java
آموزش Java – Exception propagation در Java

در Java برنامه، هنگامی که خطایی رخ می دهد، آن خطا ابتدا در بالای stack صادر (throw) می شود و اگر مدیریت نشود، به متد قبلی پاس داده می شود و چنانچه آنجا هم مدیریت نشود، باز خطای مورد نظر به متد پایینی stack محول می شود. این روال ادامه می یابد تا اینکه یا خطا مدیریت شود و یا به انتهای stack برسد. از این رویداد تحت عنوان exception propagation یاد می شود.

3690 بازدید
ادامه
آموزش Java – دستور throws در Java
آموزش Java – دستور throws در Java

کلیدواژه ی throws در Java برای اعلان خطا بکار می رود. این دستور به برنامه نویس اعلان می کند که ممکن است خطایی رخ دهد به همین دلیل بهتر است کد مدیریت خطا را داخل برنامه جاسازی کند تا روند اجرای برنامه دچار اخلال نشود. به عبارت دیگر زمانی که در یک متد خطا رخ می دهد و توسعه دهنده از throws استفاده می کند، بدین معنی است که مدیریت exception به فراخواننده ی متد واگذار می شود.

7566 بازدید
ادامه
آموزش Java – شرح تفاوت بین throws و throw در Java
آموزش Java – شرح تفاوت بین throws و throw در Java

در این آموزش Java با تفاوت های بین throws و throw آشنا می شویم

4292 بازدید
ادامه
آموزش Java – شرح تفاوت بین final، finally و  finalize در Java
آموزش Java – شرح تفاوت بین final، finally و finalize در Jav ...

تفاوت های بسیاری بین final، finally و finalize در Java وجود دارد. در زیر لیست تفاوت ها بین این سه دستور را مشاهده می کنید:

4890 بازدید
ادامه
آموزش Java – مدیریت خطاها با method overriding در Java
آموزش Java – مدیریت خطاها با method overriding در Java

اگر بخواهید از (بازنویسی متد کلاس پدر در سطح کلاس فرزند) method overriding در Java برای مدیریت خطاها استفاده کنید، قواعد و نکات متعددی وجود دارد که باید آن ها را رعایت نمایید.

2913 بازدید
ادامه
آموزش Java – تعریف خطاهای اختصاصی (custom exception) Java
آموزش Java – تعریف خطاهای اختصاصی (custom exception) Java

چنانچه توسعه دهنده خود خطایی را تعریف کند از آن تحت عنوان خطای اختصاصی (custom exception) یا خطای کاربر (user-defined) در Java یاد می شود. این نوع خطاها جهت تنظیم اختصاصی exception با توجه به نیاز کاربر مورد استفاده قرار می گیرد.

3088 بازدید
ادامه

آموزش کلاس های داخلی(Inner Calsses) در Java

آموزش Java – کلاس های تودرتو/inner class در Java
آموزش Java – کلاس های تودرتو/inner class در Java

کلاس های تودرتو (nested class) یا داخلی (inner class) در Java کلاس هایی هستند که خود داخل یک interface یا کلاس دیگر تعریف شده باشند.

5745 بازدید
ادامه
آموزش Java – member inner class/کلاس تعریف شده در سطح کلاس دیگر در Java
آموزش Java – member inner class/کلاس تعریف شده در سطح کلاس د ...

به کلاس غیر static در Java که در سطح کلاس دیگر اما خارج از بدنه ی متد عضو آن تعریف شده باشد در اصطلاح member inner class گویند.

2865 بازدید
ادامه
آموزش Java – کلاس های تودرتو فاقد نام /anonymous inner class در Java
آموزش Java – کلاس های تودرتو فاقد نام /anonymous inner class ...

یک کلاس که داخل کلاس دیگر تعریف شده و فاقد نام باشد (اسم آن توسط کامپایلر تشخیص داده شده و انتخاب شود) در (Java) جاوا anonymous inner class خوانده می شود. از این نوع کلاس تودرتو بایستی برای بازنویسی (override) متد کلاس پدر یا interface در سطح کلاس دیگر استفاده شود.

4809 بازدید
ادامه
آموزش Java – کلاس تودرتو محلی/Local inner class در Java
آموزش Java – کلاس تودرتو محلی/Local inner class در Java

کلاسی که در Java در سطح کلاس دیگر و داخل بدنه ی یکی از متدهای آن تعریف شده باشد، در اصطلاح کلاس تودرتو محلی/inner local class خوانده می شود.

2954 بازدید
ادامه
آموزش Java – کلاس تودرتو static /static nested class در Java
آموزش Java – کلاس تودرتو static /static nested class در Java

یک کلاس static که در سطح کلاس دیگری تعریف شده باشد در جاوا (Java) تحت عنوان static nested class خوانده می شود. این نوع کلاس نمی تواند به فیلدها و متدهای غیر static دسترسی داشته باشد. به منظور دسترسی به این کلاس لازم است اسم کلاس میزبان (outer class) ذکر شود.

3723 بازدید
ادامه
آموزش Java – nested interface/اینترفیس تودرتو در Java
آموزش Java – nested interface/اینترفیس تودرتو در Java

interface ای که در Java در سطح interface یا کلاس دیگری تعریف شده باشد تحت عنوان nested interface خوانده می شود.

2436 بازدید
ادامه

آموزش چند رشته ای (Multi Threading) در Java

آموزش Java – پردازش موازی/Multithreading در  Java
آموزش Java – پردازش موازی/Multithreading در Java

Multithreading (تقسیم برنامه به پردازش های موازی مجزا) در Java فرایندی است که طی آن چند thread به صورت مجزا اما همزمان اجرا می شوند.

3263 بازدید
ادامه
آموزش Java – چرخه ی حیات thread در Java
آموزش Java – چرخه ی حیات thread در Java

یک thread در Java آن واحد می تواند در یکی از 5 وضعیت (state) مختلف قرار داشته باشد. با توجه به گفته های شرکت Sun، تنها 4 وضعیت مختلف برای چرخه ی حیات thread در جاوا وجود دارد که عبارتند از: new، runnable، non-runnable و terminated. در جاوا وضعیتی به نام running برای thread وجود ندارد.

3107 بازدید
ادامه
آموزش Java – ایجاد Thread در Java
آموزش Java – ایجاد Thread در Java

کلاس Thread توابع سازنده (Constructor) و متدهایی را در اختیار توسعه دهنده قرار می دهد که به واسطه ی آن ها می توان thread ایجاد کرده و عملیاتی را بر روی آن thread اجرا کرد. کلاس Thread از کلاس پایه ی Object ارث بری داشته و interface ای به نام Runnable را پیاده سازی می کند.

8127 بازدید
ادامه
آموزش Java – Thread Scheduler در Java
آموزش Java – Thread Scheduler در Java

Thread scheduler در Java بخشی از JVM است که مدیریت زمان بندی و اجرای thread ها (بر اساس مقدار priority و اولویت) را برعهده دارد.

2971 بازدید
ادامه
آموزش Java – کار با متد sleep() در پردازش موازی Java
آموزش Java – کار با متد sleep() در پردازش موازی Java

زمانی که متد sleep() از کلاس Thread فراخوانی می شود، thread مورد نظر به مدت زمان مشخصی اجرا را متوقف می نماید. در Java

4025 بازدید
ادامه
آموزش Java – آیا می توان یک Thread را دوبار راه اندازی کرد
آموزش Java – آیا می توان یک Thread را دوبار راه اندازی کرد

در پاسخ باید گفت که نه. پس از اینکه یک thread راه اندازی شد، دیگر امکان راه اندازی مجددا آن وجود ندارد و در صورت اقدام به این کار، خطای IllegalThreadStateException رخ می دهد. در Java

2493 بازدید
ادامه
آموزش Java – فراخوانی متد run()
آموزش Java – فراخوانی متد run()

آیا می توان در Java به طور مستقیم بجای start()، متد run() را صدا زد؟

3384 بازدید
ادامه
آموزش Java – کار با متد join() در پردازش موازی
آموزش Java – کار با متد join() در پردازش موازی

متد join() منتظر می ماند تا thread جاری عملیات خود را تکمیل کند، سپس به thread بعدی اجازه ی اجرا می دهد. به عبارت دیگر، مقدار زمان مشخصی صبر می کند تا thread ای که بر روی آن فراخوانی شده کار خود را به پایان برساند و از حافظه حذف شود سپس به thread بعدی امکان اجرا می دهد.

3640 بازدید
ادامه
آموزش Java – نام گذاری و بازیابی نام thread در پردازش موازی در Java
آموزش Java – نام گذاری و بازیابی نام thread در پردازش موازی ...

کلاس Thread تعدادی در Java متد برای تغییر و بازیابی اسم آبجکت thread در اختیار توسعه دهنده قرار می دهد. به صورت پیش فرض، هر thread یک اسم اختصاصی مانند thread-0، thread-1 و غیره ... دارد. به منظور تنظیم اسم thread می توان از متد setName و جهت بازیابی اسم thread مورد نظر می توان از getName استفاده کرد.

2378 بازدید
ادامه
آموزش Java – اولویت اجرا و priority آبجکت های thread در Java
آموزش Java – اولویت اجرا و priority آبجکت های thread در Java

تمامی thread ها در Java دارای یک اولویت اجرا و priority هستند. مقدار priority با یک عدد صحیح بین 1 تا 10 نمایش داده می شود (5 اولویت پیش فرض thread ها می باشد و مقدار 10 نشانگر بالاترین میزان اولویت اجرا می باشد). thread scheduler اغلب thread ها را بر اساس مقدار priority آن ها (که مبتنی بر الگوریتم preemptive هست) اجرا می نماید.

2658 بازدید
ادامه
آموزش Java – daemon thread در پردازش موازی Java
آموزش Java – daemon thread در پردازش موازی Java

Daemon thread ها برای سرویس دهی به thread های تعریف شده توسط برنامه نویس که user thread نامیده می شود، بکار می روند. چرخه ی حیات و طول عمر این نوع thread ها وابسته به user thread ها بوده و با اتمام کار thread هایی که توسعه دهنده تعریف کرده، دستگاه مجازی Java daemon thread ها را نیز از حافظه پاک می کند.

2891 بازدید
ادامه
آموزش Java – Thread Pool در پردازش موازی در Java
آموزش Java – Thread Pool در پردازش موازی در Java

Thread pool عبارت است مجموعه ای از worker thread ها که منتظر انجام عملیات بوده و بارها قابل استفاده می باشند. در واقع thread pool یک مخزن است از thread های آماده است که با استفاده از آن دیگر نیازی نیست هر بار خود توسعه دهنده یک thread جدید ایجاد کند بلکه از thread pool می خواهد که برای اجرای عملیات مورد نظر یک thread در اختیار او قرار دهد.

3886 بازدید
ادامه
آموزش Java – ThreadGroup در پردازش موازی در Java
آموزش Java – ThreadGroup در پردازش موازی در Java

Java به توسعه دهنده این امکان را می دهد تا چندین thread را در یک آّبجکت واحد بگنجاند. از این طریق می توان به راحتی گروهی از thread ها را با فراخوانی تنها یک تابع معلق (suspend()) کرد، از سر گرفت (resume()) یا متوقف (interrupt()) نمود.

2459 بازدید
ادامه
آموزش Java – استفاده از تابع/Shutdown hook در Java
آموزش Java – استفاده از تابع/Shutdown hook در Java

گاهی لازم می شود در صورت بسته شدن برنامه به طور ناگهانی (قبل از اینکه برنامه از حافظه پاک شود)، عملیات خاصی صورت گیرد. shutdown hook یک تکه کد است که به JVM معرفی و متصل شده و آن را مجبور می کند قبل از اینکه کاملا خاموش شود، عملیات معینی را اجرا کند.

2441 بازدید
ادامه
آموزش Java – اجرای چندین عملیات توسط thread های متفاوت در Java
آموزش Java – اجرای چندین عملیات توسط thread های متفاوت در Ja ...

در شرایطی که تنها یک عملیات (task) برای اجرا کردن وجود دارد، یک متد run() نیز برای انجام عملیات کفایت می کند. در زیر مثالی را مشاهده می کنید که در آن یک عملیات را چندین thread اجرا می کنند:

2624 بازدید
ادامه
آموزش Java – مدیریت حافظه/garbage collection در پردازش موازی جاوا/multithreading
آموزش Java – مدیریت حافظه/garbage collection در پردازش موازی ...

در زبان های C و C++ به ترتیب از توابع free() و delete() برای این منظور استفاده می شود. اما جاوا این کار را خود به صورت اتوماتیک انجام داده و به این دلیل در مدیریت حافظه بهتر عملی می کند.

4938 بازدید
ادامه
آموزش Java – کلاس Java Runtime در Java
آموزش Java – کلاس Java Runtime در Java

تمامی اپلیکیشن های مبتنی بر Java یک نمونه از کلاس Java Runtime دارند که به آن ها امکان تعامل با محیط اجرای برنامه را می دهد.به بیان دیگر کلاس Java Runtime برای تعامل با java runtime environment بکار می رود. کلاس Java Runtime متدهایی برای اجرای یک process، فراخوانی GC، بازیابی و کل ظرفیت حافظه و آزاد سازی آن در اختیار توسعه دهنده قرار می دهد.

2958 بازدید
ادامه

آموزش همگام سازی در جاوا(Java synchronization)

آموزش Java – synchronization و مدیریت دسترسی thread ها به منابع مشترک در Java
آموزش Java – synchronization و مدیریت دسترسی thread ها به من ...

synchronization در Java به معنی قابلیت مدیریت دسترسی thread ها به منابع مشترک می باشد. synchronization زمانی بسیار کاربردی تلقی می شود که توسعه دهنده بخواهد به تنها یک thread امکان دسترسی به منبع مشترک را بدهد.

4326 بازدید
ادامه
آموزش Java – قطعه کد synchronized در Java (multithreading)
آموزش Java – قطعه کد synchronized در Java (multithreading)

قطعه کد Synchronized را می توان برای پیاده سازی synchronization و مدیریت دسترسی thread ها به منابع بر روی متد مورد نظر اعمال کرد. در واقع synchronized یک قطعه کد متشکل از دستوراتی است که که thread ها در آن اشتراک دارند.

4242 بازدید
ادامه
آموزش Java - استفاده از static synchronization در Java multithreading
آموزش Java - استفاده از static synchronization در Java multi ...

اگر یک متد را static synchronized تعریف کنید، lock بر آبجکت کلاس اعمال نمی شود بلکه بر روی خود کلاس اعمال می شود و در واقع آن متد در سطح کلاس، نه در سطح نمونه ی کلاس synchronized می باشد. به عبارت دیگر متد مربوطه از آبجکت های ساخته شده از روی کلاس پس از علامت گذاری با کلیدواژگان static synchronized نمی توانند همزمان در دسترس چند thread قرار گیرند.

2328 بازدید
ادامه
آموزش Java – وضعیت Deadlock در مبحث synchronization Java
آموزش Java – وضعیت Deadlock در مبحث synchronization Java

در جاوا (Java) Deadlock بخشی از مبحث پردازش موازی (multithreading) و مدیریت دسترسی thread ها به منابع یا همان synchronization است.

2610 بازدید
ادامه
آموزش Java – تبادل اطلاعات بین thread ها یا Inter-thread communication در جاوا (synchronization و multithreading)
آموزش Java – تبادل اطلاعات بین thread ها یا Inter-thread com ...

cooperation مکانیزیمی است که طی آن یک thread در critical section و بخش حیاتی پردازش خود متوقف شده و thread دیگری امکان وارد شدن در همان بخش و اعمال قفل را پیدا می نماید و عملیات یا پردازش بخش حیاتی خود را انجام می دهد. برای پیاده سازی این امکان می توانید از متدهای wait، notify و notifyAll کلاس Object استفاده نمایید.

3198 بازدید
ادامه
آموزش Java – متد interrupt() در multithreading و synchronization در Java
آموزش Java – متد interrupt() در multithreading و synchroniza ...

فراخوانی متد interrupt() بر روی نمونه ای از جنس کلاس Thread سبب می شود یک thread ای که در حال اجرای عملیات می باشد، آن را متوقف کند. در Java

2789 بازدید
ادامه

آموزش ورودی و خروجی (Input و Output) در Java

آموزش Java – I/O و عملیات ورودی و خروجی در Java
آموزش Java – I/O و عملیات ورودی و خروجی در Java

Java با بهره گیری از مفهومی به نام stream (دنباله ای از داده ها با فرمت های مختلف برای مثال 8 بیتی/1 بایتی است که از منبعی خوانده شده یا در آن درج می شود) عملیات i/o را تسریع می بخشد. کلاس ها و توابع لازم برای پردازش ورودی و تولید خروجی در جاوا داخل پکیج java.io تعبیه شده است.

6760 بازدید
ادامه
آموزش Java – کار با کلاس FileOutputStream در I/O Java
آموزش Java – کار با کلاس FileOutputStream در I/O Java

FileOutputStream در جاوا یک کلاس مشتق شده از کلاس انتزاعی OutputStream است که برای ایجاد دنباله ای از بایت های خروجی (output stream) و مشخص کردن یک فایل مقصد که داده ها در آن درج می شوند بکار می رود. به عبارت ساده تر بایت های خروجی را در فایل می نویسد.

3660 بازدید
ادامه
آموزش Java - کلاس FileInputStream در Java
آموزش Java - کلاس FileInputStream در Java

کلاس FileInputStream بایت هایی ورودی را از یک فایل خوانده و بازیابی می کند. نمونه ی این کلاس قادر است یک جریان ورودی تعریف کرده و یک فایل به عنوان منبع این جریان تنظیم و ایجاد کند. از کلاس FileInputStream برای خواندن داده های مبتنی بر بایت (دنباله ای از بایت های خام) نظیر اطلاعات تصویری، صوتی، ویدئو و غیره ... استفاده می شود.

3857 بازدید
ادامه
آموزش Java – کار با کلاس BufferedOutputStream
آموزش Java – کار با کلاس BufferedOutputStream

کلاس BufferedOutputStream برای قرار دادن دنباله ای از بایت های خروجی (output stream) از دیسک در حافظه واسط و به اصطلاح بافر کردن محتوا بکار می رود. این کلاس همان طور که از اسم آن پیدا است از buffer برای ذخیره ی موقت داده ها از دیسک استفاده می کند.

2873 بازدید
ادامه
آموزش Java – کار با کلاس BufferedInputStream
آموزش Java – کار با کلاس BufferedInputStream

کلاس BufferedInputStream در جاوا جهت خواندن اطلاعات از دنباله ای از بایت ها و ذخیره ی موقت آن ها در buffer بکار می رود. این کلاس همان طور که از اسم آن پیدا است، برای افزایش کارایی و سرعت به صورت داخلی از مکانیزم buffer و ذخیره موقت اطلاعات در حافظه واسط بهره می گیرد.

2808 بازدید
ادامه
آموزش Java – کار با کلاس SequenceInputStream در Java
آموزش Java – کار با کلاس SequenceInputStream در Java

کلاس SequenceInputStream در جاوا جهت خواندن داده از چندین input stream (برای مثال چند فایل ورودی) که در قالب یک sequence واحد به ترتیب به یکدیگر متصل شده اند، بکار می رود. این کلاس داده ها را به صورت متوالی و یکی پس از دیگری از input stream های متصل شده به هم می خواند.

2388 بازدید
ادامه
آموزش Java – کار با کلاس در    ByteArrayOutputStream Java
آموزش Java – کار با کلاس در ByteArrayOutputStream Java

کلاس ByteArrayOutputStream در جاوا برای درج داده های مشترک در چند فایل بکار می رود. output stream ای که این کلاس پیاده سازی می کند، داده ها را داخل آرایه ای از بایت ها (byte stream) قرار داده و سپس می تواند این داده ها را در چندین stream، برای مثال فایل خروجی، به صورت ثابت درج کند.

2513 بازدید
ادامه
آموزش Java – کار با کلاس ByteArrayInputStream در Java
آموزش Java – کار با کلاس ByteArrayInputStream در Java

اسم کلاس ByteArrayInputStream از دو کلمه تشکیل شده است: ByteArray و InputStream. همان طور که از اسم آن پیدا است، می توان با استفاده از آن آرایه ای از بایت ها ورودی (input stream) را خواند. کلاس ByteArrayInputStream داری یک حافظه ی buffer داخلی است که به وسیله آن می توان آرایه ای از بایت های ورودی را به صورت stream خواند.

2491 بازدید
ادامه
آموزش Java – کار با کلاس DataOutputStream در Java
آموزش Java – کار با کلاس DataOutputStream در Java

کلاس DataOutStream این امکان را برای اپلیکیشن فراهم می کند تا داده هایی از نوع اولیه (primitive) را در جریان خروجی (output stream) به روشی کاملا مستقل از ماشین و قابل اجرا (استفاده) در بسترهای مختلف درج کند. به عبارت دیگر این کلاس داده هایی از نوع اولیه را به متغیرهای قابل استفاده در انواع output stream ها که از بستر اجرا و platform مستقل هستند تبدیل می نماید.

2910 بازدید
ادامه
آموزش Java – کار با کلاس DataInputStream در Java
آموزش Java – کار با کلاس DataInputStream در Java

کلاس DataInputStream این امکان را برای اپلیکیشن فراهم می کند تا داده هایی از نوع اولیه (primitive) را از input stream (برای مثال فایل ورودی) به صورت کاملا مستقل از ماشین (قابل فهم و اجرا بر روی بسترهای مختلف و مستقل از platform) بخواند.

2840 بازدید
ادامه
آموزش Java – کار با کلاس FilterOutputStream در Java
آموزش Java – کار با کلاس FilterOutputStream در Java

کلاس FilterOutputStream پدر تمامی کلاس هایی است که جریان های خروجی (output stream) را فیلتر می کنند. این جریان های بایتی (output stream) بر روی یک output stream از قبل موجود قرار داشته و از آن به عنوان بستر پایه ای دریافت اطلاعات (data sink) استفاده می کنند. لازم به ذکر است که داده ها در طول مسیر ممکن است تبدیل شده یا قابلیت های جدیدی اضافه گردد.

2348 بازدید
ادامه
آموزش Java – کار با کلاس FilterInputStream در Java
آموزش Java – کار با کلاس FilterInputStream در Java

کلاس FilterInputStream خود میزبان inputstream های دیگر بوده، از آن ها به عنوان منبع داده ای اصلی خود استفاده می کند و این احتمال وجود دارد که داده ها را در طول مسیر تبدیل کرده (تغییر شکل دهد) یا قابلیت های جدید اضافه کند.

2304 بازدید
ادامه
آموزش Java – کار با کلاس Console در Java
آموزش Java – کار با کلاس Console در Java

کلاس Console قابلیت این را دارد که از console ورودی دریافت کرده و در آن خروجی چاپ کند. این کلاس تعدادی متد جهت خواندن متن و گذرواژه (password) در اختیار توسعه دهنده قرار می دهد. در Java

4962 بازدید
ادامه
آموزش Java – کار با کلاس FilePermission در Java
آموزش Java – کار با کلاس FilePermission در Java

کلاس FilePermission در جاوا امکان دسترسی به فایل یا پوشه را فراهم می کند. این کلاس تمامی مجوزهای مربوط به فایل یا دایرکتوری را کپسوله می کند. مجوزهایی کپسوله سازی شده در این کلاس همگی مربوط به path و دسترسی به محل قرارگیری فایل می باشد. رشته path می تواند به دو صورت نگارش شود:

2301 بازدید
ادامه
آموزش Java – کار با کلاس Writer در Java
آموزش Java – کار با کلاس Writer در Java

کلاس Writer یک کلاس abstract برای درج داده در character stream و دنباله ای از کاراکترها است. این کلاس را کلاس های دیگر به ارث برده و متدهای write(char[], int, int)، flush() و close() از این کلاس abstract را در خود پیاده سازی می کنند. بیشتر کلاس هایی که از Writer ارث بری دارند، متدهای آن را جهت افزایش کارایی و افزودن قابلیت مضاعف در سطح خود بازنویسی (override) می کنند.

3284 بازدید
ادامه
آموزش Java – کار با کلاس Reader در Java
آموزش Java – کار با کلاس Reader در Java

کلاس Reader یک کلاس abstract است که برای خواندن دنباله ای از کاراکترها/character stream بکار می رود. کلاس هایی که از این کلاس ارث بری دارند فقط باید دو متد read(char[], int, int) و close() را پیاده سازی می کنند.آموزش Java

3019 بازدید
ادامه
آموزش Java – کار با کلاس FileWriter در Java
آموزش Java – کار با کلاس FileWriter در Java

کلاس FileWriter برای درج داده های مبتنی بر کاراکتر در فایل بکار می رود. به عبارت دیگر، FileWriter یک کلاس مبتنی بر کاراکتر است که توسعه دهنده به واسطه ی آن می تواند اطلاعاتی را در قالب کاراکتر در فایل وارد کرده و آن را مدیریت کند. آموزش Java

3540 بازدید
ادامه
آموزش Java – کار با کلاس FileReader در Java
آموزش Java – کار با کلاس FileReader در Java

توسعه دهنده به وسیله ی کلاس FileReader قادر خواهد بود داده های مبتنی بر کاراکتر را از فایل مورد نظر بخواند. نمونه ی این کلاس داده ها را در قالب دنباله ای از بایت ها مانند FileInputStream در خروجی برمی گرداند. آموزش Java

4328 بازدید
ادامه
آموزش Java – کار با کلاس BufferedWriter  در Java
آموزش Java – کار با کلاس BufferedWriter در Java

کلاس BufferedWriter به آبجکت های ساخته شده از روی کلاس Writer این امکان را می دهد که داده های خود را در حافظه واسط یا buffer ذخیره کرده و در اصطلاح از قابلیت buffering در عملیات ورودی پشتیبانی کند. آموزش Java

4279 بازدید
ادامه
آموزش Java – کار با کلاس BufferedReader در Java
آموزش Java – کار با کلاس BufferedReader در Java

کلاس BufferedReader برای خواندن متن از یک input stream مبتنی بر کاراکتر بکار می رود. توسعه دهنده می تواند با فراخوانی متد readline() از این کلاس محتوای فایل مورد نظر را خط به خط بخواند. این کلاس به سبب استفاده از buffer، سرعت و کارایی اپلیکیشن را افزایش می دهد.آموزش Java

5382 بازدید
ادامه
آموزش Java – کار با کلاس CharArrayReader در Java
آموزش Java – کار با کلاس CharArrayReader در Java

اسم کلاس CharArrayReader از دو واژه ی CharArray و Reader تشکیل شده است. همان طور که از اسم آن پیدا است، این کلاس به توسعه این امکان را می دهد تا آرایه ای از کاراکترها را به صورت stream یا دنباله ای از داده های ورودی بخواند. CharArrayReader نیز از کلاس Reader مشتق می شود.

2650 بازدید
ادامه
آموزش Java – کار با کلاس CharArrayWriter در Java
آموزش Java – کار با کلاس CharArrayWriter در Java

کلاس CharArrayWriter یک حافظه ی واسط یا buffer جهت نگهداری موقت کاراکتر پیاده سازی کرده و به توسعه دهنده این امکان را می دهد تا داده های مشترک را در چندین فایل درج کند. آموزش Java

2665 بازدید
ادامه
آموزش Java – کار با کلاس PrintStream در Java
آموزش Java – کار با کلاس PrintStream در Java

کلاس PrintStream متدهایی جهت درج داده در stream دیگر را در اختیار توسعه دهنده قرار می دهند. به عبارت دیگر با افزودن قابلیت جدید به یک stream دیگر، این بستر را فراهم می کند که داده های از نوع مختلف را به راحتی چاپ کند. آموزش Java

3830 بازدید
ادامه