# فناوری جاوا > برنامه‌نویسی جاوا > سوال: فرق java se و java EE

## ravand

سلام.
من از کجا بفهمم که فلان کد جاوا با java SE نوشته شده یا java EE?
اصلا اینا با هم چه فرقی در ظاهر دارن؟
متشکرم

----------


## amin1softco

تفاوت مابین Java EE و Java SE
تکنولوژی جاوا در زبان برنامه نویسی و پلاتفرم در هر دو یکسان است  . زبان برنامه نوسی یک زبان سطح بالا شی گرایی و دارای سینتکس و سبک خاصی است.
یک پلاتفرم جاوا دارای یک محیط خاص است که در اون برنامه های جاوا اجرا می شوند.
در اینجا چند پلاتفرم برای جاوا موجود است . خیلی از توسعه دهندگان حتی کسانی که سابقه خیلی طولانی کار با جاوا دارند چگونگی ارتباط پلاتفرم ها با یکدیگر را نمی فهمند.
*
پلاتفرم های زبان برنامه نویسی جاوا* 
4 پلاتفرم مختلف برای زبان جاوا وجود دارد :
    Java Platform, Standard Edition (Java SE)

    Java Platform, Enterprise Edition (Java EE)

    Java Platform, Micro Edition (Java ME)

    JavaFX

تمام پلاتفرم های جاوا شامل یک ماشین مجازی جاوا (VM)  و یک رابط برنامه نویسی کاربردی (API) هستند. ماشین مجازی جاوا یک برنامه برای یک سخت افزار خاص و پلات فرم نرم افزاری است. 
که برنامه ها با تکنولوژی جاوا را اجرا می کند یک api  مجموعه ایی از جز های نرم افزار ی است که شما می تونید از آنها  برای ساخت یک جزء نرم افزاری جدید یا برنامه کاربردی استفاده کنید.هر پلاتفرم جاوا یک ماشین مجازی و یک api فراهم می کند و این به برنامه هایی که روی آن پلاتفرم نوشته می شوند اجازه میدهد بتوانند روی هر سیستم سازگار با آن پلاتفرم با تمام مزایای زبان برنامه نویسی جاوا از قبیل مستقل از سکو بودن , قدرت , پایداری , توسعه راحت و امنیت  اجرا بشوند.

*Java SE* 
 زمانی که بیشتر مردم در مورد زبان جاوا فکر می کنند آنها در اصل Java SE API را در نظر دارند. Java SE's API  هسته توابع زبان برنامه نویسی جاوا  را فراهم می کند و در آن هر چیزی را از نوع های پایه و اشیاء زبان برنامه نویسی جاوا تا کلاس های سطح بالا که برای شبکه , امنیت , دسترسی به پایگاه داده , واسط کاربری گرافیکی و تجزیه xml  استفاده می شود را تعریف می شود .
علاوه بر هسته API پلاتفرم SE شامل یک ماشین مجازی , ابزرا توسعه , تکنولوژی های توسعه و کلاس کتابخانه ها و ابزار معمولی استفاده شده در برنامه هاییی با استفاده از تکنولوژی جاوا می شه.

*Java EE*
پلاتفرم Java EE بر روی پلاتفرم SE سوار شده است .این پلاتفرم  API  و محیط بلادرنگ برای توسعه و اجرای برنامه هایی تحت شبکه با مقیاس بزرگ , چند لایه , مقایسه پذیر , قابل اعتماد , و امن را فراهم می کند.

*Java ME*
این پلاتفرم یک API و یک ماشین مجازی جمع و جور برای اجرای برنامه های جاوا روی دیوایز های کوچک شبیه موبایل ها فراهم می کند  . API های این پلاتفرم یک زیر مجموعه از Java SE API است بجز یکسری کلاس های خاص که برای دیوایز ها کوچک و اختصاصی طراحی شده در بیشتر موارد برنامه های Java ME به عنوان کلاینت هایی هستند که از سرویس هایی که با  پلاتفرم Java EE طراحی شده استفاده می کنند.

*JavaFX*
این پلاتفرم  یک API رابط کاربری سبک برای ساخت صفحات اینترنتی است. برنامه های JavaFX از شتاب دهنده سخت افزاری (کارت گرافیک) و media engines برای تدارک دیدن مزیت و عملکرد بیشتر استفاده می کنند و یک دید همانند API های سطح بالا برای اتصال به منابع داده شبکه ایی دارند . برنامه های JavaFX شاید کلایت ها و استفاده کننده از سرویس های پلاتفرم Java EE باشند.
+

----------


## ravand

متشکرم که جواب دادید.
ولی من دنبال این مطالبی که شما گفتید نبودم. که اگه بودم کافی بود از ویکی پدیا یا از گوگل استفاده کنم و یه سرچ بکنم.
من سوالم رو واضح و روشن مطرح کردم کافیه یه بار دیگه بخونید.
من میخوام بدونم در ظاهر کدهای java SE و java EE چه فرقی دارن؟ مثلا شما در php یه شی گرایی دارید و یه غیر شی گرایی . وقتی به کدهای شی گرایی نگاه میکنی می بینی که کلاس داره ولی غیر شی گرایی کلاس (class) نداره.
حالا میدونم که جاوا کلا شی گرایی هست ولی بالاخره من باید تشخیص بدم که کدهای java SE و java EE چه فرقی در ظاهر دارن؟
متشکرم.

----------


## amin1softco

خوب شما هم اگر این توضیحات را مفهومی بخونید متوجه می شوید که از نظر قالب هیچ فرقی با هم ندارند ولی توابعی که به کار میره یا api ها متفاوت هستند مثلاً وقتی اول برنامه به import ها نگاه کنید و به api ها تسلط داشته باشید  باید تشخیص بدید کدام پلاتفرم است اگر تفاوتی داشته باشه چون در اصل تقریباً یکسان هستند در بیشتر توابع...

----------


## ravand

این که نشد دادا  :لبخند گشاده!: 
یعنی شما می فرمایید من یه مدتی باید جاوا کار کنم یا حرفه ای بشم تا بفهمم کدی که می نویسم java SE هست یا java EE ؟

----------

