جزيره فناوري اطلاعات جزيره فناوري اطلاعات .

جزيره فناوري اطلاعات

جاوا چيست؟ معرفي كامل زبان برنامه نويسي جاوا + كاربرد و ويژگي ها

جاوا چيست؟ زبان برنامه نويسي جاوا چه كاربردهايي دارد؟ آيا زبان جاوا براي شروع برنامه نويسي مناسب است؟ چه نوع برنامه‌هايي مي‌توان با زبان جاوا ساخت؟ زبان جاوا در چه محيط هايي كاربرد دارد؟ آيا در ايران از زبان جاوا استفاده مي شود؟ اين‌ها سؤالاتي هستند كه براي افرادي كه مي‌خواهند برنامه نويسي را شروع كنند ممكن است پيش بيايد. در اين مطلب زبان برنامه نويسي جاوا را معرفي مي‌كنيم و سؤالات گفته شده را پاسخ مي‌دهيم و قابليت‌هاي اين زبان قدرتمند و محبوب را بررسي مي‌كنيم.

برنامه كامپيوتري چيست؟

جاوا يك زبان برنامه نويسي است كه با آن مي‌توان برنامه‌هاي كامپيوتري توليد كرد. قبل از اينكه بخواهيم در مورد خود جاوا صحبت كنيم اول ببينيم كه برنامه كامپيوتري چيست؟ برنامه كامپيوتري مجموعه دستوراتي هستند كه در قالب يك بسته ايجاد شده‌اند و سيستم كامپيوتري كه به آن سخت‌افزار هم گفته مي‌شود، آن مجموعه دستورات را اجرا مي كند. اين مجموعه دستورات قالب و زبان خاصي دارند كه سيستم كامپيوتري قادر به خواندن و اجراي آن‌ها است. هر برنامه كامپيوتري وظيفه‌اي دارد و كاربرد مخصوص به خودش را دارد. بدون برنامه‌هاي كامپيوتري سيستم‌هاي كامپيوتري قادر به انجام هيچ كاري نيستند. 

برنامه‌هاي كامپيوتري كه نرم‌افزار هم ناميده مي‌شوند انواع مختلفي دارند كه در سطوح مختلف كار با سخت‌افزار عمل مي‌كنند مانند سيستم عامل ها كه مسئول مديريت سخت‌افزار هستند (مثل ويندوز و اندرويد و iOS) و برنامه‌هاي كامپيوتري كاربردي كه يكي از نياز هاي كاربران را برطرف مي كنند. مانند ماشين حساب و برنامه پيام رسان و مرورگر و …. شما هر روز براي كار هاي مختلف از برنامه‌هاي كامپيوتري در گوشي و تبلت و كامپيوتر خود براي هدف‌هاي مختلف استفاده مي كنيد.

برنامه نويسي چيست و برنامه نويس كيست؟

براي اينكه بدانيد جاوا چيست بايد ابتدا درك كنيد برنامه نويسي چيست . حال كه با برنامه كامپيوتري آشنا شديم فرايند طراحي و توليد و تست و نگهداري برنامه‌هاي كامپيوتري (نرم افزار) را برنامه نويسي مي‌گويند و كسي كه عمل برنامه نويسي را انجام مي‌دهد برنامه نويس نام دارد. البته توليد نرم‌افزار كار پيچيده‌اي است و به جاي يك شخص معمولاً نيازمند يك تيم برنامه نويسي است كه هر كدام از اعضا وظايف مخصوص به خود را دارند.

 

همچنين علم توليد نرم‌افزار و برنامه نويسي در حدي پيچيده است كه يك كار مهندسي بوده و داراي اصول و قواعد خود است. مهندسي نرم‌افزار بر روي انواع روش‌هاي توليد و نگهداري نرم‌افزار و نحوه پياده‌سازي پروژه هاي نرم افزاري تمركز دارد.كار برنامه نويس به اين صورت است كه برنامه را به يكي از زبان‌هاي برنامه نويسي براي كامپيوتر مي‌نويسد و بعد از آن برنامه نوشته شده تبديل به دستورات قابل فهم كامپيوتر مي‌شود كه اين كار را كامپايلر ها و يا مفسر ها انجام مي دهند. سپس آن برنامه اجرا مي شود. 

زبان جاوا چيست؟

اما زبان جاوا يا Java چيست؟ بعد از اينكه تا حدودي با كلمه برنامه و برنامه نويس آشنا شديم حال سؤال اصلي اين است كه زبان برنامه نويسي جاوا چيست؟ برنامه نويس براي توليد نرم‌افزار نيازمند اين است كه دستورات را در قالب يك زبان به سخت‌افزار ديكته كند. حال اين زبان بايد به گونه‌اي باشد كه به صورت دقيق منظور برنامه نويس را به سخت‌افزار اعلام كند. اينجاست كه نياز به زبان برنامه نويسي پيش مي‌آيد.

زبان برنامه نويسي زباني است كه به كمك آن برنامه نويس منظور خودش را براي كامپيوتر توضيح مي دهد. حال زبان جاوا يك زبان برنامه نويسي سطح بالاي شي گرا است. زبان سطح بالا يعني اينكه به زبان نوشتار انسان نزديك است. با استفاده از جاوا مي‌توان برنامه‌هاي مختلف و در اندازه هاي مختلف و در زمينه‌هاي مختلف توليد كرد.

