آموزش جاوا (Java)

دسته بندی: زبان برنامه نویسی

آنچه در این صفحه می خوانید:

معرفی جاوا

جاوا یک زبان برنامه نویسی شی گرا، چند منظوره و چند سکویی، تولید شده توسط Sun Microsystems است و برای اولین بار در سال 1995 منتشر شد. جاوا ابتدا به عنوان یک فناوری وب مستقل از دستگاه طراحی شد. سینتکس جاوا شبیه و بر اساس گرامر C و سی پلاس پلاس است تا کار برنامه نویسان را برای یادگیری آسان کند. از آن به بعد، جایگاه برجسته ای در جهان برنامه نویسی کامپیوتر به دست آورده است. جاوا متعلق به اوراکل است و بیش از 3 میلیارد دستگاه آن را اجرا می کند. جاوا یک زبان برنامه نویسی عمومی است که متشکل از کلاس مبتنی بر شی گرایی است و طراحی شده تا وابستگی های اجرا به همان اندازه ممکن باشد. این موضوع توسعه دهندگان نرم افزار را قادر می کند تا یک بار کد را بنویسند و در هر جا اجرا شود. برنامه های جاوا به طور معمول به bytecode متصل می شوند که می تواند بر روی هر ماشین مجازی جاوا (JVM) بدون در نظر گرفتن معماری زیرساخت کامپیوتری اجرا شود. از سال 2018، جاوا یکی از محبوب ترین زبان های برنامه نویسی به کار برده شده توسط GitHub به ویژه برای برنامه های کاربردی وب سرور و کلاینت است که 9 میلیون توسعه را گزارش می دهد. چند منظوره بودن جاوا می تواند بسیاری از برنامه های کاربردی را از برنامه های خط فرمانی به اپلت ها به Swing windows (اساسا، رابط کاربر گرافیکی پیچیده) تولید کند. در ایجاد زبان جاوا پنج هدف اصلی وجود داشت:

  • باید ساده، شی گرا و آشنا باشد.
  • باید قوی و امن باشد.
  • باید معماری خنثی داشته باشد و قابل حمل باشد.
  • باید با عملکرد بالا اجرا شود.
  • باید تفسیر شود، Multi-threding و پویا باشد.

تاریخچه جاوا

James Gosling ،Mike Sheridan و Patrick Naughton در ژوئن 1991 پروژه زبان جاوا را آغاز کردند. جاوا در ابتدا برای تلویزیون تعاملی طراحی شده بود اما در آن زمان صنعت تلویزیون کابلی دیجیتال نیز پیشرفته بود. بعدها پروژه با نام Green نامگذاری شد و در نهایت به نام جاوا از Java coffee تغییر یافت. Sun Microsystems نخستین اجرای عمومی را به عنوان جاوا 1.0 در سال 1996 منتشر کرد و این وعده را داد که بدون هزینه در سیستم عامل های محبوب اجرا شود (WORA) و همچنین ساده و دارای امنیت قابل تنظیم، اجازه دسترسی محدود به شبکه و فایل را فراهم کند. مرورگرهای بزرگ وب به زودی توانایی اجرای اپلت های جاوا در صفحات وب را شامل شدند و جاوا به سرعت محبوب شد. کامپایلر جاوا 1.0 به وسیله آرتور ون هوف در جاوا نوشته شده بود تا با زبان زبان جاوا 1.0 سازگار باشد. با ظهور جاوا 2 (در ابتدا به عنوان J2SE 1.2 در دسامبر 1998 تا 1999 منتشر شد)، نسخه های جدید دارای پیکربندی های متعدد برای انواع مختلف سیستم عامل ها بودند. J2EE شامل فن آوری ها و API ها برای برنامه های سازمانی معمولا در محیط های سرور اجرا می شود، در حالی که J2ME دارای API ها بهینه سازی شده برای برنامه های تلفن همراه است. نسخه دسکتاپ به J2SE تغییر نام یافت. در سال 2006، برای اهداف بازاریابی، Sun Microsystems نسخه های جدید J2 را به ترتیب جاوا EE ،Java ME و Java SE تغییر داد. در تاریخ 13 نوامبر 2006، بزرگترین مجوز ماشین جاوا (JVM) را به عنوان نرم افزار رایگان و اوپن سورس (FOSS) تحت شرایط مجوز عمومی GNU (GPL) منتشر کرد.

ویژگی های جاوا

