Security মধ্যম

একটি নির্দিষ্ট ক্লাসের সাথে কাপলিং (coupling) না করে, নাম অনুসারে র‍্যান্ডম নাম্বার অ্যালগরিদম (random number algorithms) বেছে নিতে RandomGenerator ইন্টারফেস ব্যবহার করুন।

✕ Java 8
// Hard-coded to one algorithm
Random rng = new Random();
int value = rng.nextInt(100);

// Or thread-local, but still locked in
int value = ThreadLocalRandom.current()
    .nextInt(100);
✓ Java 17+
// Algorithm-agnostic via factory
var rng = RandomGenerator.of("L64X128MixRandom");
int value = rng.nextInt(100);

// Or get a splittable generator
var rng = RandomGeneratorFactory
    .of("L64X128MixRandom").create();
এই কোডে সমস্যা দেখছেন? আমাদের জানান।
🔧

অ্যালগরিদম-অ্যাগনস্টিক (Algorithm-agnostic)

কোড স্ট্রাকচার পরিবর্তন না করেই নাম অনুসারে সেরা RNG অ্যালগরিদম বেছে নিন।

উন্নত অ্যালগরিদম

উচ্চতর স্ট্যাটিস্টিকাল প্রোপার্টি (statistical properties) সহ আধুনিক LXM জেনারেটরগুলিতে অ্যাক্সেস করুন।

🔗

ইউনিফাইড API

একটি ইন্টারফেস Random, ThreadLocalRandom, SplittableRandom এবং আরও অনেক কিছু কভার করে।

পুরনো পদ্ধতি
new Random() / ThreadLocalRandom
আধুনিক পদ্ধতি
RandomGenerator ফ্যাক্টরি
JDK থেকে
17
কঠিনতা
মধ্যম
RandomGenerator ইন্টারফেস
উপলব্ধ

JDK 17 (সেপ্টেম্বর 2021, JEP 356) থেকে উপলব্ধ।

JDK 17 সমস্ত RNG ইমপ্লিমেন্টেশনের (implementations) জন্য একটি কমন ইন্টারফেস হিসাবে RandomGenerator চালু করেছে। new Random() বা ThreadLocalRandom কে হার্ড-কোডিং না করে, আপনি ফ্যাক্টরির মাধ্যমে নাম অনুসারে অ্যালগরিদম সিলেক্ট করতে পারবেন, যা বিভিন্ন ইউজ কেইসের জন্য অপ্টিমাইজড (স্পিড, স্ট্যাটিস্টিকাল কোয়ালিটি, স্প্লিটএবিলিটি) অ্যালগরিদমগুলোর মধ্যে অদলবদল করা সহজ করে তোলে।