SlideShare a Scribd company logo
1 of 25
Download to read offline
Java How To Program
‫جاوا‬ ‫نویسی‬ ‫برنامه‬ ‫زبان‬
‫خدا‬ ‫نام‬ ‫به‬
1
‫درس‬ ‫مرجع‬
2
 Java™ How to Program,Tenth Edition , Paul Deitel & Harvey Deitel.
‫فصل‬‫اول‬:
‫جاوا‬ ‫نویسی‬ ‫برنامه‬ ‫زبان‬ ‫بر‬ ‫ای‬ ‫مقدمه‬
3
Java Programming Language
‫مقدمه‬
4
‫زبان‬‫برنامه‬‫نویسی‬،‫جاوا‬‫زبانی‬‫سطح‬‫باال‬‫می‬‫باشد‬‫که‬‫امروزه‬‫نقش‬‫مهمی‬‫در‬
‫پیاده‬‫سازی‬‫نرم‬‫افزارهای‬‫سازمانی‬(Enterprise)،‫تحت‬‫شبکه‬،‫مستقل‬‫از‬‫پلت‬
‫فرم‬(Platform Independent)‫و‬‫چند‬‫الیه‬(MultiTier)‫ایفا‬‫می‬‫کند‬.
‫جاوا‬ ‫استفاده‬ ‫موارد‬
5
‫برنامه‬‫های‬‫جاوا‬‫از‬‫کارت‬‫های‬‫هوشمند‬(Smart Cards)،‫گوشی‬‫موبایل‬‫و‬‫تبلت‬
‫ها‬‫گرفته‬‫تا‬‫سیستم‬‫های‬‫بانکداری‬‫الکترونیک‬‫و‬‫حتی‬‫مزیخ‬‫پیما‬‫ناسا‬‫و‬...‫در‬‫حال‬
‫اجرا‬‫می‬‫باشد‬.
‫جاوا‬ ‫از‬ ‫استفاده‬ ‫موارد‬
6
‫جاوا‬ ‫از‬ ‫استفاده‬ ‫موارد‬
7
‫جاوا‬ ‫آمار‬ ‫به‬ ‫نگاهی‬
8
‫موسسه‬‫تحقیقاتی‬Forrester‫برآورده‬‫کرده‬‫که‬‫تا‬‫سال‬2015‫بیش‬‫از‬‫دو‬‫میلیارد‬
‫کامپیوتر‬‫در‬‫حال‬‫استفاده‬‫از‬‫جاوا‬‫بودند‬.‫بر‬‫طبق‬‫برآوردهای‬‫صورت‬‫گرفته‬‫توسط‬
Oracle،‫بر‬‫روی‬97‫درصد‬‫از‬‫دسکتاپ‬‫های‬‫سطح‬،‫باال‬89‫درصد‬‫از‬‫دسکتاپ‬‫های‬
PC،100‫درصد‬Blue-ray Disk،‫جاوا‬‫اجرا‬‫می‬‫شود‬‫و‬‫بیش‬‫از‬9‫میلیون‬‫برنامه‬
‫نویس‬‫جاوا‬‫وجود‬‫دارد‬.
TIOBE Index for December 2017
9
TIOBE Index for December 2017
10
TIOBE Index : Very Long Term History
11
The 2017 Top Programming Languages
12
‫جاوا‬ ‫بودن‬ ‫فرم‬ ‫پلت‬ ‫از‬ ‫مستقل‬
13
‫یکی‬‫از‬‫بزرگترین‬‫امتیازات‬‫جاوا‬‫عدم‬‫وابستگی‬‫آن‬‫به‬‫چارچوب‬‫خاصی‬‫است‬.‫یعنی‬
‫برنامه‬‫های‬‫جاوا‬‫بدون‬‫هیچ‬‫گونه‬‫تغییری‬‫در‬‫محیط‬‫های‬،‫ویندوز‬،‫لینوکس‬
‫مکینتاش‬‫و‬‫سایر‬‫محیط‬‫ها‬‫قابل‬‫اجرا‬‫است‬.
‫بودن‬ ‫فرم‬ ‫پلت‬ ‫از‬ ‫مستقل‬ ‫اهمیت‬
14
‫زبان‬C‫را‬‫در‬‫نظر‬‫بگیرید‬.‫برنامه‬‫ای‬‫در‬‫زبان‬C‫توسط‬‫کامپایلر‬‫به‬‫کد‬‫ماشین‬‫تبدیل‬
‫می‬،‫شود‬‫یعنی‬‫به‬‫دستوراتی‬‫تبدیل‬‫می‬‫گردد‬‫که‬‫مخصوص‬‫پردازنده‬‫آن‬‫ماشین‬
‫است‬.‫اگر‬‫این‬‫برنامه‬‫در‬‫سیستم‬‫اینتل‬‫ترجمه‬،‫شود‬‫در‬‫سایر‬‫سیستم‬‫های‬‫اینتل‬‫اجرا‬
‫می‬،‫گردد‬‫ولی‬‫در‬‫ماشین‬‫های‬‫دیگر‬‫مثل‬‫مکینتاش‬‫اجرا‬‫نخواهد‬‫شد‬.‫برای‬‫استفاده‬
‫از‬‫برنامه‬‫در‬‫چنین‬‫ماشین‬،‫های‬‫باید‬‫سورس‬‫کد‬‫را‬‫به‬‫آنها‬‫منتقل‬،‫کرد‬‫دوباره‬‫آن‬‫را‬
‫کامپایل‬،‫کرد‬‫تا‬‫کدی‬‫برای‬‫آن‬‫ماشین‬‫تولید‬‫گردد‬‫که‬‫قابلیت‬‫اجرا‬‫داشته‬‫باشد‬.
‫های‬ ‫کد‬ ‫اجرای‬ ‫و‬ ‫کامپایل‬ ‫نحوه‬C
15
‫جاوا‬ ‫بودن‬ ‫فرم‬ ‫پلت‬ ‫از‬ ‫مستقل‬
16
‫جاوا‬‫استقالل‬‫از‬‫محیط‬‫را‬‫با‬‫استفاده‬‫از‬‫ماشین‬‫مجازی‬‫انجام‬‫می‬‫دهد‬.‫در‬‫واقع‬
‫ماشین‬‫مجازی‬‫جاوا‬‫یک‬‫کامپیوتر‬‫فرضی‬‫است‬.‫ماشین‬‫مجازی‬‫جاوا‬‫برنامه‬‫های‬
‫کامپایل‬‫شده‬‫جاوا‬‫را‬‫میگیرد‬‫و‬‫دستورات‬‫آن‬‫را‬‫به‬‫فرمان‬‫هایی‬‫تبدیل‬‫می‬‫کند‬‫که‬
‫سیستم‬‫عامل‬‫می‬‫تواند‬‫با‬‫آن‬‫ها‬‫کار‬‫کند‬.‫کد‬‫ماشین‬‫مجازی‬‫را‬‫بایت‬‫کد‬‫می‬‫نامند‬.
‫برنامه‬‫ی‬‫کامپایل‬‫شده‬‫که‬‫به‬‫شکل‬‫بایت‬‫کد‬،‫است‬‫می‬‫تواند‬‫بر‬‫روی‬‫هر‬‫کامپیوتر‬‫یا‬
‫سیستم‬‫عاملی‬‫که‬‫ماشین‬‫مجازی‬‫جاوا‬‫را‬‫دارد‬‫اجرا‬‫شود‬.
‫جاوا‬ ‫های‬ ‫کد‬ ‫اجرای‬ ‫و‬ ‫کامپایل‬ ‫نحوه‬
17
‫جاوا‬ ‫کاربردی‬ ‫برنامه‬ ‫یک‬ ‫اجرای‬ ‫و‬ ‫ایجاد‬ ‫مراحل‬
18
ً‫ا‬‫عموم‬‫برنامه‬‫های‬‫جاوا‬‫از‬‫پنج‬‫فاز‬‫یا‬‫مرحله‬‫عبور‬‫می‬‫کنند‬.
‫ویرایش‬(Edit)
‫کامپایل‬(Compile)
‫بار‬‫شدن‬(Load)
‫بازبینی‬(Verify)
‫اجرا‬(Execute)
‫فاز‬1:‫ایجاد‬Creating a Program
19
‫فاز‬‫یک‬‫مرکب‬‫از‬‫ویرایش‬‫فایل‬‫با‬‫استفاده‬‫از‬‫یک‬‫برنامه‬‫ویرایشگر‬‫است‬.‫با‬‫استفاده‬‫از‬
‫یک‬‫ویرایشگر‬‫مبادرت‬‫به‬‫تایپ‬‫برنامه‬‫جاوا‬(Source Code)‫کرده‬‫و‬‫هر‬‫گونه‬
‫اصالحات‬‫مورد‬‫نیاز‬‫را‬‫در‬‫آن‬‫اعمال‬‫و‬‫ذخیره‬‫نمائید‬.‫اسامی‬‫فایل‬‫کد‬‫منبع‬‫جاوا‬
‫حاوی‬‫پسوند‬.java‫می‬‫باشند‬.
IDE (Integrated development environments)
20
 Eclipse (www.eclipse.org )
 NetBeans (www.netbeans.org )
 IntelliJ IDEA (www.jetbrains.com )