هدف اولیه ایجاد زبان برنامه نویسی جاوا این بود که یک زبان برنامه نویسی قابل حمل، ساده و امن را ایجاد کند. جدا از این، برخی از ویژگی های عالی نیز وجود دارد که نقش مهمی در محبوبیت این زبان ها ایفا می کند. در زیر بخشی از این ویژگی ها را مورد بررسی قرار می دهیم:

ساده: جاوا برای یادگیری بسیار آسان است و سینتکس آن ساده، تمیز و قابل درک است. طبق گفته Sun، زبان جاوا یک زبان برنامه نویسی ساده است زیرا گرامر جاوا مبتنی بر ++C است. جاوا بسیاری از ویژگی های پیچیده و به ندرت استفاده شده را حذف کرده است، برای مثال، نیازی به اشاره گرهای صریح، بارگذاری اپراتور حذف اشیاء بدون ارجاع و غیره نیست، زیرا مجموعه جمع آوری زباله خودکار در جاوا وجود دارد.

شی گرا: جاوا یک زبان برنامه نویسی شی گرا است و همه چیز در جاوا یک شی است. Object-oriented به این معنی است که ما نرم افزار خود را به عنوان ترکیبی از انواع مختلف اشیائی که هر دو داده و رفتار را شامل می شوند، سازماندهی می کنیم. برنامه نویسی شی گرا (OOPs) یک روشی است که توسعه و نگهداری نرم افزار را با ارائه برخی از قوانین ساده می کند. مفاهیم پایه OOP ها عبارتند از:

  • شی
  • کلاس
  • وراثت
  • پلی مورفیسم
  • انتزاع
  • کپسوله سازی

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

  • محیط زمان اجرا
  • رابط برنامه نویسی برنامه (API)

کد جاوا را می توان در سیستم عامل های مختلف اجرا کرد، به عنوان مثال ویندوز، لینوکس، سان سولاریس، سیستم عامل مک و غیره. کد جاوا توسط کامپایلر، کامپایل شده و به bytecode تبدیل می شود. بایت کد یک کد مستقل از پلتفرم است، زیرا می توان آن را در سیستم عامل های مختلف اجرا کرد.

امن: جاوا برای امنیت بیشتر شناخته شده است. با جاوا، ما می توانیم سیستم های بدون ویروس را توسعه دهیم. جاوا امن است زیرا:

  • برنامه های جاوا اشاره گر صریح نیست.
  • در داخل ابزار ماشین مجازی اجرا می شود.

Classloader در جاوا بخشی از JRE است که برای بارگیری کلاس های جاوا در ماشین مجازی جاوا به صورت پویا استفاده می شود. این ویژگی امنیت را با جداسازی بسته برای کلاس های سیستم فایل محلی از آنهایی که از منابع شبکه وارد می شوند، اضافه می کند. قابلیت Bytecode Verifier، قطعه کد را برای کد غیرقانونی که ممکن است حق دسترسی به اشیا را نقض کند، بررسی می کند. ویژگی مدیر امنیت تعیین می کند که چه منابع یک کلاس می تواند به خواندن و نوشتن روی دیسک محلی دسترسی پیدا کند. زبان جاوا این امنیت را به طور پیش فرض فراهم می کند. همچنین برخی از موارد امنیتی توسط توسعه دهنده نرم افزار از طریق SSL ،JAAS، رمزنگاری و غیره فراهم می شود.

قدرتمند:قوی به سادگی به معنی اقتدار است. جاوا قوی است زیرا:

  • از مدیریت حافظه قوی استفاده می کند.
  • عدم وجود اشاره گرها که از مشکلات امنیتی جلوگیری می کند.
  • مجموعه جمع آوری زباله خودکار در جاوا وجود دارد که در ماشین مجازی جاوا اجرا می شود تا از اشیائی که در برنامه جاوا استفاده نمی شود خلاص شوند.
  • دستورالعمل استثنایی و مکانیزم چک کردن نوع در جاوا وجود دارد.

همه این نکات جاوا را قوی می کند.

معماری بی طرف: معماری جاوا بی طرف است زیرا هیچ ویژگی وابسته به پیاده سازی وجود ندارد. به عنوان مثال، اندازه انواع اولیه ثابت شده است.

قابل حمل: جاوا قابل حمل است، زیرا شما را قادر می سازد تا بایت کد جاوا را به هر پلتفرم حمل کنید. این قابلیت به هیچگونه پیاده سازی نیاز ندارد.

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