نوشتار جاوا مانند زبان C و C++ (سي پلاس پلاس) است با اين تفاوت كه زبان جاوا به صورت كامل شي گرا است و تمايزاتي نسبت به زبان‌هاي قبلي گفته شده دارد. از مزاياي جاوا نسبت به سي و سي پلاس پلاس مديريت حافظه و مكانيزم جمع آوري زباله (garbage collection) و حذف اشاره گرها مي‌توان اشاره كرد.

همينطور برنامه نويسي به جاوا بسيار ساده‌تر شده است.با استفاده از جاوا مي‌توان  براي هر دستگاهي كه ماشين مجازي جاوا را داشته باشد مي‌توان برنامه نوشت. همچنين مي‌توان برنامه‌هاي تحت وب و دسكتاپ و موبايل و …. نيز با اين زبان نوشت.

تاريخچه جاوا چيست؟

در اوايل دهه 1990 ميلادي در شركت سان ميكروسيستمز (Sun Micro-systems) يك تيم به رهبري شخصي به نام جيمز گاسلينگ بر روي پروژه اي كار مي‌كردند كه زبان برنامه نويسي را توليد كنند تا به كمك آن بتوانند براي دستگاه‌هاي الكترونيكي برنامه بنويسند. نام اين پروژه Green بود.

 

نتيجه كار اين تيم ساخته شدن يك زبان برنامه نويسي به نام Oak بود كه طوري طراحي شده بود كه وابسته به پلتفرم خاصي نباشد و براي سيستم‌هاي تعبيه شده (embedded system) مناسب باشد.  در سال 1995 نام اين زبان از Oak به java تغيير داده شد و عرضه عمومي شد و اولين نسخه‌اي بود كه همه مي توانستند از آن استفاده كنند.
زبان جاوا به دليل امكاناتي مانند قابليت حمل (portability) كه با كمك آن كاربر مي‌توانست يك برنامه بنويسد و در پلتفرم ها و دستگاه‌هاي مختلف اجرا كند بسيار محبوب شد. در طي سال‌ها شركت سان قابليت‌هاي بيشتري به جاوا اضافه كرد و آن را گسترش داد و نسخه هاي جديد تر و كامل‌تر اين زبان را در اختيار برنامه نويسان قرار داد.
در سال 2009 شركت اوراكل شركت سان را خريداري كرد و از آن به بعد اوراكل جاوا را توسعه و نگهداري مي‌كند و قابليت‌هاي بسياري را به آن اضافه كرده است. امروزه جاوا به يكي از محبوب‌ترين زبان‌هاي برناهم نويسي تبديل شده است و به همين خاطر كتابخانه‌ها و فريمورك ها و ابزارهاي بسياري براي اين زبان توليد شده است كه مي‌تواند در بسياري از برنامه‌ها و پروژه هاي نرم افزاري استفاده شود.

 

علت محبوبيت جاوا چيست؟

جاوا قابليت‌هاي بسياري دارد كه باعث شده است به اين محبوبيت برسد اما چند تا از ويژگي‌هاي كليدي اين زبان عبارتند از:

۱. زبان جاوا يك زبان شي گراست

جاوا يك زبان كاملاً شي گرا است. اين به اين معني است كه براي برنامه نويسي جاوا بايد از مفاهيم و اصول شي گرايي تبعيت كنيد. قواعد شي گرايي به ما كمك مي‌كنند كه برنامه‌ها و نرم افزارهاي بزرگ را به ماژول ها و قطعات كوچك تبديل كنيم كه همين امر باعث مي‌شود كه بتوانيم از ماژول هاي توليد شده چندين وچند بار استفاده مجدد كنيم و به راحتي بتوانيم آن‌ها را مديريت نماييم.

۲. زبان جاوا وابستگي به پلتفرم خاصي ندارد

برنامه‌هاي جاوا به پلتفرم خاصي تعلق ندارند و آن‌ها را مي‌توان در هر پلتفرمي اجرا كرد يعني شما مي‌توانيد برنامه‌هاي جاوا را بر روي ويندوز يا لينوكس يا مك  اجرا كنيد. دليل اين كار هم اين است كه برنامه‌هاي جاوا بعد از نوشتن به بايت كد تبديل مي‌شوند كه اين بايت كد ها بر روي ماشين مجازي جاوا (JVM) اجرا خواهند شد.

۳.زبان جاوا مديريت حافظه را بصورت خودكار انجام مي دهد

مديريت حافظه در جاوا به صورت اتوماتيك انجام مي‌شود يعني لازم نيست كه برنامه نويس كاري براي مديريت حافظه انجام دهد درحالي كه اگر با زبانهايي مانند سي و سي پلاس پلاس كار كرده باشيد بايد خودتان اشياءي را كه كارتان با آن‌ها به پايان رسيده است را از حافظه پاك كنيد. ولي در جاوا jvm به صورت خودكار حافظه را به اشياء اختصاص مي‌دهد و بعد از اينكه كار برنامه نويس با آن‌ها تمام شد آن فضاهاي حافظه را پاك مي كند.

4.زبان جاوا يك زبان بسيار پايدار است

جاوا نوع داده‌هايي را كه برنامه نويس استفاده مي‌كند را به صورت دقيق بررسي مي‌كند كه اين كار باعث كاهش قابل توجهي از خطاهاي برنامه نويسي مي‌شود و همچنين قابليت پردازش استثناء (exception handling) باعث مي‌شود كه بسياري از خطاهاي زمان اجرا را مديريت كنيم و اين دو مكانيزم باعث مي‌شود كه خطاي برنامه‌ها تا حد زياد گرفته شود و برنامه‌ها هنگام اجرا پايدار تر باشند.

