جاوا یک زبان برنامه نویسی ساده، پرطرفدار و قابل اعتماد است. برنامههایی که با زبان جاوا تولید میشوند، بر روی بیش از 56 میلیارد دستگاه در جهان از کامپیوتر شخصی، تلفن همراه، تبلت، ساعت و کارت اعتباری گرفته تا تلویزیون هوشمند، دوربینهای دیجیتال، کنسولهای بازی و خودپرداز اجرا میشوند. بنابراین زبان برنامه نویسی جاوا را میتوان یک زبان همه منظوره با قابلیت اجرای روی انواع بسترها و پلتفرمها به شمار آورد. زبان جاوا در تمامی رتبه بندیهای انجام شده روی زبانهای برنامهنویسی، همواره جزء سه زبان برتر بوده و از محبوبیت زیادی بین برنامهنویسان برخوردار است. در این مقاله به معرفی این زبان برنامهنویسی محبوب و پرقدرت خواهیم پرداخت.
تاریخچه جاوا
جاوا (Java) به رهبری جیمز گاسلینگ (James Gosling) و تیمی از محققان به نام تیم سبز، در شرکت Sun Microsystems متولد شد. جاوا جزیرهای در اندونزی است که اولین قهوه با نام جاوا در آن تولید شد و نام جاوا توسط جیمز گاسلینگ هنگام نوشیدن یک فنجان قهوه در نزدیکی دفترش انتخاب شد. در سال 1991 هدف اولیه معرفی زبان جاوا، ایجاد یک زبان برنامهنویسی جدیدی جهت ارتباط با دستگاههای الکترونیکی دیجیتال مانند ست تاپ باکس، تلویزیون و غیره بود اما خیلی زود تمرکز اصلی تیم به ایجاد یک جایگاه جدید، یعنی وب جهانی (World Wide Web) تغییر کرد.
در 27 ژانویه 2010 شرکت Sun Microsystems توسط شرکت Oracle خریداری شد. تا قبل از این، شرکت Sun Microsystems تنها یک فروشنده نرم افزار و دارای خطوط تولید سخت افزاری، مانند SPARC Enterprise بود. حال توسعه جاوا تحت پوشش شرکت Oracle انجام میگیرد. اصول ایجاد زبان برنامه نویسی جاوا عبارتند از: "سادگی، قابلیت حمل، مستقل بودن از بستر اجرایی، امنیت بالا، کارایی بالا، چند نخی بودن (Multithreaded)، شی گرا (Object-Oriented)، تفسیر (Interpreted) بجای کامپایل (compile) و پویایی". در ادامه به تعریف دقیق این ویژگیها پرداخته خواهد شد.
ویژگی های زبان برنامه نویسی جاوا
زبان برنامه نویسی جاوا دارای ویژگیهای زیادی است که بر محبوبیت آن بین برنامهنویسان میافزاید در این قسمت به بررسی مهم ترین ویژگی های زبان برنامه نویسی جاوا میپردازیم.
سادگی زبان جاوا
به گفته Sun Microsystems، زبان جاوا یک زبان برنامهنویسی ساده است، زیرا دستورات جاوا بر اساس زبان برنامه نویسی ++C است. بنابراین برنامه نویسان بعد از ++C آن را آسانتر یاد میگیرند، همچنین یادگیری جاوا بسیار آسان و دستورات آن ساده، شفاف و قابل درک است. علت این سادگی، حذف ویژگیهای پیچیده و کم کاربرد در جاوا است، به عنوان مثال، اشاره گرهای (Pointer) صریح، بارگذاری بیش از حد عملگر (Operator Overloading) و غیره همگی حذف شدهاند. همچنین در زبان برنامه نویسی جاوا نیازی به حذف اشیاء بدون ارجاع نیست زیرا در جاوا یک جمعآوری زباله (Garbage Collection) خودکار وجود دارد.
شی گرایی (Object Oriented) زبان جاوا
همه چیز در جاوا یک شی (Object) است و یک شی عبارتست از هر موجودیتی که دارای برخی ویژگیها و برخی رفتارها است. به عنوان مثال دانشجو یک شی است، زیرا دارای تعدادی ویژگی مانند نام، شماره دانشجویی، سن، سال ورود و ... و همچنین دارای تعدادی رفتار مانند انتخاب درس، ثبت نام، انصراف و ... است. جاوا یک زبان برنامه نویسی شی گرا است. شی گرا به این معنی است که ما نرم افزار خود را به عنوان ترکیبی از انواع مختلف اشیاء سازماندهی میکنیم که هم دادهها و هم رفتار را در برمیگیرند. برنامه نویسی شی گرا (OOP) روشی است که توسعه و نگهداری نرم افزار را با ارائه برخی قوانین، ساده میکند و این ویژگی بزرگی برای زبان جاوا محسوب میشود. مفاهیم اولیه OOPها عبارتند از: شی (Object)، کلاس (Class)، وراثت (Inheritance)، چندریختی (Polymorphism)، انتزاع (Abstraction) و کپسوله سازی (Encapsulation).
ماشین مجازی جاوا یا Java Virtual Machine
یک برنامه که به زبان جاوا نوشته میشود (با فرمت java.) بعد از کامپایل به فرمت بایت کد bytecode (با فرمت class.) تبدیل میشود. بایتکد روی هر ماشین دلخواهی که برنامه ماشین مجازی جاوا (JVM) روی آن نصب شده باشد، قابل اجرا خواهد بود. بنابراین جاوا یک زبان برنامه نویسی مستقل از پلتفرم (Platform Independent) است که کدی که یک بار نوشته شده را بارها میتوان در سیستمهای مختلف اجرا نمود. در حقیقت شعار اصلی زبان جاوا با عنوان (یک بار بنویس و هر جا اجرا کن) یا (write once run anywhere) با JVM امکانپذیر شده است. JVM یک برنامه است که کامپیوتر را مستقل از سیستم عاملی که روی آن نصب است، قادر میسازد تا برنامههای جاوا و همچنین برنامههای نوشته شده به زبانهای دیگر را که در بایتکد جاوا نیز کامپایل شدهاند، اجرا کند. از طرفی برنامهنویسانی که از کیت توسعه جاوا یا (JDK) Java Development Kit استفاده میکنند، نیازی به نگرانی در مورد ویژگیهای خاص پلتفرم سختافزاری نخواهند داشت.
قابلیت حمل (Portability) زبان جاوا
جاوا بر روی پلت فرمهای گوناگونی قابل اجرا است، از دستگاه خودپرداز و ماشین رختشویی گرفته تا سرورهای سولاریس با قابلیت پشتیبانی از ۱۰۲۴ پردازنده (CPU) برای پردازش، همگی از جاوا استفاده میکنند. بنابراین جاوا باید قابل حمل باشد تا به شما کمک کند تا بایت کد جاوا را به هر پلتفرم دلخواهی منتقل کنید و نیازی به اجرا نداشته باشید. علت این امر آن است که بایت کد بجای کامپایل، تفسیر می شود. بنابراین کد نوشته شده به زبان جاوا یکبار کامپایل شده و بارها روی پلتفرمهای مختلف تفسیر میشود.
گستردگی انجمن ها توسعه دهندگان جاوا
یکی از موضوعات مهم در انتخاب یک زبان برنامه نویسی تعداد برنامهنویسانی است که در آن حوزه برنامهنویسی میکنند. هر چه جامعه آماری و انجمن برنامهنویسان یک زبان از تعداد بالاتری برخوردار باشند، قطعا رفع مشکلاتی که یک برنامهنویسی با آن مواجه میشود، سادهتر خواهد بود. در حال حاضر جامعه آماری برنامهنویسان جاوا حدود 17 میلیون محسوب میشود که جامعه نسبتا بزرگی را تشکیل میدهد.
مدیریت نخ ها در جاوا (Multi-Threading)
یک نخ (Thread) مانند یک برنامه مستقل است که همزمان با سایر نخهای دیگر اجرا میشود. ما میتوانیم برنامههای جاوا را به شکلی بنویسیم که با تعریف چندین نخ به طور همزمان با وظایف زیادی سروکار داشته باشد. مزیت اصلی چند نخی یا Multi-threading این است که حافظه را برای هر نخ اشغال نمیکند و از یک فضای حافظه مشترک برای نخها استفاده میکند.
کارایی اجرای یک برنامه جاوا
جاوا سریعتر از سایر زبانهای برنامهنویسی سنتی تفسیر شده است زیرا بایت کد جاوا "نزدیک" به کد اولیه است. گرچه هنوز هم کمی کندتر از یک زبان کامپایل شده مانند ++C است، اما به عنوان یک زبان تفسیری از سرعت قابل توجهی در اجرا برخوردار است.
امنیت جاوا
یک از ویژگی های جاوا، امنیت این زبان برنامه نویسی است. با زبان جاوا میتوان سیستمهایی عاری از ویروس را توسعه دهیم. علت امن بودن جاوا آن است که اولاً اشارهگر صریح ندارد دوماً برنامههای جاوا در داخل جعبه ماشین مجازی اجرا میشوند، از سویی دیگر اجزای ایجاد امنیت در جاوا به شرح زیر است:
- Classloader :Classloader در جاوا بخشی از محیط اجرای جاوا یا Java Runtime Environment (JRE) است که برای بارگذاری پویا کلاسهای جاوا در ماشین مجازی جاوا استفاده میشود. با جدا کردن بسته (Package) برای کلاسهای سیستم فایل محلی از آنهایی که از منابع شبکه Import میشوند، امنیت را افزایش میدهد.
- Bytecode Verifier: قطعات کد را برای کد غیرمجازی که میتواند دسترسی صحیح به اشیاء را نقض کند، بررسی میکند.
- Security Manager: تعیین میکند که چه منابعی از یک کلاس به خواندن و نوشتن در دیسک محلی دسترسی دارد.
زبان جاوا به صورت پیش فرض این موارد امنیتی را رعایت میکند علاوه بر آن برخی از موارد امنیتی نیز میتواند توسط یک توسعه دهنده برنامه به طور صریح با SSL، JAAS، Cryptography و غیره ارائه شود.
برنامه نویسی توزیع شده
جاوا یک زبان مناسب برای سیستم های توزیع شده است و برنامه نویسی را برای کاربران برای ایجاد برنامههای کاربردی توزیع شده در جاوا تسهیل میکند. RMI و EJB برای ایجاد برنامههای کاربردی توزیع شده استفاده میشوند. این ویژگی جاوا باعث میشود که بتوان با فراخوانی متدها از هر ماشینی در بستر اینترنت به فایلها دسترسی پیدا کرد.
کاربرد زبان برنامه نویسی جاوا
زبان برنامه نویسی جاوا کاربردهای گوناگونی دارد که در اینجا به برخی از مهم ترین آنها اشاره شده است:
رابط کاربری گرافیکی
جاوا دارای ویژگیهای زیادی است که به توسعه GUI تمایل دارد. بستههای خاصی مانند Abstract Windowing Toolkit، JavaFX و Swing وجود دارد که به توسعه دهندگان کمک میکند تا اجزای مختلف GUI پیاده سازی کنند. Swing کمی پیشرفته است که شامل گزینههایی برای توسعه عناصر GUI حرفهای مانند درختان، جداول، پانلهای برگهای و لیستها است.
برنامه های کاربردی برای موبایل
هر زمان درباره توسعه برنامه های کاربردی برای اندروید صحبت میشود، Android Studio مطرح میشود با این حال پس از ظهور Flutter، برنامههای تلفن همراه نیز میتوانند با Dart توسعه داده شوند. اما از زبان جاوا هم برای برای توسعه برنامههای اندروید استفاده میشود و طیف گستردهای از برنامههای جاوا موبایل از آن بهره میبرند. کیت توسعه نرمافزار اندروید یا (ADK) Development Kit Android ابزار اصلی توسعهدهندگان برای برنامه نویسی اندروید و تولید برنامههایی است که روی موبایل نصب میشوند. جاوا با کاتلین (Kotlin) سازگار است و این امر بر استفاده بیشتر از جاوا میانجامد.
سیستم های تعبیه شده (Embedded Systems)
بسیاری از برنامههای الکترومکانیکی از سیستمهای تعبیه شده مانند میکروچیپ و مینی کامپیوتر برای انجام وظایف اختصاصی در یک سیستم استفاده میکنند. برخی از سیستمها مانند سیم کارتها و تلویزیونها هنوز از جاوا به عنوان زیربنای اصلی خود استفاده میکنند و جاوا به عنوان هسته اصلی برای دستگاههای تلویزیونی و دستگاههای پخش دیسک Blu-Ray عمل میکند.
برنامه های کاربردی وب جاوا
جاوا به شما در ایجاد نرم افزار Enterprise کمک میکند. این برنامهها میتوانند از یک برنامه ساده حضور غیاب کارکنان در بستر شبکه گرفته تا پورتال سازمانی، بزرگ و پرکاربرد باشد. جاوا همچنین دارای بستههای داخلی مانند Servlets، Struts و JSP است. کدگذاری و درک همزمان این بستهها آسان است. این فناوریها همچنین امنیت بالایی را ارائه میدهند و امکان توسعه برنامههای کاربردی مربوط به سلامت، امنیت اجتماعی، آموزش و غیره را فراهم میآورند. به عنوان نمونه BroadLeaf، که یک وب سایت تجارت الکترونیک بزرگ است، توسط جاوا توسعه یافته است.
برنامه نویسی سمت سرور
برنامه نویسی سمت سرور (Server Side) در وهله اول چیست؟ به بیان ساده، چارچوبی است که به توسعه محیط سرور و برنامههای کاربردی برای وب کمک میکند. این برنامه دارای مجموعهای از اجزا است که از طریق APIAPI چیست؟ همه چیز درباره api یا رابط برنامه نویسی کاربردیاین مقاله عالی بررسی کرده که API چیست و چه کاربردی دارد و چگونه می توان از api ها در برنامه های خود استفاده نمود. همچنین استاندارد api و کاربرد api بررسی شده از پیش تعیین شده برای آن پلت فرم برای توسعه دهندگان قابل دسترسی است. برای فناوریهای سمت سرور مانند Apache، JBoss، GlassFish و غیره از جاوا استفاده میشود. در مورد سرورهای Java Application، سرور مانند یک ماشین مجازی توسعه یافته عمل میکند. از یک طرف اتصالات پایگاه داده و از طرف دیگر سرویس گیرنده وب اختصاص داده شده را کنترل میکند.
جاوا همچنین با برنامههای عظیمی در خدمات برنامه تجاری مانند WebLogic، WebSphere ظاهر میشود. با این حال، در مورد سرور وب، این یک نرم افزار/سخت افزار سرور است که درخواستهای مشتری را در WWW (شبکه جهانی وب) برآورده میکند. وظیفه ذخیره، پردازش و تحویل صفحات وب به مشتریان/کاربران را بر عهده دارد. ارتباط با استفاده از درخواست HTTP انجام میشود. برخی از برنامههای وب سرور بسیار محبوب مانند Tomcat، Simpoe، Rimfaxe Web Server همه با استفاده از جاوا توسعه یافتهاند.
برنامه های کاربردی علمی جاوا
MATLAB یکی از کاربردهای علمی رایج است که شامل موارد استفاده از جاوا میشود. آنها از جاوا برای UI و سیستم اصلی استفاده میکنند. زیرا جاوا قابلیت حمل بالا و نگهداری کمی دارد. از این رو برنامههای کاربردی سریع و قابل اعتماد هستند و میتوانند با حجم زیادی از دادهها کار کنند.
فناوری های کلان داده
جاوا سریع، قابل اعتماد و قوی است که برای بسیاری از برنامهها برای تغییر و بررسی بیگ دیتا یا کلان دادهبیگ دیتا (big data) یا کلان داده چیست؟ کاربردهای بیگ دیتااین صفحه فوق العاده به معرفی 0 تا 100 بیگ دیتا (big data) یا همان کلانداده پرداخته. بطور خلاصه بیگ دیتا به تحلیل و پردازش حجم زیادی از داده ها میپردازد مفید است. با کمک چارچوب هایی مانند Apache Mahout ،Apache Spark، Java JFreechart که هنگام کار بر روی دادههای بزرگ مفید هستند، جاوا جای خود را به عنوان یک زبان ارزشمند برای برنامههای بزرگ داده ذخیره میکند. یکی از دلایل اصلی جاوا به عنوان زبان اصلی بسیاری از این فناوریها این است که جایگاه جاوا در جوامع منبع باز (Open Source) تثبیت شده است.
اجزای اصلی زبان برنامه نویسی جاوا
یک برنامه نویس جاوا برنامهای را به زبان کد منبع (Source Code) که تنها توسط انسان قابل درک و خواندن است مینویسد اما CPU یا تراشهها هرگز کد منبع نوشته شده در هیچ زبان برنامهنویسی را درک نمیکنند. این کامپیوترها یا تراشهها فقط یک چیز را درک میکنند که به آن زبان ماشین یا کد ماشین (Machine Code) میگویند. این کد های ماشین در سطح CPU اجرا می شوند. بنابراین، کدهای ماشین برای مدلهای دیگر CPU متفاوت خواهند بود. همه این عملکردها در داخل سه مؤلفه پلتفرم جاوا رخ میدهند که در ادامه این سه مولفه بررسی میشوند.
کیت توسعه جاوا یا (JDK) Java Development Kit
یک محیط توسعه نرم افزار است که برای ساخت اپلتها و برنامههای جاوا استفاده میشود و توسعه دهندگان جاوا میتوانند از آن در Windows، macOS، Solaris و Linux استفاده کنند. JDK به آنها در کدنویسی و اجرای برنامههای جاوا کمک میکند. JDK شامل ابزارهای مورد نیاز برای نوشتن برنامههای جاوا و محیط اجرای جاوا یا Java Run Environment (JRE) برای اجرای آنها، یک کامپایلر، راهانداز برنامه جاوا، Appletviewer و غیره است. کامپایلر کد نوشته شده در جاوا را به بایت کد تبدیل میکند. راهانداز برنامه جاوا یک JRE را باز میکند، کلاس لازم را بارگیری میکند و متد اصلی (main) آن را اجرا میکند.
ماشین مجازی جاوا یا Java Virtual Machine (JVM)
ماشین مجازی جاوا (JVM) موتوری است که یک محیط زمان اجرا برای هدایت کد جاوا یا برنامههای کاربردی فراهم میکند و بایت کد جاوا را به زبان ماشین تبدیل میکند. JVM بخشی از Java Run Environment (JRE) است. در سایر زبانهای برنامهنویسی، کامپایلر کد ماشینی را برای یک سیستم خاص تولید میکند. با این حال، کامپایلر جاوا، کدی را برای یک ماشین مجازی به نام ماشین مجازی جاوا تولید میکند.
محیط اجرای جاوا یا Java Run Environment (JRE)
JRE نرم افزاری است که برای اجرای نرم افزارهای دیگر طراحی شده است. JRE شامل کتابخانههای کلاس، کلاس لودر و JVM است. به زبان ساده، اگر میخواهید یک برنامه جاوا را اجرا کنید، به JRE نیاز دارید. اگر برنامهنویس نیستید، برای اجرای برنامههای جاوا نیازی به نصب JDK ندارید. JRE شامل کتابخانههای کلاس، JVM و سایر فایلهای پشتیبانی میشود. این شامل ابزاری برای توسعه جاوا مانند دیباگر، کامپایلر و غیره نیست. JRE از کلاسهای بسته مهمی مانند ریاضیات، Swing، Util، Lang، Awt و کتابخانههای زمان اجرا استفاده میکند بنابراین اگر اپلتهای جاوا را اجرا کنید، JRE باید در سیستم شما نصب باشد.
نصب جاوا
برای برنامه نویسی جاوا به نصب نرم افزار JDK و یک محیط برنامهنویسی مانند Eclipse نیاز است. برای نصب جاوا به لینکهای زیر مراجعه نمایید:
محیط برنامه نویسی جاوا
محیط توسعه یکپارچه یا Integrated Development Environment (IDE) محیطی است که برنامهنویسان با استفاده از آنها میتوانند بسیار کاربردیتر و حرفهایتر از ویرایشگرهای متنی ساده، کدهای خود را ایجاد نمایند. IDE معمولاً قابلیتهای زیادی مانند پیشنهاد کلمات کلیدی، اشکالزدایی، ویرایش سریع، مشخص سازی خطاهای نحوی و ... را دارا میباشند. در ادامه بهترین IDE های زبان برنامه نویسی جاوا معرفی میشوند.
محیط های توسعه ی معروف جاوا
از محیطهای توسعهی معروف جاوا میتوان به NetBeans ،Eclipse و IntelliJ اشاره نمود. انتخاب IDE مناسب به کاربرد و راحتی برنامهنویس بستگی دارد. بحث در مورد اینکه چقدر IDE برای پروژه مفید است، خارج از موضوع این مقاله است اما در ادامه به معرفی اجمالی هر کدام از این IDEها خواهیم پرداخت.
NetBeans
NetBeans دارای جامعه بزرگی از توسعه دهندگان جاوا، از جمله توسعه دهندگان حرفهای سیستمهای جاسازی شده، وب، موبایل، برنامههای کاربردی دسکتاپ و غیره است. NetBeans به عنوان یک پروژه دانشجویی در جمهوری چک در سال 1996 شروع به کار کرد. با این حال، اولین نسخه آن در اوایل سال 2014 منتشر شد. NetBeans به طور کامل به زبان جاوا نوشته شده است و از ویندوز، مک، اوراکل، سولاریس و لینوکس پشتیبانی می کند. از امکانات آن میتوان به Smart Reader جهت ارائه پیشنهاداتی برای اهداف اشکال زدایی، پشتیبانی از MAVEN به صورت built-in، پشتیبانی از زبانهای دیگر مانند ++C، C و PHP برای سمت سرور و کاربری آسان اشاره نمود و از محدودیت های NetBeans میتوان به پیچیدگی در استفاده از حافظه و پشتیبانی رسمی محدود اشاره نمود.
Eclipse
Eclipse را IBM توسعه داد و آن را در اواخر سال 2001 منتشر کرد. Eclipse دارای چندین پلاگین و ویژگی است که هدف آن توسعه سریعتر است. هیچ یک از IDEهای دیگر به پای تعداد پلاگینهایی که Eclipse وجود دارد نخواهد رسید. Junit، تست، MAVEN، Spring Framework و Subversion پلاگینهای محبوب Eclipse هستند. از امکانات آن میتوان به بینش کد یا Code Insight جهت سریعتر کردن فرآیند کدنویسی و ارائه توصیه، ارائه ابزارهای پیشرفته مانند ویژگی Docker، پشتیبانی از زبانهای دیگر مانند C، C++، PHP، HTML و غیره اشاره نمود. از محدودیت های Eclipse میتوان به راه اندازی مجدد پس از افزودن پلاگین، استفاده از حافظه بالا و کندی آن اشاره نمود.
IntelliJ
IntelliJ یک IDE مبتنی بر جاوا است که شرکتهای بزرگ از آن استفاده میکنند. محیط توسعه ویژگیهای منحصربهفردی را در سطح سازمانی ارائه میدهد، مانند نمایهسازی کد منبع هوشمند، Refactoring، قابل اعتماد و تجزیه و تحلیل کد پویا. این IDE در دو نسخه موجود است، نسخه رایگان و نسخه نهایی پیشرفته که نسخه پیشرفته متناسب با نیازهای شرکتها ساخته شده است. از امکانات آن میتوان به جریان تجزیه و تحلیل دادهها، پیمایش موارد تکراری، تشخیص خطا، کنترل نسخه با گسترش پشتیبانی آن از GitHub اشاره نمود. از محدودیت های IntelliJ میتوان به زمانبر بودن نمایه سازی کد در پروژه های پیچیده، وجود بسیاری از افزونههای غیر ضروری به طور پیش فرض و نیز نیازمندی به سیستم با قابلیت بالا در هنگام نصب اشاره نمود.
پلتفرم های مختلف جاوا
چهار نوع پلتفرم مختلف برای زبان برنامه نویسی جاوا وجود دارد:
- پلتفرم جاوا استاندارد یا Java Standard Edition (Java SE): جاوا SE، کارکرد اصلی زبان برنامه نویسی جاوا را ارائه میدهد. این پلتفرم تمام انواع (Type) و اشیای پایه را برای کلاسهای سطح بالا تعریف میکند و برای شبکه، امنیت، دسترسی به پایگاه داده، توسعه رابط کاربری گرافیکی (GUI) و تجزیه XML استفاده میشود.
- پلتفرم جاوا سازمانی یا Java Enterprise Edition (Java EE): محیطی برای توسعه و اجرای برنامههای شبکه با مقیاس پذیر بالا (Large-Scale)، چند لایه (Multi-Tiered)، قابل اعتماد (Reliable) و امن (Secure) ارائه میدهد.
- پلتفرم زبان برنامه نویسی جاوای میکرو یا Java Programming Language Micro Edition (Java ME): یک ماشین مجازی کوچک و سبک ارائه میدهد که برنامههای زبان برنامهنویسی جاوا را بر روی دستگاههای کوچک مانند تلفنهای همراه اجرا میکند.
- پلتفرم JavaFX: پلتفرمی برای توسعه برنامههای کاربردی اینترنتی است که از رابط کاربری سبک وزن و از موتورهای گرافیکی پرشتاب سختافزاری (Hardware-Accelerated) بهره میگیرد.
بازار کار جاوا
جاوا زبانی است که موقعیت های شغلی متفاوتی برای آن وجود دارد. جاوا یک زبان برنامه نویسی مناسب برای برنامه نویسی سمت سرور (Server Side) است، به این نوع برنامهنویسان که پردازش و ذخیره اطلاعات را مدیریت میکنند و با کاربر بطور غیر مستقیم ارتباط دارند، برنامه نویسان Back-end میگویند. جاوا جزء قدیمی ترین زبان های برنامه نویسی است که در سمت سرور استفاده میشود اما بیشتر در حوزه برنامه نویسی اندروید استفاده میشود علاوه بر آن در حوزه برنامه نویسی دستگاه (Device)های مهم نیز کاربرد دارد.
بازار کار جاوا در ایران
در ایران بیشتر آگهیهای استخدام برای متخصص جاوا در حوزه برنامه نویسی سمت سرور و برنامه نویسی اندروید است و حقوق برنامه نویس جاوا بدون سابقه کار از ماهانه 5 میلیون تومان خواهد بود.
استفاده از جاوا در برنامه های کاربردی
در ادامه به کاربرد جاوا در برنامه های کاربردی پرداخته خواهد شد.
اپلت جاوا (Java Applet)
اپلتهای جاوا برنامههایی بودند که در یک برنامه کاربردی دیگر، معمولاً در یک صفحه وبی که در یک مرورگر وب نمایش داده میشد، تعبیه شده بودند. API اپلت جاوا از جاوا 9 در سال 2017 منسوخ شده است.
سرولت جاوا (Java Servlet)
فناوری سرولت جاوا مکانیزمی ساده و سازگار برای توسعه عملکرد یک وب سرور در اختیار توسعه دهندگان وب قرار داده و دسترسی به سیستمهای تجاری موجود را مقدور میسازد. Servlets اجزای اصلی Java EE در سمت سرور هستند که به درخواستهای کلاینتها پاسخ می دهند. عموماً تولید صفحات HTML در پاسخ به درخواستهای HTTP است، اما تعدادی دیگر از کلاسهای Servlet استاندارد مانند ارتباطات WebSocket برای این منظور وجود دارد. اگر چه APIAPI چیست؟ همه چیز درباره api یا رابط برنامه نویسی کاربردیاین مقاله عالی بررسی کرده که API چیست و چه کاربردی دارد و چگونه می توان از api ها در برنامه های خود استفاده نمود. همچنین استاندارد api و کاربرد api بررسی شده سرولت جاوا هنوز هم استفاده میشوند اما توسط دو فناوری استاندارد جاوا برای وب سرویس جایگزین شده اند:
- Java API برای وب سرویسهای RESTful (JAX-RS 2.0) که برای سرویسهای AJAX، JSON و REST مفید است.
- Java API برای وب سرویسهای XML (JAX-WS) که برای سرویسهایSOAP مفید است.
پیادهسازیهای رایج این APIها روی سرورهای برنامه یا کانتینرهای سرولت، از یک سرولت استاندارد برای مدیریت تمام تعاملات با درخواستها و پاسخهای HTTP استفاده میکنند که به متدهای وب سرویس برای منطق تجاری واقعی سپرده شده است.
صفحات جاوا سرور یا JavaServer Pages (JSP)
اجزای اصلی Java EE در سمت سرور هستند که معمولاً صفحات صفحات HTML را بهعنوان پاسخ درخواستهایHTTP کلاینتها ایجاد میکنند. JSPها کد جاوا را با استفاده از جداکنندههای ویژه <% و %> در یک صفحه HTML جاسازی میکنند.
برنامه های Swing
Swing یک کتابخانه رابط کاربری گرافیکی برای پلتفرم Java SE است که ظاهر گرافیکی متفاوتی برای برنامههای ایجاد میکند.
برنامه های JavaFX
یک پلتفرم نرم افزاری برای ایجاد برنامههای کاربردی تحت دسکتاپ و برنامههای کاربردی وب است که میتواند در طیف گستردهای از دستگاهها اجرا شود. JavaFX به عنوان کتابخانه استاندارد رابط کاربری گرافیکی برای Java SE به عنوان جایگزینی برای Swing در نظر گرفته شده بود اما از JDK 11 این پلت فرم در هسته JDK نبوده و در عوض در یک ماژول جداگانه قرار دارد.
جاوا و جاوا اسکریپت (Java Script)
محصول شرکت نت اسکیپ با عنوان جاوا اسکریپت زبانی است که معمولاً در صفحات وب نوشته شده و بوسیله مرورگر تفسیر میشود. برخی به اشتباه جاوا اسکریپت را دارای ارتباطی با زبان جاوا میدانند در حالیکه جاوا اسکریپت به طور ساختاری با جاوا کاملاً متفاوت است و ارتباطی با جاوا ندارد.
جاوا یا پایتون
با توجه به سادگی و محبوبیت زبان پایتون یکی از موضوعات پر تکرار انتخاب بین جاوا و پایتون است. در این بخش به مقایسه کوتاهی از این دو زبان میپردازیم:
- زبان جاوا دارای حساسیت بیشتری نسبت به پایتون در کد نویسی است. اگر کسی فراموش کند که براکتها یا نقطه ویرگول اضافه یا کم کند، این مورد به عنوان یک خطا در خروجی شما نشان داده میشود. اما در مورد پایتون چیزی شبیه به آن وجود ندارد. در پایان خط کد نیازی به نقطه ویرگول و پرانتزها نیست، اما پایتون از روند تورفتگی پیروی میکند تا کد شما را خوانا کند.
- برنامه نویسی جاوا به صورت Static-type است. باید به صراحت نوع داده متغیر را ذکر کرد. اگر به نوع دادهها int، Float، Double، Character اشاره نشود، خطا در برنامه رخ میدهد. پایتون به صورت Dynamic-type میشود به این معنی که در زمان اجرا مستقیماً یک مقدار به یک متغیر اختصاص میدهد.
- کد های جاوا پیچیده تر از کد های پایتون هستند. اگر بخواهید یک برنامه Hello World را در هر دو بنویسید، میتوانید پیچیدگی کد را مشاهده کنید. 4 خط کد در جاوا و همان برنامه Hello World در پایتون کد 1 خطی خواهد بود.
- اگر کسی روی پروژهای کار میکند که به سرعت بالایی نیاز دارد، جاوا بهترین انتخاب است زیرا پایتون یک مفسر است و در زمان اجرا نوع داده یک متغیر را در نظر میگیرد و به همین دلیل از جاوا کندتر میشود.
- جاوا دارای JDBC (اتصال پایگاه داده جاوا) است که به طور گستردهای از اتصال با پایگاه دادههای مختلف مانند SQL، SQOOP و غیره استفاده میشود و JDBC نیز بسیار محبوب است، اما لایههای دسترسی به پایگاه داده پایتون ضعیف تر از JDBC جاوا هستند. به همین دلیل است که به ندرت در شرکتها استفاده میشود.
آیا جاوا بهتر از پایتون است؟
این یک سوال کلی است، هر یک از زبانها ویژگی منحصر به فرد خود را دارد و شما باید ابتدا به بررسی ویژگیها و کاربردهای زبان برنامه نویسی مورد نظر بپردازید.
ویژگی های زبان برنامه نویسی جاوا چیست؟
از ویژگی های زبان برنامه نویسی جاوا میتوان به سادگی، شی گرا بودن، قابلیت حمل کردن، گستردگی انجمنها، کارایی بالا و امنیت بالا اشاره کرد، که در این مقاله به صورت کامل به توضیح این ویژگیها پرداختیم.
آیا جاوا با جاوا اسکریپت یکی است؟
در این مقاله به بررسی کامل جاوا پرداخته شد، جاوا اسکریپت به طور ساختاری با جاوا کاملاً متفاوت است و ارتباطی با جاوا ندارد،.