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

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

1 پاسخ

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

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

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

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

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

سوالات مشابه

+1 امتیاز
1 پاسخ 594 بازدید
سوال شده 10 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
+1 امتیاز
1 پاسخ 521 بازدید
سوال شده 9 سال قبل در برنامه نویسی توسط kashi (7.2هزار امتیاز)
0 امتیاز
1 پاسخ 439 بازدید
سوال شده 10 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
+2 امتیاز
2 پاسخ 1.1هزار بازدید
0 امتیاز
1 پاسخ 298 بازدید
+1 امتیاز
1 پاسخ 816 بازدید
سوال شده 9 سال قبل در برنامه نویسی توسط kashi (7.2هزار امتیاز)
+1 امتیاز
1 پاسخ 1.2هزار بازدید
سوال شده 5 سال قبل در برنامه نویسی توسط 1993 (242 امتیاز)
0 امتیاز
1 پاسخ 312 بازدید
+1 امتیاز
2 پاسخ 1.3هزار بازدید
سوال شده 7 سال قبل در برنامه نویسی توسط ssss (467 امتیاز)
...