SlideShare a Scribd company logo
‫در‬ ‫ها‬ ‫روشنایی‬ ‫و‬ ‫تاریک‬
‫جاوا‬
-‫شود‬ ‫ی‬ ‫بررس‬ ‫دقت‬‫با‬ ‫باید‬ ‫ی‬ ‫نویس‬ ‫برنامه‬ ‫بان‬‫ز‬‫یک‬.
-‫ن‬‫ر‬‫ندا‬ ‫جاوا‬ ‫بطن‬ ‫از‬ ‫دقیقی‬‫توضیح‬ ‫اما‬ ‫هستند‬ ‫یادی‬‫ز‬ ‫های‬ ‫کتاب‬‫جاوا‬ ‫مورد‬‫در‬‫د‬.
-‫نشود‬ ‫استفاده‬ ‫ای‬‫نمونه‬ ‫کد‬‫قطعه‬ ‫هیچ‬‫از‬ ‫شده‬‫سعی‬ ‫مقاله‬‫این‬‫در‬.
‫ماست‬ ‫حق‬ ‫عمیق‬ ‫دانش‬
‫ها‬ ‫بدی‬ ‫و‬ ‫موانع‬ ،‫ادامه‬ ‫در‬ ‫و‬
‫جاوا‬ ‫های‬ ‫خوبی‬ ‫بررسی‬ ‫به‬ ‫ابتدا‬
‫میپردازیم‬
•‫امن‬ ‫زبانی‬/‫شده‬ ‫مدیریت‬ ‫تایم‬ ‫ران‬
-‫ندارد‬ ‫وجود‬ ‫ناخوانا‬ ‫باگ‬ ‫یا‬ ‫سگمنت‬ ‫ارور‬
-‫برنامه‬ ‫حمل‬ ‫امکان‬ ‫تسهیل‬
-‫افزارها‬ ‫سخت‬ ‫انواع‬ ‫روی‬ ‫بر‬ ‫اجرا‬ ‫امکان‬
-‫اجرا‬ ‫بستر‬ ‫ذاتی‬ ‫سازی‬ ‫پیاده‬
•‫لینکینگ‬ ‫داینامیک‬
-‫نیازمند‬ ‫الیبرری‬ ‫یک‬ ‫تغییر‬ ،‫گذشته‬ ‫در‬recompile‫بود‬ ‫ها‬ ‫کالینت‬ ‫کل‬
•‫شـبـاهـت‬‫به‬ ‫زیـاد‬ ‫گـرامـری‬C/C++
-‫نویسان‬ ‫برنامه‬ ‫از‬ ‫زیادی‬ ‫افراد‬ ‫بسرعت‬C‫و‬C++‫شدند‬ ‫جاوا‬ ‫به‬ ‫آلوده‬!
-‫های‬ ‫مزیت‬ ‫از‬ ‫بسیاری‬Lisp‫و‬Smalltalk‫سینتکتیک‬ ‫فرهنگ‬ ‫تغییر‬ ‫شک‬ ‫بدون‬
‫شد‬ ‫آن‬ ‫موفقیت‬ ‫باعث‬ ‫که‬ ‫جاوا‬ ‫های‬ ‫ویژگی‬
•‫گرایی‬ ‫شی‬
-Encapsulation‫برای‬ ‫بدیهی‬ ‫نیاز‬ ‫یک‬isolation‫اجزا‬
-‫میشد‬ ‫محسوب‬ ‫بازاری‬ ‫نیاز‬ ‫یک‬ ‫این‬ ‫از‬ ‫غیر‬ ‫به‬ ‫اما‬ ،‫همینطور‬ ‫هم‬ ‫وراثت‬
•Static Typing
-‫به‬ ‫قابلیت‬ ‫این‬IDE‫کند‬ ‫کمک‬ ‫کد‬ ‫سریعتر‬ ‫نوشتن‬ ‫در‬ ‫نویس‬ ‫برنامه‬ ‫به‬ ‫تا‬ ‫میدهد‬ ‫را‬ ‫امکان‬ ‫این‬(autocompletion, code generation)
-‫با‬ ‫کدهای‬ ‫تولید‬ ‫قابلیت‬ ‫مجازی‬ ‫ماشین‬ ‫به‬performance‫دهد‬ ‫می‬ ‫را‬ ‫باال‬
‫شد‬ ‫آن‬ ‫موفقیت‬ ‫باعث‬ ‫که‬ ‫جاوا‬ ‫های‬ ‫ویژگی‬
•Threads
-‫دوره‬ ‫شروع‬Uniprocessor‫و‬ ‫ها‬Concurrency‫همزمانی‬ ‫یا‬
-‫مفهوم‬thread‫باشد‬ ‫گنجیده‬ ‫زبان‬ ‫طراحی‬ ‫در‬ ‫باید‬‫نیست‬ ‫سازی‬ ‫شبیه‬ ‫قابل‬ ‫که‬ ‫چرا‬
- Peter Buhr: Are safe Concurrency Libraries Possible? Feb, 1995
- Hans Boehm: Threads cannot be implemented as a library. Feb 2010
•Garbage Collection
-‫حافظه‬ ‫مدیریت‬ ‫به‬ ‫مربوط‬ ‫های‬ ‫باگ‬ ‫و‬ ‫ها‬ ‫ارور‬ ‫بردن‬ ‫بین‬ ‫از‬
•Exceptions
-‫حافظه‬ ‫مدیریت‬ ‫به‬ ‫مربوط‬ ‫های‬ ‫باگ‬ ‫و‬ ‫ها‬ ‫ارور‬ ‫بردن‬ ‫بین‬ ‫از‬
‫شد‬ ‫آن‬ ‫موفقیت‬ ‫باعث‬ ‫که‬ ‫جاوا‬ ‫های‬ ‫ویژگی‬
‫داشت‬ ‫بسزایی‬ ‫تاثیر‬ ‫جاوا‬ ‫موفقیت‬ ‫در‬ ‫موارد‬ ‫این‬ ‫حذف‬
•Lexical Macros
-‫اند‬ ‫هم‬ ‫شبیه‬ ‫نظر‬ ‫به‬ ‫جاوا‬ ‫های‬ ‫برنامه‬
-Enabled programmer portability
-Enabled world-class toolability
•Multiple implementation inheritance
•Operator Overloading
•‫ها‬ ‫فایل‬ ‫هدر‬ ‫ساپورت‬ ‫عدم‬
•‫مستندات‬ ‫حذف‬API‫وسیله‬ ‫به‬ ‫خارجی‬Javadoc
‫می‬ ‫وارد‬ ‫که‬ ‫آنهایی‬ ‫اندازه‬ ‫به‬ ‫شوند‬ ‫می‬ ‫گذاشته‬ ‫کنار‬ ‫که‬ ‫چیزهایی‬
‫دارند‬ ‫اهمیت‬ ،‫شوند‬
•‫از‬ ‫تبدیل‬int‫به‬float‫از‬ ‫و‬long‫به‬double
•‫یک‬ ‫باعث‬ ‫انتساب‬ ‫ترکیبی‬ ‫های‬ ‫عملگری‬cast‫شوند‬ ‫می‬ ‫نویس‬ ‫برنامه‬ ‫به‬ ‫اطالع‬ ‫بدون‬
Short I = -1;
While (I != 0)
I >>>=1; // I = (short) ( I >>> 1);
•‫عملگرهای‬==‫و‬!=‫کنند‬ ‫می‬ ‫مقایسه‬ ‫را‬ ‫ها‬ ‫مرجع‬
‫بد‬
•‫شدند‬ ‫می‬ ‫ایجاد‬ ‫نباید‬ ‫دیفالت‬ ‫های‬ ‫سازنده‬
-‫نباید‬ ‫اینکه‬ ‫بدتر‬ ‫و‬public‫شدند‬ ‫می‬
•‫متد‬ ‫یک‬ ‫فراخوانی‬Override‫شود‬ ‫انجام‬ ‫نباید‬ ‫سازنده‬ ‫یک‬ ‫از‬
-‫شود‬ ‫می‬ ‫محسوس‬ ‫نا‬ ‫خطاهای‬ ‫باعث‬ ‫و‬ ‫ندارد‬ ‫معتبری‬ ‫استفاده‬ ‫هیچ‬ ‫که‬ ‫چرا‬
•Int‫و‬long‫عالمت‬ ‫بدون‬‫و‬byte‫دار‬ ‫عالمت‬
•‫بندی‬ ‫ترتیب‬ ‫در‬ ‫ایراد‬ ‫یک‬Exception‫ها‬
•‫با‬ ‫باید‬ ‫ها‬ ‫آرایه‬toString‫اطالعات‬ ‫پرینت‬ ‫برای‬override‫پس‬ ‫شوند‬garbage‫نمی‬ ‫ها‬ ‫آرایه‬ ‫شامل‬
‫شود‬
‫بد‬
‫دادید‬ ‫من‬ ‫به‬ ‫رو‬ ‫وقتتون‬ ‫که‬ ‫متشکرم‬ ‫خیلی‬):
@theteslaa
Amirjh.ir@gmail

