زمان کنونی: ۰۱ اردیبهشت ۱۴۰۳, ۱۰:۱۴ ق.ظ مهمان گرامی به انجمن مانشت خوش آمدید. برای استفاده از تمامی امکانات انجمن می‌توانید عضو شوید.
گزینه‌های شما (ورودثبت نام)

زبان جاوا ( Java ) ؟

ارسال:
  

younes پرسیده:

زبان جاوا ( Java ) ؟

سلام دوستان ،
سوالم اینه که زبان java کمپایلری هست یا مفسری ؟؟؟ و دیگه اینکه انقیاد در جاوا از نوع early هست یا Late ؟؟؟
پیشاپیش تشکر از جوابهاتون Heart
نقل قول این ارسال در یک پاسخ

۰
ارسال:
  

blackhalo1989 پاسخ داده:

زبان جاوا ( Java ) ؟

نمیدونم این دقیقا جواب شما هست یا نه، ولی امیدوارم به دردتون بخوره:
کدهای نوشته شده به زبان جاوا با توسط javac.exe (در ویندوز) تبدیل میشه به بایت کد جاوا. بایت کد شبیه کد زبان ماشینه، به عبارت دیگه کد زبان ماشین برای ماشین مجازی جاواست. ماشین مجازی جاوا، یه ماشین پشته ایه که دقیقا مثل ماشین های واقعی دارای instruction set هست. بایت کد، ساختاری مشابه ساختار کد زبان ماشین برای یک ماشین پشته ای رو داره.
در مرحله بعدی برای اجرا، بایت کد جاوا داده میشه به ماشین مجازی جاوا (همون java.exe در ویندوز). ماشین مجازی اون رو تبدیل به کد زبان ماشین میکنه و اون رو اجرا میکنه(چون تنها چیزی که روی کامپیوتر میتونه اجرا بشه کد زبان ماشینه). تا جایی که من میدونم قبلا به صورت مفسری این کار رو میکرد ولی الان ترکیبی از مفسری و کامپایلری هست به این معنی که کدهایی که قراره زیاد استفاده بشن(مثل حلقه ها) رو به زبان ماشین ترجمه میکنه(برای سرعت اجرای بیشتر).
نقل قول این ارسال در یک پاسخ

۰
ارسال:
  

younes پاسخ داده:

زبان جاوا ( Java ) ؟

ممنونم دوستان عزیز blackhalo1989 و a.nikfarjam از اینکه جواب دادین . دلیل این که من این سوال رو مطرح کردم این بود که : توکتاب مقسمی دقیقا این جمله نوشته شده : جاوا یک زبان شبیه ++C ولی تفسیری است ، اماتو تستها ، تست سال ۸۶ میگه که زبانها رو ازنظر کمپایلری بودن یا مفسری بودن دسته بندی کنید و تو جواب جاوا شد از نوع کمپایلری . و تست سال ۸۵ هم میگه جاوا از نوع early binding است ، و همونطور که میدونید زبانهایی early binding هستند که کمپایلری باشن ، یعنی باز هم جاوا شد کمپایلری و این جمله آقای مقسمی منو یه ذره گیج کرد که بالاخره این جاوا کمپایلری هست یا مفسری . به هرحال با این تفاسیر ما از همین تریبون جاوا رو کمپایلری اعلام مینماییم Big Grin
اگه کسی از دوستان نظری داشتن بگن تا بقیه هم فیض حاصل کنیم.
با تشکر از شما دوستان عزیز و از همه دوستان Heart

(۲۳ دى ۱۳۹۱ ۰۳:۴۹ ب.ظ)a.nikfarjam نوشته شده توسط:  جاوا از مکانیزم Late Binding استفاده می کنه
اگه نمی گفتین early یا late واقعا نمی دونستم معنی کلمه انقیاد چیه Smile

ممنونم دوست من . اما دقیقا تست سال ۸۵ عکس جمله شماست . " یعنی جاوا از مکانیزم Early Binding استفاده میکنه " .
تست اینه :

کدام یک از زبانهای زیر جزو زبانهای Early Binding محسوب می شوند ؟ ( مهندسی کامپیوتر - دولتی ۸۵ )

۱) Lisp
۲) Java
۳) Smalltalk
۴) هیچکدام