5. زبان جاوا داراي امنيت بسيار خوبي است

جاوا يك مدل امنيتي دارد كه اجازه نمي‌دهد كه ويروس ها و برنامه‌هاي خرابكار خود را در داخل برنامه و كدهاي اصلي جاسازي كنند. همچنين يك مكانيزم امنيتي ديگري به نام sandbox دارد كه اجازه نمي‌دهد سيستم و برنامه‌هاي ديگر به منبع برنامه‌هاي جاوا دسترسي داشته باشند و آن‌ها را تغيير دهند.

مطالعه بيشتر در مورد 4 مفهوم اصلي امنيت جاوا

6.زبان جاوا يك زبان چند Thread اي است

با استفاده از اين امكان جاوا برنامه نويسان قادر خواهند بود كه برنامه را به نخ هاي مختلفي تجزيه كنند. نخ هاي برنامه مي‌توانند به صورت همزمان با نخ هاي ديگر اجرا شوند و بخش‌هاي مختلف برنامه به صورت موازي اجرا شوند و كارايي برنامه‌ها بالا برود.

7.زبان جاوا يك زبان Cross Platform است ( پرتابل )

برنامه‌هاي جاوا را مي‌توان از يك پلتفرم به پلتفرم ديگر انتقال داد و در پلتفرم مقصد بدون اينكه نياز باشد دوباره كامپايل شوند اجرا كرد. فقط بايد در كامپيوتر مقصد jvm نصب شده باشد. با اين امكان ديگر لازم نيست كه برنامه نويسان نگران اين باشند كه برنامه نوشته شده قرار است در چه محيطي اجرا شود و سخت‌افزار و سيستم عامل مقصد چه چيزي است.

 

ماشين مجازي جاوا (Jvm) چيست؟

 در زبان‌هايي مانند سي و سي پلاس پلاس وقتي كه برنامه نويس برنامه‌اي را مي‌نوشت آن را مستقيماً به دستورات زبان ماشين كامپايل مي كرد. همين قضيه باعث بروز مشكلاتي مي‌شد. مثلاً معماري كامپيوتر ها و تعداد دستورالعمل هر كدام با كامپيوتر ديگر فرق داشت همچنين هر پلتفرم و هر سيستم عامل امكانات بخصوصي در اختيار برنامه نويسان قرار مي‌داد.

پس مجبور بوديم برنامه‌اي را كه مي نويسيم منطبق با همان محيط اجراي برنامه بنويسيم و قابليت حمل برنامه به محيط هاي ديگر از ما گرفته مي‌شد. با ظهور جاوا و معرفي ماشين مجازي اين مشكل برطرف شد. ماشين مجازي جاوا برنامه‌اي است كه بر روي سيستم نصب مي‌شود و محيطي را براي برنامه‌هاي جاوا فراهم مي‌كند كه بدون نگراني در مورد نوع ماشين و محيط اجرا و پلتفرم بتوانند اجرا شوند.

اين كار باعث مي‌شود كه برنامه نوشته شده در هر پلتفرمي به راحتي در يك پلتفرم ديگر قابل اجرا باشد. فقط هر محيط اجرا بايد jvm مربوط به خود را نصب كرده باشد. در اصل قضاياي مربوط به محيط اجرا و امكانات سيستم عامل و معماري سخت‌افزار و …. همه در jvm  بررسي مي‌شوند و پياده‌سازي هاي مربوطه انجام مي شود. در حقيقت ماشين مجازي جاوا يك لايه نرم افزاري است كه بين برنامه نوشته شده با جاوا و سيستم قرار مي‌گيرد و همه پيچيدگي هاي مربوط به پلتفرم را خودش مديريت مي‌كند و لازم نيست برنامه نگران اين مباحث باشد و بر روي هدف خود تمركز مي كند. 

بايت كد چيست؟

قبلاً گفتيم كه برنامه‌هايي كه به زبان جاوا نوشته مي‌شوند به زبان ماشين تبديل يا كامپايل نمي‌شوند. ولي برنامه نوشته شده به زبان جاوا به زبان(انگليسي) انسان بسيار نزديك است و قابل فهم براي كامپيوتر و jvm نيست. براي حل اين مشكل كدهاي جاوا به زباني تبديل مي‌شوند كه ماشين مجازي آن‌ها را مي فهمد.

به كدهايي كه توسط ماشين مجازي جاوا (jvm) قابل فهم است بايت كد گفته مي‌شود. به طور كلي برنامه‌هاي جاوا براي اجرا به بايت كد ها تبديل (كامپايل) مي‌شوند كه نتيجه اين عمل ساخته شدن فايل‌هايي با پسوند .class است و اين فايل‌هاي با پسوند class حاوي بايت كدهاي جاوا هستند. ماشين مجازي جاوا هم بايت كد ها را خط به خط خوانده و به زبان ماشين تفسير مي كند. هنگامي كه كدهاي زبان جاوا به بايت كد تبديل مي‌شوند بهينه سازي هايي در دستورات نوشته شده انجام مي‌شود كه سرعت و كارايي كد ها بالا تر برود.

تفاوت جاوا با جاوا اسكريپت چيست؟