More Related Content

Similar to جاوا

Java programming languages
Java programming languagesJava programming languages
Java programming languages
javadib
 
Scalable javascript application - طراحی نرم افزارهای مقیاس پذیر با جاوا اسکریپت
Scalable javascript application -  طراحی نرم افزارهای مقیاس پذیر با جاوا اسکریپتScalable javascript application -  طراحی نرم افزارهای مقیاس پذیر با جاوا اسکریپت
Scalable javascript application - طراحی نرم افزارهای مقیاس پذیر با جاوا اسکریپت
efazati
 
How Create Waf With Naxsi
How Create Waf With NaxsiHow Create Waf With Naxsi
How Create Waf With Naxsi
Yashar Esmaildokht
 
Yarn مروری بر
Yarn مروری بر Yarn مروری بر
Yarn مروری بر
nasser rezaei
 
آموزش دیتاگارد در اوراکل
آموزش دیتاگارد در اوراکلآموزش دیتاگارد در اوراکل
آموزش دیتاگارد در اوراکل
faradars
 
مقدمه ای بر F#
مقدمه ای بر F#مقدمه ای بر F#
مقدمه ای بر F#
Shahriar Yazdipour
 
Oracle نوشته مهندس اسمعیل دخت
Oracle  نوشته مهندس اسمعیل دختOracle  نوشته مهندس اسمعیل دخت
Oracle نوشته مهندس اسمعیل دخت
Yashar Esmaildokht
 
