SlideShare a Scribd company logo
1 of 10
‫در‬ ‫ها‬ ‫روشنایی‬ ‫و‬ ‫تاریک‬
‫جاوا‬
-‫شود‬ ‫ی‬ ‫بررس‬ ‫دقت‬‫با‬ ‫باید‬ ‫ی‬ ‫نویس‬ ‫برنامه‬ ‫بان‬‫ز‬‫یک‬.
-‫ن‬‫ر‬‫ندا‬ ‫جاوا‬ ‫بطن‬ ‫از‬ ‫دقیقی‬‫توضیح‬ ‫اما‬ ‫هستند‬ ‫یادی‬‫ز‬ ‫های‬ ‫کتاب‬‫جاوا‬ ‫مورد‬‫در‬‫د‬.
-‫نشود‬ ‫استفاده‬ ‫ای‬‫نمونه‬ ‫کد‬‫قطعه‬ ‫هیچ‬‫از‬ ‫شده‬‫سعی‬ ‫مقاله‬‫این‬‫در‬.
‫ماست‬ ‫حق‬ ‫عمیق‬ ‫دانش‬
‫ها‬ ‫بدی‬ ‫و‬ ‫موانع‬ ،‫ادامه‬ ‫در‬ ‫و‬
‫جاوا‬ ‫های‬ ‫خوبی‬ ‫بررسی‬ ‫به‬ ‫ابتدا‬
‫میپردازیم‬
•‫امن‬ ‫زبانی‬/‫شده‬ ‫مدیریت‬ ‫تایم‬ ‫ران‬
-‫ندارد‬ ‫وجود‬ ‫ناخوانا‬ ‫باگ‬ ‫یا‬ ‫سگمنت‬ ‫ارور‬
-‫برنامه‬ ‫حمل‬ ‫امکان‬ ‫تسهیل‬
-‫افزارها‬ ‫سخت‬ ‫انواع‬ ‫روی‬ ‫بر‬ ‫اجرا‬ ‫امکان‬
-‫اجرا‬ ‫بستر‬ ‫ذاتی‬ ‫سازی‬ ‫پیاده‬
•‫لینکینگ‬ ‫داینامیک‬
-‫نیازمند‬ ‫الیبرری‬ ‫یک‬ ‫تغییر‬ ،‫گذشته‬ ‫در‬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 languagesjavadib
 
Scalable javascript application - طراحی نرم افزارهای مقیاس پذیر با جاوا اسکریپت
Scalable javascript application -  طراحی نرم افزارهای مقیاس پذیر با جاوا اسکریپتScalable javascript application -  طراحی نرم افزارهای مقیاس پذیر با جاوا اسکریپت
Scalable javascript application - طراحی نرم افزارهای مقیاس پذیر با جاوا اسکریپتefazati
 
Yarn مروری بر
Yarn مروری بر Yarn مروری بر
Yarn مروری بر nasser rezaei
 
آموزش دیتاگارد در اوراکل
آموزش دیتاگارد در اوراکلآموزش دیتاگارد در اوراکل
آموزش دیتاگارد در اوراکلfaradars
 
Oracle نوشته مهندس اسمعیل دخت
Oracle  نوشته مهندس اسمعیل دختOracle  نوشته مهندس اسمعیل دخت
Oracle نوشته مهندس اسمعیل دختYashar Esmaildokht
 
oop in php - Persian
oop in php - Persianoop in php - Persian
oop in php - PersianAmir Shokri
 
oCCc_24_Cloud_Design_Patterns
oCCc_24_Cloud_Design_PatternsoCCc_24_Cloud_Design_Patterns
oCCc_24_Cloud_Design_PatternsMorteza Javan
 
آموزش نرم افزار صنعتی کنترل و مانیتورینگ LabVIEW
آموزش نرم افزار صنعتی کنترل و مانیتورینگ LabVIEWآموزش نرم افزار صنعتی کنترل و مانیتورینگ LabVIEW
آموزش نرم افزار صنعتی کنترل و مانیتورینگ LabVIEWfaradars
 
Microservices Workshop Part 1
Microservices Workshop Part 1Microservices Workshop Part 1
Microservices Workshop Part 1Masoud Bahrami
 
معرفی ServiceWorker و کاربردهای آن
معرفی ServiceWorker و کاربردهای آنمعرفی ServiceWorker و کاربردهای آن
معرفی ServiceWorker و کاربردهای آنWeb Standards School
 
ارائه ابزار.pptx
ارائه ابزار.pptxارائه ابزار.pptx
ارائه ابزار.pptxaminnezarat
 
Interview guidline elias shirouyeh
Interview guidline elias shirouyehInterview guidline elias shirouyeh
Interview guidline elias shirouyehilia6328
 
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
 

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