توزیع شده:جاوا توزیع شده است زیرا به کاربران را برای ایجاد برنامه های توزیع شده در جاوا کمک می کند. RMI و EJB برای ایجاد برنامه های توزیع شده استفاده می شود. این ویژگی جاوا ما را قادر به دسترسی به فایل ها با فراخوانی متد ها از هر دستگاهی در اینترنت می کند.

Multi-threaded: رشته مانند یک برنامه جداگانه است که همزمان اجرا می شود. ما می توانیم برنامه های جاوا را که با چندین وظیفه در یک زمان با تعریف Multi-threaded حل می کنیم و بنویسیم. مزیت اصلی Multi-threaded این است که حافظه را برای هر موضوع اشغال نمی کند که در واقع یک منطقه حافظه مشترک است. رشته ها برای برنامه های چند رسانه ای، برنامه های کاربردی وب و غیره مهم هستند.

پویا: جاوا یک زبان دینامیک است. این موضوع از بارگذاری دینامیکی کلاسها پشتیبانی میکند. به این معنی است که کلاسها براساس تقاضا بارگذاری میشوند. همچنین از توابع زبان های مادری خود، یعنی C و ++C پشتیبانی می کند.

کاربردهای زبان جاوا

  • ساخت اپلیکیشن های موبایل به ویژه برنامه های اندروید
  • ساخت اپلیکیشن های دسکتاپ
  • طراحی وب
  • وب سرورها و برنامه های کاربردی سرور
  • بازی ها
  • اتصال به پایگاه داده

شرکت هایی که از جاوا استفاده می کنند

در حال حاضر 3032 شرکت گزارش می دهند که در بخش های فن آوری خود از جاوا استفاده می کنند از جمله:

  • Airbnb
  • Uber
  • Spotify
  • Netflix
  • Instagram
  • Google
  • Pinterest
  • Slack
  • Lyft
  • ebay
  • LinkedIn
  • 9GAG
  • Asana
  • Square
  • MIT
  • Groupon.com
  • Zillow
  • Intuit
  • Zalando
  • Bodybuilding.com
  • OpenGov
  • PedidosYa
  • Hubspot
  • Fitbit
  • Alibaba.com
  • Keen IO

فریمورک های جاوا

فریمورک Play

یک فریمورک تحت وب است که در اسکالا و جاوا نوشته شده‌است که الگوی طراحی MVC را دنبال می‌کند. هدف پلی بهبود بهره‌وری توسعه‌دهندگان با استفاده از قرارداد پیش‌فرض بر تنظیمات، بارگیری سریع کد و نمایش خطاها در مرورگر است.

فریمورک Spring Boot

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

فریمورک Spring MVC

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

فریمورک Akka

یک ابزار رایگان جهت ساده ساختن برنامه های همزمان و توزیع شده در JVM است. Akka از چندین مدل برنامه نویسی برای همگام سازی پشتیبانی می کند. اتصال زبان برای Java و Scala وجود دارد.

فریمورک Apache Accumulo

Accumulo در جاوا نوشته شده است و دارای برچسب دسترسی به سطح سلولی و مکانیسم های برنامه نویسی سمت سرور است.

فریمورک Apache Hadoop

Hadoop یک فریمورک برنامه نویسی مبتنی بر جاوا است که از پردازش و ذخیره مجموعه داده های بسیار بزرگ در محیط محاسباتی توزیع شده پشتیبانی می کند.

فریمورک Apache Camel

Apache Camel یک رویکرد مبتنی بر EIP است که چندین پیاده سازی الگوهای out of the box را فراهم می کند که می تواند برای حل مشکلات یکپارچه سازمانی استفاده شود. Camel به توسعه دهندگان کمک می کند تا ایجاد مسیرها را در انواع زبان خاص دامنه (DSL) مانند جاوا، spring ،XML ،scala و غیره تسهیل بخشد.

فریمورک Apache HBase

HBase یک پایگاه داده مبتنی بر ستون توزیع شده می باشد که در بالای سیستم فایل Hadoop ساخته شده است. یک مدل داده ای است که شبیه big table گوگل است که برای دسترسی سریع به مقادیر عظیم داده های ساخت یافته طراحی شده است.

فریمورک Apache Hive

Hive انتزاع لازم برای SQL برای ادغام پرس و جوهای اساسی SQL مانند (HiveQL) را به جاوا بدون نیاز به پیاده سازی پرس و جو ها در API جاوا فراهم می کند.