از نظر اسمي جاوا و جاوا اسكريپت بسيار شبيه به هم هستند ولي بايد بدانيد كه اين دو زبان كاملاً با هم تفاوت دارند. جاوا اسكريپت در دهه 90 ميلادي توسط شركت Netscape توسعه داده شد و در ابتدا نام LiveScript را بر روي آن قرار داده بودند. زماني كه شركت نت اسكيپ متوجه شد كه كسي از زبان LiveScript استفاده نمي‌كند ولي محبوبيت زبان جاوا هر روز بيشتر مي‌شود نام آن را به JavaScript تغيير داد تا بتواند از موج محبوبيت جاوا براي زبان خودش نفعي برده باشد و موفق هم شد.

از نظر فني جاوا يك زبان برنامه نويسي قدرتمند است كه بر روي jvm اجرا مي‌شود ولي جاوا اسكريپت يك زبان اسكريپت نويسي است كه بر روي مرورگرها اجرا مي‌شود و بيشتر براي كار با front-end(بخش مربوط به مرورگر و تعامل با كاربر) مناسب مي‌باشد.

البته مي‌توان با استفاده از موتور هايي مانند nodejs براي سيستم هم با زبان جاوا اسكريپت برنامه ساخت. از نظر نوع زبان جاوا اسكريپت يك زبان مفسري (كامپايل نمي شود) است و گرامر آن با جاوا كاملاً متفاوت است. تنها شباهتي كه بين جاوا و جاوا اسكريپت وجود دارد اين است كه كدهاي هر دو شبيه به كدهاي زبان سي هستند و دستورات از زبان سي گرفته شده اند. ولي هم از نظر فني و هم از نظر كاربردي با هم كاملاً متفاوت هستند.

مطالعه بيشتر در مورد تفاوت جاوا و جاوااسكريپت

شي گرايي در جاوا چيست؟

وقتي مي‌گوييم جاوا يك زبان شي گرا است يعني براي نوشتن برنامه بايد از قواعد برنامه نويسي شي گرا در برنامه‌هاي جاوا استفاده كنيد. جاوا يك زبان كاملاً شي گرا است يعني به شما اجازه نمي‌دهد كه به غير از رويكرد شي گرايي رويكرد ديگري داشته باشيد. حال شي گرايي چيست؟ شي گرايي يا Object-Oriented Programming (OOP) يك الگوي برنامه‌نويسي است كه براي توسعه نرم‌افزارهاي پيچيده و قابل توسعه استفاده مي‌شود.

در اين الگو، برنامه‌نويسي از طريق تعريف شي‌ها انجام مي‌شود كه هر كدام شامل داده‌هاي خود و روش‌هايي براي كنترل و دسترسي به داده‌ها هستند. هر شي نمونه‌اي از يك كلاس است كه توسط برنامه‌نويس تعريف شده و مشخصات و رفتار آن شي توسط كلاس مشخص مي‌شود.
يكي از مزاياي شي گرايي، قابليت استفاده مجدد از كد است كه با استفاده از كلاس‌ها و شي‌هاي تعريف شده، برنامه‌نويسي انجام مي‌شود. همچنين، با استفاده از شي‌ها، برنامه‌نويس مي‌تواند براي هر شي تعريف شده، يك رفتار مشخصي را تعيين كند و اين باعث مي‌شود كه برنامه نهايي، به سادگي قابل فهم و قابل توسعه باشد.در شي گرايي، از اصطلاحاتي مانند ارث‌بري، پلي‌مورفيسم و كپسوله‌سازي نيز استفاده مي‌شود كه در كل به كمك آنها، كد برنامه به شكلي سازمان‌يافته، قابل فهم و قابل توسعه است.

زبان جاوا در كجا كاربرد دارد؟

زبان جاوا يكي از پركاربردترين زبان‌هاي برنامه‌نويسي در جهان است و در بسياري از زمينه‌هاي مختلف كاربرد دارد. در زير به برخي از كاربردهاي اين زبان اشاره مي‌كنم:

توسعه برنامه‌هاي كاربردي :  جاوا به عنوان يكي از زبان‌هاي پركاربرد براي توسعه برنامه‌هاي كاربردي استفاده مي‌شود. برنامه‌هاي اينترنتي، نرم‌افزارهاي موبايل، برنامه‌هاي دسكتاپ و بسياري از نرم‌افزارهاي ديگر از جاوا براي پياده‌سازي استفاده مي‌كنند.

توسعه وب :  جاوا به عنوان يك زبان برنامه‌نويسي سمت سرور براي توسعه برنامه‌هاي وب مورد استفاده قرار مي‌گيرد. ساختارهايي مانند Servlets، JSP و JSF براي توسعه برنامه‌هاي وب با استفاده از جاوا استفاده مي‌شوند.

توسعه بازي : جاوا به عنوان يكي از زبان‌هاي پركاربرد در توسعه بازي‌هاي كامپيوتري استفاده مي‌شود. بازي‌هاي بسياري مانند Minecraft، Runescape و Game of Thrones: Conquest با استفاده از جاوا توسعه داده شده‌اند.

توسعه برنامه‌هاي اندرويد : جاوا به عنوان زبان برنامه‌نويسي اصلي براي توسعه نرم‌افزارهاي اندرويد استفاده مي‌شود. اكثر نرم‌افزارهاي موبايل اندرويدي با استفاده از جاوا توسعه داده شده‌اند.

  1. راهكارهاي صنعتي و embedded system ها : با توجه به امكانات قابليت حمل و مديريت حافظه جاوا از آن در سيستم‌هاي اينترنت اشياء(IOT) و سيستم‌هاي embedded نيز استفاده مي‌شود مانند مودم ها و ماشين لباسشويي و كنترل ترافيك و ابزارهاي شبكه و  …

ابزارهاي توليد برنامه با جاوا چيست؟