oop in php - Persian
oop in php - Persianoop in php - Persian
oop in php - Persian
Amir Shokri
 
Kotlin
KotlinKotlin
oCCc_24_Cloud_Design_Patterns
oCCc_24_Cloud_Design_PatternsoCCc_24_Cloud_Design_Patterns
oCCc_24_Cloud_Design_Patterns
Morteza Javan
 
Javascript
JavascriptJavascript
Javascript
javadboroji
 
Javascript
JavascriptJavascript
Javascript
javadboroji
 
آموزش نرم افزار صنعتی کنترل و مانیتورینگ LabVIEW
آموزش نرم افزار صنعتی کنترل و مانیتورینگ LabVIEWآموزش نرم افزار صنعتی کنترل و مانیتورینگ LabVIEW
آموزش نرم افزار صنعتی کنترل و مانیتورینگ LabVIEW
faradars
 
cloud services for libraries
cloud services for librariescloud services for libraries
cloud services for libraries
mahboubeh ghorbani
 
Microservices Workshop Part 1
Microservices Workshop Part 1Microservices Workshop Part 1
Microservices Workshop Part 1
Masoud Bahrami
 
معرفی ServiceWorker و کاربردهای آن
معرفی ServiceWorker و کاربردهای آنمعرفی ServiceWorker و کاربردهای آن
معرفی ServiceWorker و کاربردهای آن
Web Standards School
 
ارائه ابزار.pptx
ارائه ابزار.pptxارائه ابزار.pptx
ارائه ابزار.pptx
aminnezarat
 
Interview guidline elias shirouyeh
Interview guidline elias shirouyehInterview guidline elias shirouyeh
Interview guidline elias shirouyeh
ilia6328
 
Cloud Computing Impact on SE by Arman Taherian
Cloud Computing Impact on SE by Arman TaherianCloud Computing Impact on SE by Arman Taherian
Cloud Computing Impact on SE by Arman TaherianArman Taherian
 