طبق کتاب آقای مقسمی گزینه درست ۲ هست .
نقل قول این ارسال در یک پاسخ

۰
ارسال:
  

Lonely Palm پاسخ داده:

RE: زبان جاوا ( Java ) ؟

خوب دقیقا همونطوری که دوستمون blackhalo فرمودن، قبلا تمام بایت کدها توسط ماشین مجازی باید تفسیر میشد، ولی این دلیل نمیشه که بگیم قبلا هم زبان جاوا مفسری بوده کلا. بهرحال کدهای ما توسط javac به بایت کد کامپایل میشدن، پس همون موقع هم مرحله اول که تبدیل سورس کد به بایت کد بوده و توسط javac انجام می شده، کامپایلری بوده و بعد مرحله بارگذاری کلاس ها توی ماشین مجازی و اجرای برنامه توسط JRE، تفسیری.
بعد از اینکه دیدن این کار باعث کندی اجرای برنامه های جاوا شده، اومدن رو یه پروژه به اسم HotSpot کار کردن که یک ماشین مجازی جدید برای جاوا بود که از تکنیک کامپایل (JIT ( Just In Time برای بایت کدها بهره می بره. جالبه که بدونید از نسخه ی ۱/۳ جاوا ماشین مجازی پیش فرض جاوا شد همین HotSpot و کاملا به زبان ++C نوشته شده
نسخه ی JRE عرضه توسط شرکت Oracle دو ورژن متفاوت داره، نسخه ی کلاینت و نسخه ی سرور. نسخه ی کلاینت به کلی از شیوه ی تفسیر بایت کدها استفاده می کنه یعنی همون روش قدیمی. ولی نسخه ی سرور از تکنیک های JIT برای کامپایل بایت کدها استفاده می کنه. البته نه همه ی بابت کدها، بلکه از شمارنده استفاده می کنه که ببینه یه کد خاص چند بار مورد استفاده قرار می گیره، اگر از مقدار سطح آستانه ای که پیش فرض در نظر می گیره بالاتر بود اون رو کامپایل می کنه ( در تایید و تکمیل فرمایشات جناب blackhalo )
اما در مورد Binding توی جاوا
مجبوریم با مثال پیش بریم
کد:
class A
{
public void foo()
{
System.out.println("I am print method in Class A");
}
}
class B extends A
{
public void foo()
{
System.out.println("I am print method in Class B");
}
}
public class C
{
public static void main(String [] args)
{
A a=new A();
B b=new B();
a.foo();
b.foo();
A ref=null;
ref=b;
ref.foo();
یه کد خیلی ساده. خوب مسلما تو فراخوانی اولین و دومین متد، جاوا به نظر می رسه که داره از early binding استفاده می کنه
اما این تصمیم مسلما برمی گرده به اینکه، توی سلسله مراتب ارث بری جاوا چه رفتاری از خودش نشون میده، اونجا می تونیم تصمیم بگیریم
و می بینیم تو اجرای کد ()ref.foo جاوا پیغام کلاس فرزند رو چاپ می کنه نه کلاس والد رو. این مثال نقض، نشون میده یا آقای مقسمی اشتباه کردن تو پاسخشون یا طراح سوال کنکور!
نقل قول این ارسال در یک پاسخ

۰
ارسال:
  

blackhalo1989 پاسخ داده:

زبان جاوا ( Java ) ؟

الان تو کلاینت هم از HotSpot استفاده میشه. کافیه java -version بگیرید.

در تایید مثال آقای نیک فرجام، چیزی که گفتن رو بهش میگن run-time polymorphism. البته من دقیقا یادم نیست انقیاد چیه!
نقل قول این ارسال در یک پاسخ

۰
ارسال:
  

equilibrium پاسخ داده:

RE: زبان جاوا ( Java ) ؟

(۲۳ دى ۱۳۹۱ ۰۲:۳۴ ب.ظ)younes نوشته شده توسط:  سلام دوستان ،
سوالم اینه که زبان java کمپایلری هست یا مفسری ؟؟؟ و دیگه اینکه انقیاد در جاوا از نوع early هست یا Late ؟؟؟
پیشاپیش تشکر از جوابهاتون Heart

در زبانی که اغلب کنترل نوع ها به زمان اجرا موکول میشه، انقیادها دیررسن؛ و چیزی که این انقیادها رو در لحظه اجرا انجام میده مفسر اون زبان هست؛
زبان جاوا مثل c++ بیشتر کنترل نوع ها رو در کامپایل انجام میده و در لحظه اجرا type هر متغیر معلوم و غیر قابل تغییره (یعنی انقیاد به نوعش در کامپایل انجام شده)؛ منتها خروجی کامپایل یه برنامه جاوا همونطور که دوستان اشاره کردن کد قابل اجرای ماشین نیست، اما تا اجرا شدن فقط یک قدم فاصله داره که این قدمو VM انجام میده. بهمین علت جاوا رو کامپایلری در نظر میگیرن تا مفسری؛
نقل قول این ارسال در یک پاسخ

۰
ارسال:
  

younes پاسخ داده:

زبان جاوا ( Java ) ؟

از همه دوستان بابت پاسخ متشکرم . متوجه شدم . واقعا ممنونم.
نقل قول این ارسال در یک پاسخ

ارسال:
  

Lonely Palm پاسخ داده:

زبان جاوا ( Java ) ؟

جاوا از مکانیزم Late Binding استفاده می کنه
اگه نمی گفتین early یا late واقعا نمی دونستم معنی کلمه انقیاد چیه Smile
نقل قول این ارسال در یک پاسخ



موضوع‌های مرتبط با این موضوع...
موضوع: نویسنده پاسخ: بازدید: آخرین ارسال
  کدام زبان برای هوش مصنوعی بهتر است؟ فرق بین زبان های هوش مصنوعی چیست؟ azam2075 ۳ ۵,۴۹۶ ۱۴ مهر ۱۴۰۰ ۰۷:۲۱ ب.ظ
آخرین ارسال: علیصا
  آموزش رایگان جاوا اسکریپت djhamid33 ۰ ۱,۳۱۳ ۰۸ دى ۱۳۹۹ ۱۲:۳۱ ق.ظ
آخرین ارسال: djhamid33
  رفع اشکال نصب جاوا، مشکل ساخته نشدن virtual machine shiivaa ۱۲ ۱۹,۲۴۳ ۱۹ آبان ۱۳۹۹ ۰۷:۲۹ ب.ظ
آخرین ارسال: wanted471
  خرید کتاب زبان اصلی آموزش برنامه نویسی جاوا moslem73421 ۶ ۵,۴۱۸ ۱۴ فروردین ۱۳۹۹ ۰۹:۰۶ ب.ظ
آخرین ارسال: marvelous
  منبع خوب برای یادگیری JAVA SCRIPT marvelous ۰ ۱,۹۷۳ ۰۷ آبان ۱۳۹۸ ۰۱:۱۵ ق.ظ
آخرین ارسال: marvelous
  کلاس خیلی خوب برا جاوا ممنون میشم معرفی کنید sogiii ۴ ۴,۹۵۴ ۱۴ تیر ۱۳۹۷ ۰۱:۵۲ ب.ظ
آخرین ارسال: AreF95
  آموزش برنامه نویسی با جاوا sisili ۰ ۱,۹۴۳ ۳۱ مرداد ۱۳۹۶ ۰۵:۰۷ ب.ظ
آخرین ارسال: sisili
  دانلود رایگان کتاب «زبان عمومی دکتری زیر ذره بین» مرجع اصلی زبان کنکور دکتری generalenglish ۰ ۳,۷۰۳ ۱۸ اردیبهشت ۱۳۹۶ ۰۹:۴۳ ب.ظ
آخرین ارسال: generalenglish
  شی dateدر زبان جاوا اسکریپت zohre321 ۱۵ ۸,۳۶۰ ۱۶ اردیبهشت ۱۳۹۶ ۰۹:۴۱ ب.ظ
آخرین ارسال: sixsixsix
  پاورپوینت جاوا به زبان فارسی sepid ۱ ۲,۳۵۰ ۱۳ اردیبهشت ۱۳۹۶ ۱۲:۱۹ ق.ظ
آخرین ارسال: kilookiloo

پرش به انجمن:

Can I see some ID?

به خاطر سپاری رمز Cancel

Feeling left out?


نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. رمزت رو فراموش کردی؟ اینجا به یادت میاریم! close

رمزت رو فراموش کردی؟

Feeling left out?


نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. close