‫فاز‬2:‫کد‬ ‫بایت‬ ‫فرم‬ ‫به‬ ‫جاوا‬ ‫برنامه‬ ‫کامپایل‬
21
‫در‬‫فاز‬،‫دوم‬‫از‬‫دستور‬javac(‫کامپایلر‬‫جاوا‬)‫برای‬‫کامپایل‬‫استفاده‬‫می‬‫کنیم‬.‫برای‬
‫مثال‬‫اگر‬‫بخواهیم‬‫برنامه‬‫ای‬‫که‬‫به‬‫اسم‬welcome‫نوشته‬‫ایم‬‫را‬‫کامپایل‬‫کنیم‬
‫باید‬‫در‬‫پنجره‬‫فرمان‬‫دستور‬‫زیر‬‫را‬‫تایپ‬‫کرد‬.
 javac Welcome.java
‫اگر‬‫برنامه‬‫کامپایل‬،‫شود‬‫کامپایلر‬‫فایل‬.class‫بنام‬welcome.class‫را‬‫تولید‬‫می‬
‫کند‬‫که‬‫حاوی‬‫نسخه‬‫کامپایل‬‫شده‬‫برنامه‬‫است‬.
‫کد‬ ‫بایت‬ ‫اجرای‬
22
‫بایت‬‫کدها‬‫توسط‬Java Virtual Machine (JVM)(‫که‬‫بخشی‬‫از‬JDK‫می‬
‫باشد‬)‫اجرا‬‫می‬‫شوند‬.‫بایت‬‫کدها‬‫دستورالعمل‬‫ها‬‫مستقل‬‫از‬‫پلت‬‫فرم‬‫است‬‫و‬
‫وابستگی‬‫به‬‫پلت‬‫فرم‬‫سخت‬‫افزاری‬‫خاصی‬‫ندارند‬.‫از‬‫این‬‫رو‬‫بایت‬‫کدهای‬‫جاوا‬
‫قابل‬‫حمل‬(portable)‫هستند‬.‫به‬‫این‬‫معنی‬‫که‬‫همان‬‫بایت‬‫کد‬‫را‬‫بر‬‫روی‬‫هر‬
‫پلت‬‫فرمی‬‫که‬‫حاوی‬‫یک‬JVM،‫باشد‬‫می‬‫توان‬‫اجرا‬‫کرد‬.
‫فاز‬3:‫حافظه‬ ‫به‬ ‫برنامه‬ ‫کردن‬ ‫بار‬
23
‫قبل‬‫از‬‫اینکه‬‫برنامه‬‫بتواند‬‫اجرا‬،‫شود‬‫ابتدا‬‫باید‬‫در‬‫حافظه‬‫جای‬‫داده‬‫شود‬.‫این‬‫فرایند‬
‫به‬‫نام‬Loading‫شناخته‬‫می‬‫شود‬.‫کالس‬loader‫متعلق‬‫به‬JVM‫فایل‬‫های‬.class
‫حاوی‬‫بایت‬‫کدهای‬‫برنامه‬‫را‬‫در‬‫یافت‬‫کرده‬‫و‬‫آنها‬‫را‬‫به‬‫حافظه‬‫اصلی‬‫منتقل‬‫می‬‫کند‬.
‫فاز‬4:‫کد‬ ‫بایت‬ ‫بازبینی‬Bytecode Verification
24
‫در‬‫فاز‬،‫چهارم‬‫پس‬‫از‬‫بارگذاری‬‫کالس‬،‫ها‬‫بازبینی‬‫کننده‬‫بایت‬‫کد‬(bytecode
verifier)‫شروع‬‫به‬‫بررسی‬‫بایت‬‫کدها‬‫می‬‫کند‬‫تا‬‫مطمئن‬‫شود‬‫که‬‫همه‬‫آنها‬‫معتبر‬‫بوده‬
‫و‬‫از‬‫محدوده‬‫امنیتی‬‫جاوا‬‫تجاوز‬‫نکرده‬‫باشند‬.‫جاوا‬‫اقدامات‬‫امنیتی‬‫شدیدی‬‫را‬‫اعمال‬
‫می‬‫کند‬‫تا‬‫مطمئن‬‫گردد‬‫برنامه‬‫های‬‫جاوا‬‫که‬‫بر‬‫روی‬‫شبکه‬‫حرکت‬‫می‬‫کنند‬‫به‬‫فایل‬
‫ها‬‫یا‬‫سیستم‬‫شما‬‫آسیب‬‫وارد‬‫نکنند‬.
‫فاز‬5:‫اجرا‬Execution
25
‫در‬‫فاز‬،‫پنجم‬JVM‫بایت‬‫کد‬‫برنامه‬‫را‬‫اجرا‬‫می‬،‫کند‬‫بنابراین‬‫اعمال‬‫مشخص‬‫شده‬
‫در‬‫برنامه‬‫صورت‬‫می‬‫گیرند‬.ً‫ا‬‫عموم‬JVM‫های‬‫امروزه‬‫اقدام‬‫به‬‫اجرای‬‫بایت‬‫کدها‬‫با‬
‫استفاده‬‫از‬‫تکنولوژی‬‫ترکیبی‬‫از‬‫تفسیر‬(interpretation)‫و‬‫کامپایلری‬‫با‬‫اصطالح‬
just-in-time (JIT) compilation‫می‬‫کنند‬.