Pg autoscaling in ceph
Pg autoscaling in  cephPg autoscaling in  ceph
Pg autoscaling in ceph
Yashar Esmaildokht
 

Similar to جاوا (20)

Java programming languages
Java programming languagesJava programming languages
Java programming languages
 
Scalable javascript application - طراحی نرم افزارهای مقیاس پذیر با جاوا اسکریپت
Scalable javascript application -  طراحی نرم افزارهای مقیاس پذیر با جاوا اسکریپتScalable javascript application -  طراحی نرم افزارهای مقیاس پذیر با جاوا اسکریپت
Scalable javascript application - طراحی نرم افزارهای مقیاس پذیر با جاوا اسکریپت
 
How Create Waf With Naxsi
How Create Waf With NaxsiHow Create Waf With Naxsi
How Create Waf With Naxsi
 
Yarn مروری بر
Yarn مروری بر Yarn مروری بر
Yarn مروری بر
 
آموزش دیتاگارد در اوراکل
آموزش دیتاگارد در اوراکلآموزش دیتاگارد در اوراکل
آموزش دیتاگارد در اوراکل
 
مقدمه ای بر F#
مقدمه ای بر F#مقدمه ای بر F#
مقدمه ای بر F#
 
Oracle نوشته مهندس اسمعیل دخت
Oracle  نوشته مهندس اسمعیل دختOracle  نوشته مهندس اسمعیل دخت
Oracle نوشته مهندس اسمعیل دخت
 
oop in php - Persian
oop in php - Persianoop in php - Persian
oop in php - Persian
 
Kotlin
KotlinKotlin
Kotlin
 
oCCc_24_Cloud_Design_Patterns
oCCc_24_Cloud_Design_PatternsoCCc_24_Cloud_Design_Patterns
oCCc_24_Cloud_Design_Patterns
 
Javascript
JavascriptJavascript
Javascript
 
Javascript
JavascriptJavascript
Javascript
 
آموزش نرم افزار صنعتی کنترل و مانیتورینگ LabVIEW
آموزش نرم افزار صنعتی کنترل و مانیتورینگ LabVIEWآموزش نرم افزار صنعتی کنترل و مانیتورینگ LabVIEW
آموزش نرم افزار صنعتی کنترل و مانیتورینگ LabVIEW
 
cloud services for libraries
cloud services for librariescloud services for libraries
cloud services for libraries
 
Microservices Workshop Part 1
Microservices Workshop Part 1Microservices Workshop Part 1
Microservices Workshop Part 1
 
معرفی ServiceWorker و کاربردهای آن
معرفی ServiceWorker و کاربردهای آنمعرفی ServiceWorker و کاربردهای آن
معرفی ServiceWorker و کاربردهای آن
 
ارائه ابزار.pptx
ارائه ابزار.pptxارائه ابزار.pptx
ارائه ابزار.pptx
 
Interview guidline elias shirouyeh
Interview guidline elias shirouyehInterview guidline elias shirouyeh
Interview guidline elias shirouyeh
 
Cloud Computing Impact on SE by Arman Taherian
Cloud Computing Impact on SE by Arman TaherianCloud Computing Impact on SE by Arman Taherian
Cloud Computing Impact on SE by Arman Taherian
 
Pg autoscaling in ceph
Pg autoscaling in  cephPg autoscaling in  ceph
Pg autoscaling in ceph
 