براي توليد برنامه با جاوا نياز است كه در درجه اول jvm بر روي دستگاه نصب باشد و علاوه بر آن نياز به كامپايلر جاوا هم مي‌باشد كه كدهاي نوشته شده را به بايت كد كامپايل كند. همچنين كتابخانه‌هاي اصلي جاوا نيز لازم  است تا بتوان از آن‌كتابخانه ها كه از قبل آماده شده‌اند بسياري ازمشكلات برنامه را حل كرد. همه اين ابزارها در يك بسته به نام Java Development Kit (jdk) به معني كيت توسعه جاوا قرار داده شده است كه مي‌توانيد از اينترنت به صورت يك‌جا دانلود و نصب كنيد.


از ديگر ابزار هاي لازم براي توسعه جاوا يك محيط كد نويسي است كه به دو بخش تقسيم مي‌شود: ويرايشگر و IDE. براي توسعه جاوا مي‌توان از ويرايشگر هاي ساده مانند notepad ويندوز استفاده كرد و با استفاده از jdk آن را كامپايل و اجرا كرد. به غير از notepad ويندوز مي‌توان از هر ويرايشگر متني ديگر هم استفاده كرد مانند Atom , Visual Studio code , bracket , ….
ولي مسأله اي كه وجود دارد اين است كه اين‌ها فقط يك ويرايشگر ساده هستند (البته فرض مي‌كنيم از حالت خام ويرايشگر استفاده مي كنيم) و كمك زيادي در نوشتن و خطايابي و اجراي كد به ما نمي كنند. فرايند برنامه نويسي فرايندي زمان بر و حساس است و اگر ماشين نتواند كمك كند بسيار سخت خواهد شد.

به همين دليل نياز به يك ابزار قوي‌تر حس مي‌شود كه نام اين ابزار IDE يا محيط يكپارچه توسعه ناميده مي‌شود. در داخل IDE ها مي‌توان كد را نوشت و خطايابي كرد و آن را اجرا نمود. اين ابزار هم در نوشتن برنامه و هم در خطايابي به برنامه نويس بسيار كمك مي كند. براي جاوا IDE هاي متعددي وجود دارد كه از محبوب‌ترين آن‌ها مي‌توان به موارد زير اشاره كرد.

1. Eclipse يكي از محبوب‌ترين ابزارهاي توسعه جاوا كه قابليت‌هاي متنوعي مانند كدنويسي، اشكال‌زدايي و تجزيه و تحليل كد را ارائه مي‌دهد.

2. NetBeans  يك ابزار توسعه كامل براي توسعه برنامه‌هاي جاوا است. اين ابزار از زبان‌هاي ديگري مانند C، C ++ و HTML / CSS نيز پشتيباني مي‌كند.

3. IntelliJ IDEA ابزاري كارآمد براي توسعه برنامه‌هاي جاوا است كه قابليت‌هايي مانند اشكال‌زدايي، تحليل كد و كدنويسي پيشرفته را فراهم مي‌كند. من به طور شخصي از اين IDE استفاده مي كنم.

علاوه بر IDE ها نياز به ابزاري براي تست برنامه نوشته شده داريم تا ببينيم برنامه نوشته شده كيفيت و كارايي لازم را دارد كه براي اين كار Junit ابزار بسيار مفيدي خواهد بود. در پروژه هاي امروزي به دليل وجود كتابخانه‌هاي آماده زياد در پروژه اين نياز حس مي‌شود كه ابزاري وجود داشته باشد كه كتابخانه‌هاي آماده‌اي را كه در پروژه استفاده شده است را مديريت كند كه از بين آن‌ها مي‌توان به maven, gradle اشاره كرد.

تفاوت jdk, jre در جاوا چيست؟

Jdk را در بخش ابزار ها توضيح داديم و گفتيم كه بسته اي است كه شامل ماشين مجازي جاوا و كتابخانه‌هاي آماده همراه جاوا و كامپايلر جاوا (javac) و به طور كلي مواردي است كه براي برنامه نويسي جاوا لازم است. اما jre شامل كتابخانه‌ها و برنامه‌هايي است كه فقط در زمان اجراي برنامه‌هاي جاوا لازم است يعني ماشين مجازي جاوا و يك سري موارد كه هنگام اجراي برنامه‌هاي جاوا مورد نياز هستند. پس jre نسبت به jdk بسته كوچك‌تري است كه فقط براي اجرا شدن برنامه آماده جاوا استفاده مي‌شود ولي jdk شامل موارد بيشتري است كه براي برنامه نويسي زبان جاوا استفاده مي شود.

مطالعه بيشتر براي نصب jdk

تا كنون چه ويرايش هايي از جاوا منتشر شده است؟

تا كنون ۳ ويرايش از جاوا منتشر شده است كه هركدام براي منظور خاصي ارائه شده‌اند كه اين ويرايش ها عبارتند از J2SE , J2EE, J2ME كه هركدام را به صورت خلاصه توضيح داده ايم.

J2SE (Java 2 Standard Edition): اين ويرايش از جاوا براي توليد برنامه‌هاي تحت دسكتاپ و برنامه‌هاي سروري مورد استفاده قرار مي گرفت. اين ويرايش شامل كتابخانه‌هاي اصلي جاوا (Core) و ابزارها و ابزارهاي اجرايي آن‌ها مي‌باشد. اگر مي‌خواهيد برنامه دسكتاپ به همراه رابط كاربري (UI) و يا برنامه سروري بنويسيد اين ويرايش مناسب شما است.