More Related Content

Similar to Java how to_program 1

Machine & Assembly Language - Chapter 1
Machine & Assembly Language - Chapter 1Machine & Assembly Language - Chapter 1
Machine & Assembly Language - Chapter 1M Nemati
 
About Programming - persion.pptx
About Programming - persion.pptxAbout Programming - persion.pptx
About Programming - persion.pptxHossein Darvishi
 
cloud computing , رایانش ابری
cloud computing , رایانش ابریcloud computing , رایانش ابری
cloud computing , رایانش ابریvhd-abdarbashi
 
Bi and data mining with Oracle
Bi and data mining with OracleBi and data mining with Oracle
Bi and data mining with Oracleghanadbashi
 
What is Computer Programming?
What is Computer Programming?What is Computer Programming?
What is Computer Programming?Open Pakistan
 
Operating System - Chapter 01
Operating System - Chapter 01Operating System - Chapter 01
Operating System - Chapter 01M Nemati
 
معماری سیستم عامل آندروید
معماری سیستم عامل آندرویدمعماری سیستم عامل آندروید
معماری سیستم عامل آندرویدHamid Saberi
 
توسعه پروژه های بک‌اند، فرانت‌اند و موبایل با کاتلین
توسعه پروژه های بک‌اند، فرانت‌اند و موبایل با کاتلینتوسعه پروژه های بک‌اند، فرانت‌اند و موبایل با کاتلین
توسعه پروژه های بک‌اند، فرانت‌اند و موبایل با کاتلینWeb Standards School
 
