+2 امتیاز
قبل در برنامه نویسی توسط (1.1هزار امتیاز)
برچسب گذاری دوباره قبل توسط

در JDK 7 یک قابلیت اضافه شده به نام Invokedynamic، آیا این قابلیت امکانی است که به JVM اضافه شده است یا زبان جاوا و چه مزیتی برای پلتفرم جاوا ایجاد کرده است؟

1 پاسخ

0 امتیاز
قبل توسط (1.1هزار امتیاز)

در حقیقت قابلیت Invokedynamic به ساختار بایت کد های JVM اضافه شده است و با فراهم کردن یک قابلیت فراخوانی متد انعطافپذیر، JVM را برای پیاده سازی زبان های داینامیک برروی آن آماده تر کرده است. زبان برنامه نویسی جاوا یک زبان ار نوع داده استاتیک است بدین معنی که وقتی یک فراخوانی متد انجام می شود، در زمان کامپایل باید نام متد معتبر و از قبل مشخص باید، پارامتر ها و مقدار بازگشتی متد نیز بهمین صورت باشد.

بایت کد های Invokedynamic این وضعیت رو تغییر داده اند، بدین صورت که امکان late binding را به فراخوانی های متد در JVM اضافه کرده اند. در این حالت مشخصات متد فراخوانی شده تا زمان انجام فراخوانی در زمان اجرا می تواند نامشخص باشد.

برای مثال با استفاده از بایت کد های Invokedynamic می توان بایت کد هایی تولید کرد که در آنها متد هایی که وجود ندارند فراخوانی می شوند!

در این لینک با مثال این قابلیت جدید JDK 7 مفصلتر توضیح داده شده است.

سوالات مشابه

+1 امتیاز
1 پاسخ 726 بازدید
سوال شده 11 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
+1 امتیاز
1 پاسخ 631 بازدید
سوال شده 10 سال قبل در برنامه نویسی توسط kashi (7.2هزار امتیاز)
0 امتیاز
1 پاسخ 558 بازدید
سوال شده 10 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
+2 امتیاز
2 پاسخ 1.3هزار بازدید
0 امتیاز
1 پاسخ 407 بازدید
+1 امتیاز
1 پاسخ 947 بازدید
سوال شده 10 سال قبل در برنامه نویسی توسط kashi (7.2هزار امتیاز)
+1 امتیاز
1 پاسخ 1.3هزار بازدید
سوال شده 6 سال قبل در برنامه نویسی توسط 1993 (242 امتیاز)
0 امتیاز
1 پاسخ 421 بازدید
+1 امتیاز
2 پاسخ 1.7هزار بازدید
سوال شده 7 سال قبل در برنامه نویسی توسط ssss (467 امتیاز)
...