J2EE (Java 2 Enterprise Edition): اين ويرايش براي توليد برنامه‌هاي تجاري مناسب است. در اين ويرايش همه امكانات J2SE قرار دارد به علاوه اينكه امكاناتي براي توليد برنامه‌هاي تحت وب و برنامه‌هاي توزيع شده و ساير برنامه‌هاي با اندازه هاي بزرگ در آن گنجانده شده است. J2EE به شما اين امكان را مي‌دهد كه بتوانيد برنامه‌هاي بسيار بزرگ با امنيت بالا و كارايي بالا توليد كنيد.

J2ME (Java 2 Micro Edition) : اين ويرايش زماني مورد استفاده قرار مي‌گرفت كه گوشي هاي موبايل نسل قبل از گوشي هاي هوشمند وجود داشت و شما برنامه‌هايي با پسوند jar بر روي گوشي خود نصب مي‌كرديد. اين ويرايش يك زيرمجموعه از J2SE بود كه برخي كتابخانه‌هاي جاوا را همراه خود داشت و در دستگاه‌هايي كه داراي محدوديت منابع سخت افزاري بودند استفاده مي‌شد.


ويرايش هايي كه گفته شد در حال حاضر به شكل گفته شده وجود ندارند و با نسخه هاي جديد جاوا جايگزين شده‌اند و نام J2EE به Java EE تغيير داده شده است و در حال حاضر J2SE به نام Core Java شناخته مي‌شود.

امكانات جاوا براي برنامه دسكتاپ چيست؟

مي‌دهند مانند ويرايشگر Microsoft word. حال با استفاده از جاوا مي‌توانيم برنامه‌هاي دسكتاپي توليد كنيم كه هم بر روي ويندوز و هم بر روي مك و هم بر روي لينوكس اجرا شوند. برنامه‌هاي دسكتاپ نيازمند طراحي رابط كاربري يا UI هستند. كه در جاوا كتابخانه‌ها و فريمورك هاي مختلفي براي توليد رابط كاربري وجود دارد كه محبوب‌ترين آن‌ها : JavaFX, Swing, SWT, AWT,  Jgoodies, مي‌باشد.

فريمورك هاي جاوا براي وب چيست؟

قبل از اينكه بگوييم فريمورك هاي وب جاوا چيست بهتر است بدانيم كه فريمورك چيست؟ فريمورك (framework) يا چهارچوب كاري مجموعه‌اي از ابزارها و كتابخانه‌ها وقالب هاي برنامه است كه امكان توليد برنامه را به ما مي دهد. فريمورك هاي وب ساختاري را در اختيار ما قرار مي‌دهد كه تا اپليكيشن هايي را براي وب بسازيم بدون اينكه درگير كارهاي تكراري و عمومي بشويم.
 امروزه استفاده از وب بسيار بيشتر از گذشته شده است و زبان‌هاي برنامه نويسي براي اينكه از بقيه عقب نباشند فريمورك هايي براي توليد برنامه‌هاي تحت وب ارائه كرده‌اند كه جاوا نيز از قافله عقب نمانده و فريمورك هاي قدرتمندي را براي طراحي و توسعه وب اپليكيشن هاي ارائه داده است كه تعداد آن‌ها بسيار زياد است ولي از بين آن‌ها معروف ترين آن‌ها عبارتند از: Spring, Struts, Java Server Faces (JSF) , Play, Vaadin

مطالعه بيشتر در مورد spring

مطالعه بيشتر در مورد spring boot

فريمورك هاي جاوا براي موبايل چيست؟

قبل از ظهور گوشي ها و تبلت هاي هوشمند جاوا با ويرايش J2ME دستي بر طراحي برنامه براي موبايل داشت اما بعد از اينكه گوشي ها و تبلت هاي هوشمند فراگير شدند بيشتر از گذشته از زبان جاوا براي برنامه نويسي استفاده شد. سيستم عامل اندرويد كه از جاوا به صورت كامل و اصلي‌ترين زبان پشتيباني مي‌كند.

از بين فريمورك هايي كه از جاوا براي طراحي برنامه‌هاي موبايل استفاده مي‌شود مي‌توان بهAndroid SDK اشاره كرد كه اصلي‌ترين بسته براي توليد برنامه‌هاي اندرويدي است اشاره كرد تا بتوان برنامه‌هاي قدرتمند اندرويدي را با آن توليد كرد. همچنين JavaFX Mobile كه با استفاده از امكانات JavaFX مي‌توان برنامه‌هاي مختلفي براي موبايل ساخت. همچنين فريمورك هايي وجود دارد كه منطق برنامه نويس را در قالب كدهاي javascript, html , css پياده‌سازي مي‌كنند ولي در پس زمينه از زبان جاوا استفاده مي‌كنند مانند React Native, PhoneGap, Ionic

برنامه نويسي بازي در جاوا چگونه است؟

با استفاده از جاوا به روش‌هاي مختلفي مي‌توان بازي‌هاي جذاب طراحي كرد. شما مي‌توانيد از قابليت‌هاي انيميشن و صدا و گرافيك هاي دو بعدي و سه بعدي در كتابخانه‌هاي UI استفاده كنيد و بازي بسازيد و يا از جاوا در موتورهاي بازي مانند Unity استفاده كنيد و بازي‌هاي با گرافيك بالا طراحي كنيد و يا از فريمورك هاي طراحي بازي جاوا استفاده كنيد. تعدادي از اين فريمورك ها عبارتند از: LibGDX و jMonkeyEngine و PlayN و LWJGL. 