Introducing JIRA (Issue & Project Tracking)
Introducing JIRA (Issue & Project Tracking)Introducing JIRA (Issue & Project Tracking)
Introducing JIRA (Issue & Project Tracking)Massoud Mortazavi
 
آموزش نرم افزار صنعتی کنترل و مانیتورینگ LabVIEW
آموزش نرم افزار صنعتی کنترل و مانیتورینگ LabVIEWآموزش نرم افزار صنعتی کنترل و مانیتورینگ LabVIEW
آموزش نرم افزار صنعتی کنترل و مانیتورینگ LabVIEWfaradars
 
How to root any android device with kingroot
How to root any android device with kingrootHow to root any android device with kingroot
How to root any android device with kingrootlilimagmagazine
 
Quick heal company profile
Quick heal company profileQuick heal company profile
Quick heal company profilequickheal_co_ir
 
مقدمه درس برنامه نویسی مبتنی بر وب
مقدمه درس برنامه نویسی مبتنی بر وبمقدمه درس برنامه نویسی مبتنی بر وب
مقدمه درس برنامه نویسی مبتنی بر وبM Nemati
 
راهکارهای طراحی نرم افزار ها محب الله امان
راهکارهای طراحی نرم افزار ها   محب الله امانراهکارهای طراحی نرم افزار ها   محب الله امان
راهکارهای طراحی نرم افزار ها محب الله امانMuhibullah Aman
 

