কম্পিউটার

কিভাবে জাভা 9 এ স্ট্যাটিক VarHandle তৈরি করবেন?


VarHandle একটি ভেরিয়েবলের একটি রেফারেন্স, এবং এটি বিভিন্ন অ্যাক্সেস মোডের অধীনে ভেরিয়েবলগুলিতে অ্যাক্সেস প্রদান করে (যেমন প্লেইন পড়/লিখুন , অস্থির পড়/লিখুন , এবং তুলনা এবং অদলবদল ), java.util.concurrent.atomic দ্বারা প্রদত্ত কার্যকারিতার অনুরূপ এবং sun.misc.Unsafe . ভেরিয়েবলগুলি অ্যারে হতে পারে উপাদান, উদাহরণ অথবা স্থির একটি ক্লাসে ক্ষেত্র।

নিচের উদাহরণে, আমরা একটি স্ট্যাটিক ভেরিয়েবল হ্যান্ডেল তৈরি করতে পারি।

উদাহরণ

import java.lang.invoke.MethodHandles;
import java.lang.invoke.VarHandle;

public class StaticVarHandleTest {
   static int field;
   static int[] array = new int[20];
   static final VarHandle FIELD, ARRAY;
   static {
      try {
         FIELD = MethodHandles.lookup().in(StaticVarHandleTest.class).findStaticVarHandle(StaticVarHandleTest.class, "field", Integer.TYPE);
         ARRAY = MethodHandles.arrayElementVarHandle(int[].class);
      } catch(Exception e) {
         throw new InternalError(e);
      }
   }
   public static void main(String args[]) throws Exception {
      int i = (int)FIELD.getVolatile();
      System.out.println(i);
      FIELD.getAndAdd(5);
      System.out.println(field);
      System.out.println(ARRAY.getAndAdd(array, 5, 5));
      System.out.println(ARRAY.getAndAdd(array, 5, 5));
   }
}

আউটপুট

0
5
0
5

  1. কীভাবে জাভাতে ক্লাস সিঙ্গেলটন তৈরি করবেন?

  2. কিভাবে জাভা ব্যবহার করে একটি JSON অ্যারে লিখবেন/তৈরি করবেন?

  3. জাভাতে একটি কাস্টম আনচেক ব্যতিক্রম কীভাবে তৈরি করবেন?

  4. কীভাবে জাভাতে একটি অস্থায়ী ফাইল তৈরি করবেন