برنامه نويسي هوش مصنوعي در جاوا چيست؟

براي اينكه بتوانيم برنامه‌هايي با قابليت‌هاي هوش مصنوعي با جاوا نوشت اول بايد با مفاهيم هوش مصنوعي آشنا باشيم و به نوعي با مدل ها و قواعد هوش مصنوعي و شاخه‌هاي متعدد آن‌ها آشنا باشيم. از شاخه‌هاي هوش مصنوعي مي‌توان به يادگيري ماشين و يادگيري عميق و پردازش زبان طبيعي و بينايي ماشين اشاره كرد. بعد از اينكه با مفاهيم هوش مصنوعي آشنا شديد مي‌توانيد از فريمورك هاي جاوا براي توسعه برنامه‌هاي هوش مصنوعي استفاده كنيد. تعدادي از اين فريمورك ها عبارتند از: TensorFlowو Keras و Deeplearning4j و Mahout و Java-ML

منظور از برنامه نويسي Big Data در جاوا چيست؟

با توجه به حجم زياد داده‌ها كه امروزه در صنايع مختلف نياز به ساز و كاري براي پردازش داده‌ها با حجم بسيار زياد است. براي پردازش و ذخيره سازي و آناليز داده‌هاي حجيم در جاوا فريمورك هاي متنوعي وجود دارد كه عبارتند از: Apache Hadoop و Apache Spark و Apache Flink و Apache Storm و Apache Cassandra و Apache Kafka

آيا يادگيري بانك هاي اطلاعاتي در كنار برنامه نويسي جاوا لازم است؟

برنامه‌هاي متنوعي امروزه توليد و استفاده مي‌شود اما از بين برنامه‌ها تعداد بسيار زيادي از برنامه‌ها نياز دارند كه داده‌هاي خود را در يك فضاي منسجم ذخيره كنند و به سرعت آن‌ها را واكشي كرده و از آن‌ها استفاده كنند.تقريبا همه  برنامه‌هاي تحت وب و برنامه‌هاي حسابداري و فروشگاهي و ماليات و اتوماسيون اداري و .. . همه اطلاعاتي را ذخيره مي‌كنند از آن اطلاعات استفاده مي كنند.

بنابراين بانك هاي اطلاعاتي را به صورت حياتي لازم دارند. اگر مي‌خواهيد يك برنامه نويس قوي جاوا باشيد بايد حتماً كار كردن و ارتباط با بانك هاي اطلاعاتي را ياد بگيريد. امروزه بانك هاي اطلاعاتي مختلفي وجود دارند كه در هر پروژه ممكن است از يك يا چند عدد از اين بانك هاي اطلاعاتي استفاده شود. در جاوا مي‌توان از انواع بانك هاي اطلاعاتي رابطه‌اي و غير رابطه‌اي استفاده كرد. از جمله اين بانك هاي اطلاعاتي مي‌توان به MySQL , Oracle, Sql Server, Postgres, Mongodb اشاره كرد. 

بازار كار و حقوق برنامه نويسي جاوا چگونه است؟

يادگيري جاوا شما را در مسيري قرار مي‌دهد كه داراي سيل عظيمي از فرصت هاي شغلي است. به خاطر فراگيري بسيار زياد اندرويد جاوا براي توسعه برنامه‌هاي اندرويدي بسيار مناسب مي باشد. حتي با وجود ظهور زبان كاتلين زبان جاوا هنوز يك زبان بسيار كاربردي براي توليد برنامه‌هاي اندرويدي و برنامه‌هاي موبايل است.

همچنين در سازمان هاي بزرگ كه امنيت داده‌ها و قابليت اعتماد براي آن سازمان ها مهم است زبان جاوا بسيار مورد استفاده قرار مي‌گيرد. سازمان هاي دولتي هم استقبال بسيار زيادي از جاوا مي كنند. پس با استفاده از اين زبان قادر خواهيد بود به سرعت شغل مناسب با حقوق مناسب پيدا كنيد و به سرعت در كار خود پيشرفت كنيد.

آيا يادگيري جاوا براي مهاجرت مناسب است؟

زبان جاوا هنوز به صورت گسترده در بسياري از كشورهاي دنيا استفاده مي‌شود و در بسياري از صنايع از جمله صنايع بانكي و مالي و در اپليكيشن هاي زيادي مورد استفاده قرار مي گيرد. اگر به آگهي هاي استخدام در سايت‌هاي مانند LinkedIn سر بزنيد تعداد زيادي از آگهي هاي برنامه نويس جاوا را خواهيد يافت. پس مي‌توانيد با يادگيري جاوا شرايط را براي مهاجرت ساده‌تر كنيد. از شركت هاي بزرگي كه از جاوا استفاده مي‌كنند عبارتند از: Amazon و eBay و LinkedIn و Uber و Airbnb و Twitter و Netflix و Google و Spotify و Dropbox

آيا با وجود زبان‌هاي مانند كاتلين باز هم از جاوا استفاده مي شود؟

زبان‌هاي متفاوتي بر روي JVM ارائه شده‌اند كه يكي از آن‌ها كاتلين است. كاتلين در حال رشد است ولي هنوز جاوا يكي از محبوب‌ترين زبان‌هاي برنامه نويسي در دنيا است. با توجه به استفاده گسترده از جاوا در سازمان ها و صنايع مختلف جاوا بسيار بازار خوبي دارد و از آن استفاده مي شود. همچنين شركت اوراكل قابليت‌هاي جالب بسياري را سالانه به اين زبان اضافه مي‌كند كه مورد استقبال برنامه نويسان زيادي است.