Similar to Java how to_program 1 (20)

Efazati opendata slides
Efazati opendata slidesEfazati opendata slides
Efazati opendata slides
 
Machine & Assembly Language - Chapter 1
Machine & Assembly Language - Chapter 1Machine & Assembly Language - Chapter 1
Machine & Assembly Language - Chapter 1
 
Java script
Java scriptJava script
Java script
 
About Programming - persion.pptx
About Programming - persion.pptxAbout Programming - persion.pptx
About Programming - persion.pptx
 
cloud computing , رایانش ابری
cloud computing , رایانش ابریcloud computing , رایانش ابری
cloud computing , رایانش ابری
 
Bi and data mining with Oracle
Bi and data mining with OracleBi and data mining with Oracle
Bi and data mining with Oracle
 
مقدمه ای بر F#
مقدمه ای بر F#مقدمه ای بر F#
مقدمه ای بر F#
 
What is Computer Programming?
What is Computer Programming?What is Computer Programming?
What is Computer Programming?
 
Operating System - Chapter 01
Operating System - Chapter 01Operating System - Chapter 01
Operating System - Chapter 01
 
معماری سیستم عامل آندروید
معماری سیستم عامل آندرویدمعماری سیستم عامل آندروید
معماری سیستم عامل آندروید
 
توسعه پروژه های بک‌اند، فرانت‌اند و موبایل با کاتلین
توسعه پروژه های بک‌اند، فرانت‌اند و موبایل با کاتلینتوسعه پروژه های بک‌اند، فرانت‌اند و موبایل با کاتلین
توسعه پروژه های بک‌اند، فرانت‌اند و موبایل با کاتلین
 
Introducing JIRA (Issue & Project Tracking)
Introducing JIRA (Issue & Project Tracking)Introducing JIRA (Issue & Project Tracking)
Introducing JIRA (Issue & Project Tracking)
 
آموزش نرم افزار صنعتی کنترل و مانیتورینگ LabVIEW
آموزش نرم افزار صنعتی کنترل و مانیتورینگ LabVIEWآموزش نرم افزار صنعتی کنترل و مانیتورینگ LabVIEW
آموزش نرم افزار صنعتی کنترل و مانیتورینگ LabVIEW
 
How to root any android device with kingroot
How to root any android device with kingrootHow to root any android device with kingroot
How to root any android device with kingroot
 
Quick heal company profile
Quick heal company profileQuick heal company profile
Quick heal company profile
 
مقدمه درس برنامه نویسی مبتنی بر وب
مقدمه درس برنامه نویسی مبتنی بر وبمقدمه درس برنامه نویسی مبتنی بر وب
مقدمه درس برنامه نویسی مبتنی بر وب
 