فریمورک Apache Kafka

آپاچی کافکا یک فریمورک اوپن سورس است که توسط LinkedIn توسعه یافته و به بنیاد نرم افزار Apache اهدا شده است که در Scala و Java نوشته شده است.

فریمورک Apache Pig

Apache Pig یک پلتفرم سطح بالا برای ایجاد برنامه هایی است که در Apache Hadoop اجرا می شوند.

فریمورک Apache Solr

یک پلتفرم جستجو است که برای ساخت برنامه های جستجو استفاده می شود. برنامه های کاربردی ساخته شده با Solr پیچیده هستند و عملکرد بالایی را ارائه می دهند.

فریمورک Apache Spark

Apache Spark یک فریمورک پردازش داده بزرگ است که بر اساس سرعت، سهولت استفاده و تجزیه و تحلیل پیچیده ساخته شده است. Spark این امکان را فراهم می کند تا سریعا برنامه های کاربردی را در جاوا، اسکالا یا پایتون بنویسید.

فریمورک Apache Storm

Apache Storm یک سیستم محاسباتی بلادرنگ است که موجب جریان راحت داده های بدون محدودیت شده از داده ها می شود، پردازش در زمان واقعی برای Hadoop برای پردازش دسته ای انجام می شود. طوفان ساده است، می تواند با هر زبان برنامه نویسی مورد استفاده قرار گیرد و بسیار سرگرم کننده برای استفاده است!

فریمورک Apache CXF

Apache CXF یک فریمورک وب سرویس کاملا کاربردی با عملکرد بالا با حداقل سربار محاسباتی است.

فریمورک Hibernate

Hibernate یک ابزار نقشه برداری شیئ-ارتباطی برای زبان برنامه نویسی جاوا است. این فریمورک برای نقشه برداری یک مدل دامنه شی گرا را به پایگاه داده رابطه ای فراهم می کند.

فریمورک OpenCV

OpenCV کتابخانه computer vision و کتابخانه نرم افزاری یادگیری ماشینی است. OpenCV برای ارائه یک زیرساخت مشترک برای برنامه های کاربردی computer vision و سرعت بخشیدن به استفاده از ادراک ماشین در محصولات تجاری ساخته شده است.دارای رابط های C ،Python و JAVA می باشد.

فریمورک Selenium

Selenium یک ابزار تست خودکار رایگان برای برنامه های وب در تمامی مرورگرهای مختلف پلتفرم است.

فریمورک JSF

JavaServer Faces یک فریمورک نرم‌افزاری تحت وب بر پایه جاوا که هدفش ساده‌سازی واسط کاربر یکپارچه در توسعه وب است.

فریمورک Struts

Struts فریمورک برنامه وب محبوب و کامل مبتنی بر الگوی طراحی MVC است. Struts یکی از بهترین فریمورک های وب است و بسیار مورد استفاده برای توسعه نرم افزارهای Rich Internet قرار گرفته است.

فریمورک JavaFX

JavaFX یک کتابخانه جاوا است که برای ساخت برنامه های Rich Internet استفاده می شود. برنامه های کاربردی نوشته شده با استفاده از این کتابخانه می توانند در سراسر سیستم عامل های مختلف اجرا شوند. برنامه های توسعه یافته با استفاده از JavaFX می توانند بر روی دستگاه های مختلف مانند کامپیوترهای رومیزی، تلفن های همراه، تلویزیون، تبلت و غیره اجرا شوند.

نسخه های جاوا

جاوای ۸ و ۱۱ به عنوان نسخه‌های دارای پشتیبانی بلندمدت می‌باشند. نسخه‌های بزرگ منتشرشده، به همراه تاریخ انتشار آنها:

  • JDK 1.0، انتشار در ۲۱ ژانویهٔ ۱۹۹۶
  • JDK 1.1، انتشار در ۱۹ فوریهٔ ۱۹۹۷
  • J2SE 1.2، انتشار در ۸ دسامبر ۱۹۹۸
  • J2SE 1.3، انتشار در ۸ مه ۲۰۰۰
  • J2SE 1.4، انتشار در ۶ فوریهٔ ۲۰۰۲
  • J2SE 5.0، انتشار در ۳۰ سپتامبر ۲۰۰۴
  • Java SE 6، انتشار در ۱۱ دسامبر ۲۰۰۶
  • Java SE 7، انتشار در ۲۱۲۸ ژوئیه ۲۰۱۱
  • Java SE 8، انتشار در ۱۸ مارس ۲۰۱۴
  • Java SE 9، انتشار در ۲۱ سپتامبر ۲۰۱۷
  • Java SE 10، انتشار در ۲۰ مارس ۲۰۱۸
  • Java SE 11، انتشار در ۲۵ سپتامبر ۲۰۱۸
  • Java SE 12، انتشار در ۱۹ مارس ۲۰۱۹