آيا جاوا زبان خوبي براي شروع يادگيري برنامه نويسي است؟

بله جاوا يك انتخاب بسيار عالي براي يادگيري برنامه نويسي است. به خاطر اينكه جاوا يك زبان شي گرا است قابل فهم تر است چون از ماهيت اشياء در فضاي واقعي الهام مي‌گيرد. همچنين داكيومنت ها و منابع يادگيري بسياري براي جاوا وجود دارد كه در صورت وجود مشكل و سؤال مي‌توان از آن استفاده كرد. سينتكس جاوا شبيه به خانواده زبان سي است و با يادگيري آن مي‌توانيد كد ها و مفهوم ساير زبانهاي خانواده سي و javascript و بسياري ديگر از زبانها را به سادگي ياد بگيريد. اگر جاوا را براي يادگيري انتخاب كنيد برنامه نويسي را به صورت اصولي ياد خواهيد گرفت.

مطالعه بيشتر : 15 نكته در مورد يادگيري جاوا

پيش نياز يادگيري جاوا چيست؟

براي اينكه يادگيري جاوا را شروع كنيد قبل از آن نياز به يك سري پيش نياز ها است. اولين آن يك سيستم كامپيوتري است كه بتوانيد كدها را در داخل آن بنويسيد و اجرا و خطايابي كنيد. سپس به يك خط اينترنت نياز داريد كه آموزش‌ها را دريافت كرده و درصورت مشكل به دنبال راه حل آن در وب باشيد. قبل از اينكه برنامه نويسي را شروع كنيد نياز است كه تا حدودي بلد باشيد با كامپيوتر كار كنيد و با محيط آن آشنا باشيد و بهتر است با نصب نرم‌افزار ها و جستجو در وب و كار با برنامه‌هاي عمومي نيز آشنا باشيد.

همچنين داشتن دانش ابتدايي در مورد روش پردازش كامپيوتر و وظايف رم و پردازنده آشنا باشيد. همچنين دانش زبان انگليسي هميشه در برنامه نويسي مي‌تواند شما را چندين قدم به جلو تر ببرد. نكته آخر اين است  كه براي يادگيري برنامه نويسي (چه جاوا و چه هر زبان ديگري) نيازمند حوصله و وقت و پشتكار هستيد.

چگونه يادگيري جاوا را شروع كنم؟

حال كه با زبان جاوا آشنا شده‌ايد و اگر تصميم داريد كه جاوا را ياد بگيريد سؤال پيش مي‌آيد كه از كجا بايد شروع كرد. براي شروع جاوا ابتدا بايد يك سيستم كامپيوتري داشته باشيد (روميزي يا لپتاپ) و از منابع و آموزش‌هاي موجود يكي را انتخاب كنيد و ابزارهاي مورد نياز را كه توضيح داديم نصب كنيد و يادگيري را شروع كنيد.

فقط بايد به اين نكته دقت كنيد كه يادگيري برنامه نويسي نيازمند تمرين بسيار زياد است پس هر چقدر مي‌توانيد تمرين كنيد و براي خودتان مسأله طرح كنيد و برنامه آن را بنويسيد. يكي از بهترين گزينه هاي به عنوان منبع يادگيري جاوا دوره آموزش جاوا موجود در سايت توسينسو است كه جاوا را از شروع تا سطح پيشرفته آموزش داده است و مثال‌ها و پروژه هاي زيادي را به همراه خود دارد همچنين در صورت ايجاد مشكل و ابهام مي‌توانيد از پشتيباني و راهنمايي استاد دوره استفاده كنيد.

يادگيري جاوا چقدر زمان مي خواهد؟

اينكه بتوانيم يك نسخه براي يادگيري جاوا به همه ارائه بدهيم كاري غيرممكن است. نمي‌توان به همه گفت كه با طي چه مدت زماني مي‌تواند يك برنامه نويس ماهر جاوا شود. زيرا كه فاكتور هاي بسياري را بايد در نظر گرفت فاكتور هايي مانند دانش پس زمينه افراد و شور اشتياق آن‌ها براي يادگيري و مدت زماني كه براي يادگيري اختصاص مي‌دهند و پشتكار آن‌ها و مقدار تمرين و بسياري از موارد ديگر را مي‌توان در نظر گرفت. ولي به صورت كلي مي‌توان گفت با اختصاص روزانه 5 ساعت و اختصاص يك حدوداً يك سال تمرين و مطالعه مداوم مي‌توانيد يك برنامه نويس جاواي موفق شويد.خب اميدوارم كه اين مطلب توانسته باشد ديد كلي در مورد زبان جاوا در اختيار شما عزيزان قرار بدهد. مشتاق ديدن نظرات شما هستم.


برچسب: X آموزش سي شارپ، آموزش C# ،دوره سي شارپ، دوره آموزشي سي شارپ آمو،زش جاوا، آموزش Java، آموزش زبان برنامه نويسي جاوا، آموزش زبان برنامه نويسي سي شارپ، آموزش جنگو ،دوره آموزشي جنگو،
امتیاز:
 
بازدید:
+ نوشته شده: ۲۷ ارديبهشت ۱۴۰۲ساعت: ۰۳:۰۸:۳۷ توسط:محمد نصيري موضوع:

{COMMENTS}
ارسال نظر
نام :
ایمیل :
سایت :
آواتار :
پیام :
خصوصی :
کد امنیتی :