Kotlin
KotlinKotlin
Kotlin
 
Evernote
EvernoteEvernote
Evernote
 
evernote
evernoteevernote
evernote
 
راهکارهای طراحی نرم افزار ها محب الله امان
راهکارهای طراحی نرم افزار ها   محب الله امانراهکارهای طراحی نرم افزار ها   محب الله امان
راهکارهای طراحی نرم افزار ها محب الله امان
 

More from M Nemati

JavaScript
JavaScriptJavaScript
JavaScriptM Nemati
 
Introduction
IntroductionIntroduction
IntroductionM Nemati
 
Network security
Network securityNetwork security
Network securityM Nemati
 
Artificial Intelligence (AI)
Artificial Intelligence (AI)Artificial Intelligence (AI)
Artificial Intelligence (AI)M Nemati
 
Machine & Assembly Language - Chapter 5
Machine & Assembly Language - Chapter 5Machine & Assembly Language - Chapter 5
Machine & Assembly Language - Chapter 5M Nemati
 
Machine & Assembly Language - Chapter 4
Machine & Assembly Language - Chapter 4Machine & Assembly Language - Chapter 4
Machine & Assembly Language - Chapter 4M Nemati
 
Machine & Assembly Language - Chapter 3
Machine & Assembly Language - Chapter 3Machine & Assembly Language - Chapter 3
Machine & Assembly Language - Chapter 3M Nemati
 
Machine & Assembly Language - Chapter 2
Machine & Assembly Language - Chapter 2Machine & Assembly Language - Chapter 2
Machine & Assembly Language - Chapter 2M Nemati
 
IoT Course - Chapter 1
IoT Course -  Chapter 1IoT Course -  Chapter 1
IoT Course - Chapter 1M Nemati
 
IoT Course - Chapter 2
IoT Course -  Chapter 2IoT Course -  Chapter 2
IoT Course - Chapter 2M Nemati
 
Java script
Java scriptJava script
Java scriptM Nemati
 
Fundamentals of programming
Fundamentals of programmingFundamentals of programming
Fundamentals of programmingM Nemati
 

More from M Nemati (19)

jQuery
jQueryjQuery
jQuery
 
JavaScript
JavaScriptJavaScript
JavaScript
 
Bootstrap
BootstrapBootstrap
Bootstrap
 
CSS
CSSCSS
CSS
 
HTML
HTMLHTML
HTML
 
Introduction
IntroductionIntroduction
Introduction
 
Network security
Network securityNetwork security
Network security
 
Artificial Intelligence (AI)
Artificial Intelligence (AI)Artificial Intelligence (AI)
Artificial Intelligence (AI)
 
Machine & Assembly Language - Chapter 5
Machine & Assembly Language - Chapter 5Machine & Assembly Language - Chapter 5
Machine & Assembly Language - Chapter 5
 
Machine & Assembly Language - Chapter 4
Machine & Assembly Language - Chapter 4Machine & Assembly Language - Chapter 4
Machine & Assembly Language - Chapter 4
 
Machine & Assembly Language - Chapter 3
Machine & Assembly Language - Chapter 3Machine & Assembly Language - Chapter 3
Machine & Assembly Language - Chapter 3
 
Machine & Assembly Language - Chapter 2
Machine & Assembly Language - Chapter 2Machine & Assembly Language - Chapter 2
Machine & Assembly Language - Chapter 2
 
IoT Course - Chapter 1
IoT Course -  Chapter 1IoT Course -  Chapter 1
IoT Course - Chapter 1
 
IoT Course - Chapter 2
IoT Course -  Chapter 2IoT Course -  Chapter 2
IoT Course - Chapter 2
 
J query
J queryJ query
J query
 
Java script
Java scriptJava script
Java script
 
Fundamentals of programming
Fundamentals of programmingFundamentals of programming
Fundamentals of programming
 
CSS
CSSCSS
CSS
 
HTML
HTMLHTML
HTML
 

Java how to_program 1