توسعه اپلیکیشن های دسکتاپ با جاوا

یکی از قابل توجه ترین ویژگی های جاوا برای برنامه های کاربردی دسکتاپ این است کهGUI (رابط کاربر گرافیکی) فراهم می کند .AWT شامل چندین جزء مانند منو، دکمه، لیست و بسیاری از اجزای دیگر است. اجزای نوسانی سبک وزن هستند، اجزای قدرتمندتری مانند جداول، لیست ها، قطعه های پیمایش، انتخابگر رنگ، پنجره تب و غیره را فراهم می کند. JavaFX مجموعه ای از بسته های گرافیکی و رسانه ای است که قابلیت همکاری و ویژگی های سه بعدی گرافیکی و مدل استقرار مستقل فراهم می کند.

توسعه اپلیکیشن های وب با جاوا

جاوا برنامه های وب را از طریق Servlets ،Struts یا JSP پشتیبانی می کند. با کمک این فناوری ها می توانیم هر نوع برنامه وب را توسعه دهیم. برنامه های خاصی به نام اپلت ها تعبیه شده اند که در کنار صفحات وب که در سمت سرویس گیرنده کار می کنند. این یک فایل متنی کوتاه HTML است. همچنین نرم افزارهای جدید را در زمینه تجارت الکترونیکی نیز پیدا کرده است که با Broadleaf اجرا می شود.

توسعه اپلیکیشن های اندروید با جاوا

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

مثال های جاوا

هر زمان که یک زبان برنامه نویسی کامپیوتری را یاد می گیرید، سنت است که اولین برنامه ای که می نویسید این باشد که کامپیوتر شما می گوید "!Hello World". این یک شاهکار کوچک است، اما فرصت خوبی برای اطمینان از اینکهJDK را به درستی نصب کرده اید. کامپایلر جاوا فایل های متنی اولیه را می خواند. به یاد داشته باشید که جاوا حساس به حروف بزرگ است.

public class HelloWorldApp {
    public static void main(String[] args) {
        System.out.println("Hello World!"); // Prints the string to the console.
    }
}

مثال همراه با متد ها

// This is an example of a single line comment using two slashes

/* This is an example of a multiple line comment using the slash and asterisk. This type of comment can be used to hold a lot of information or deactivate code, but it is very important to remember to close the comment. */

package fibsandlies; import java.util.HashMap;

/** * This is an example of a Javadoc comment; Javadoc can compile documentation * from this text. Javadoc comments must immediately precede the class, method, or field being documented. */ public class FibCalculator extends Fibonacci implements Calculator {

private static Map<Integer, Integer> memoized = new HashMap<Integer, Integer>();

/* * The main method written as follows is used by the JVM as a starting point for the program. */ public static void main(String[] args) { memoized.put(1, 1); memoized.put(2, 1); System.out.println(fibonacci(12)); //Get the 12th Fibonacci number and print to console }

/** * An example of a method written in Java, wrapped in a class. * Given a non-negative number FIBINDEX, returns * the Nth Fibonacci number, where N equals FIBINDEX. * @param fibIndex The index of the Fibonacci number * @return The Fibonacci number */ public static int fibonacci(int fibIndex) { if (memoized.containsKey(fibIndex)) { return memoized.get(fibIndex); } else { int answer = fibonacci(fibIndex - 1) + fibonacci(fibIndex - 2); memoized.put(fibIndex, answer); return answer; } } }

زبان جاوا از ویژگی های بسیاری پشتیبانی می کند و گرامر آن بر خلاف گرامر ++C که ترکیبی از شی گرایی و ساختار ها است، دارای شی گرایی خالص است. جاوا یک زبان محبوب و فوق العاده کاربردی در سراسر جهان می باشد و دارای پشتیبانی قوی است و به همین علت خیلی کم پیش می آید که اگر در این زبان محبوب به مشکل بربخورید و نتوانید مشکل خود را به آسانی حل کنید. در این صفحه آموزش های برنامه نویسی جاوا را می توانید دانلود نمایید.

آیا این نوشته را دوست داشتید؟