جاوا

  • 1. ‫در‬ ‫ها‬ ‫روشنایی‬ ‫و‬ ‫تاریک‬ ‫جاوا‬
  • 2. -‫شود‬ ‫ی‬ ‫بررس‬ ‫دقت‬‫با‬ ‫باید‬ ‫ی‬ ‫نویس‬ ‫برنامه‬ ‫بان‬‫ز‬‫یک‬. -‫ن‬‫ر‬‫ندا‬ ‫جاوا‬ ‫بطن‬ ‫از‬ ‫دقیقی‬‫توضیح‬ ‫اما‬ ‫هستند‬ ‫یادی‬‫ز‬ ‫های‬ ‫کتاب‬‫جاوا‬ ‫مورد‬‫در‬‫د‬. -‫نشود‬ ‫استفاده‬ ‫ای‬‫نمونه‬ ‫کد‬‫قطعه‬ ‫هیچ‬‫از‬ ‫شده‬‫سعی‬ ‫مقاله‬‫این‬‫در‬. ‫ماست‬ ‫حق‬ ‫عمیق‬ ‫دانش‬
  • 3. ‫ها‬ ‫بدی‬ ‫و‬ ‫موانع‬ ،‫ادامه‬ ‫در‬ ‫و‬ ‫جاوا‬ ‫های‬ ‫خوبی‬ ‫بررسی‬ ‫به‬ ‫ابتدا‬ ‫میپردازیم‬
  • 4. •‫امن‬ ‫زبانی‬/‫شده‬ ‫مدیریت‬ ‫تایم‬ ‫ران‬ -‫ندارد‬ ‫وجود‬ ‫ناخوانا‬ ‫باگ‬ ‫یا‬ ‫سگمنت‬ ‫ارور‬ -‫برنامه‬ ‫حمل‬ ‫امکان‬ ‫تسهیل‬ -‫افزارها‬ ‫سخت‬ ‫انواع‬ ‫روی‬ ‫بر‬ ‫اجرا‬ ‫امکان‬ -‫اجرا‬ ‫بستر‬ ‫ذاتی‬ ‫سازی‬ ‫پیاده‬ •‫لینکینگ‬ ‫داینامیک‬ -‫نیازمند‬ ‫الیبرری‬ ‫یک‬ ‫تغییر‬ ،‫گذشته‬ ‫در‬recompile‫بود‬ ‫ها‬ ‫کالینت‬ ‫کل‬ •‫شـبـاهـت‬‫به‬ ‫زیـاد‬ ‫گـرامـری‬C/C++ -‫نویسان‬ ‫برنامه‬ ‫از‬ ‫زیادی‬ ‫افراد‬ ‫بسرعت‬C‫و‬C++‫شدند‬ ‫جاوا‬ ‫به‬ ‫آلوده‬! -‫های‬ ‫مزیت‬ ‫از‬ ‫بسیاری‬Lisp‫و‬Smalltalk‫سینتکتیک‬ ‫فرهنگ‬ ‫تغییر‬ ‫شک‬ ‫بدون‬ ‫شد‬ ‫آن‬ ‫موفقیت‬ ‫باعث‬ ‫که‬ ‫جاوا‬ ‫های‬ ‫ویژگی‬
  • 5. •‫گرایی‬ ‫شی‬ -Encapsulation‫برای‬ ‫بدیهی‬ ‫نیاز‬ ‫یک‬isolation‫اجزا‬ -‫میشد‬ ‫محسوب‬ ‫بازاری‬ ‫نیاز‬ ‫یک‬ ‫این‬ ‫از‬ ‫غیر‬ ‫به‬ ‫اما‬ ،‫همینطور‬ ‫هم‬ ‫وراثت‬ •Static Typing -‫به‬ ‫قابلیت‬ ‫این‬IDE‫کند‬ ‫کمک‬ ‫کد‬ ‫سریعتر‬ ‫نوشتن‬ ‫در‬ ‫نویس‬ ‫برنامه‬ ‫به‬ ‫تا‬ ‫میدهد‬ ‫را‬ ‫امکان‬ ‫این‬(autocompletion, code generation) -‫با‬ ‫کدهای‬ ‫تولید‬ ‫قابلیت‬ ‫مجازی‬ ‫ماشین‬ ‫به‬performance‫دهد‬ ‫می‬ ‫را‬ ‫باال‬ ‫شد‬ ‫آن‬ ‫موفقیت‬ ‫باعث‬ ‫که‬ ‫جاوا‬ ‫های‬ ‫ویژگی‬
  • 6. •Threads -‫دوره‬ ‫شروع‬Uniprocessor‫و‬ ‫ها‬Concurrency‫همزمانی‬ ‫یا‬ -‫مفهوم‬thread‫باشد‬ ‫گنجیده‬ ‫زبان‬ ‫طراحی‬ ‫در‬ ‫باید‬‫نیست‬ ‫سازی‬ ‫شبیه‬ ‫قابل‬ ‫که‬ ‫چرا‬ - Peter Buhr: Are safe Concurrency Libraries Possible? Feb, 1995 - Hans Boehm: Threads cannot be implemented as a library. Feb 2010 •Garbage Collection -‫حافظه‬ ‫مدیریت‬ ‫به‬ ‫مربوط‬ ‫های‬ ‫باگ‬ ‫و‬ ‫ها‬ ‫ارور‬ ‫بردن‬ ‫بین‬ ‫از‬ •Exceptions -‫حافظه‬ ‫مدیریت‬ ‫به‬ ‫مربوط‬ ‫های‬ ‫باگ‬ ‫و‬ ‫ها‬ ‫ارور‬ ‫بردن‬ ‫بین‬ ‫از‬ ‫شد‬ ‫آن‬ ‫موفقیت‬ ‫باعث‬ ‫که‬ ‫جاوا‬ ‫های‬ ‫ویژگی‬
  • 7. ‫داشت‬ ‫بسزایی‬ ‫تاثیر‬ ‫جاوا‬ ‫موفقیت‬ ‫در‬ ‫موارد‬ ‫این‬ ‫حذف‬ •Lexical Macros -‫اند‬ ‫هم‬ ‫شبیه‬ ‫نظر‬ ‫به‬ ‫جاوا‬ ‫های‬ ‫برنامه‬ -Enabled programmer portability -Enabled world-class toolability •Multiple implementation inheritance •Operator Overloading •‫ها‬ ‫فایل‬ ‫هدر‬ ‫ساپورت‬ ‫عدم‬ •‫مستندات‬ ‫حذف‬API‫وسیله‬ ‫به‬ ‫خارجی‬Javadoc ‫می‬ ‫وارد‬ ‫که‬ ‫آنهایی‬ ‫اندازه‬ ‫به‬ ‫شوند‬ ‫می‬ ‫گذاشته‬ ‫کنار‬ ‫که‬ ‫چیزهایی‬ ‫دارند‬ ‫اهمیت‬ ،‫شوند‬
  • 8. •‫از‬ ‫تبدیل‬int‫به‬float‫از‬ ‫و‬long‫به‬double •‫یک‬ ‫باعث‬ ‫انتساب‬ ‫ترکیبی‬ ‫های‬ ‫عملگری‬cast‫شوند‬ ‫می‬ ‫نویس‬ ‫برنامه‬ ‫به‬ ‫اطالع‬ ‫بدون‬ Short I = -1; While (I != 0) I >>>=1; // I = (short) ( I >>> 1); •‫عملگرهای‬==‫و‬!=‫کنند‬ ‫می‬ ‫مقایسه‬ ‫را‬ ‫ها‬ ‫مرجع‬ ‫بد‬
  • 9. •‫شدند‬ ‫می‬ ‫ایجاد‬ ‫نباید‬ ‫دیفالت‬ ‫های‬ ‫سازنده‬ -‫نباید‬ ‫اینکه‬ ‫بدتر‬ ‫و‬public‫شدند‬ ‫می‬ •‫متد‬ ‫یک‬ ‫فراخوانی‬Override‫شود‬ ‫انجام‬ ‫نباید‬ ‫سازنده‬ ‫یک‬ ‫از‬ -‫شود‬ ‫می‬ ‫محسوس‬ ‫نا‬ ‫خطاهای‬ ‫باعث‬ ‫و‬ ‫ندارد‬ ‫معتبری‬ ‫استفاده‬ ‫هیچ‬ ‫که‬ ‫چرا‬ •Int‫و‬long‫عالمت‬ ‫بدون‬‫و‬byte‫دار‬ ‫عالمت‬ •‫بندی‬ ‫ترتیب‬ ‫در‬ ‫ایراد‬ ‫یک‬Exception‫ها‬ •‫با‬ ‫باید‬ ‫ها‬ ‫آرایه‬toString‫اطالعات‬ ‫پرینت‬ ‫برای‬override‫پس‬ ‫شوند‬garbage‫نمی‬ ‫ها‬ ‫آرایه‬ ‫شامل‬ ‫شود‬ ‫بد‬
  • 10. ‫دادید‬ ‫من‬ ‫به‬ ‫رو‬ ‫وقتتون‬ ‫که‬ ‫متشکرم‬ ‫خیلی‬): @theteslaa Amirjh.ir@gmail