কম্পিউটার টিউটোরিয়াল

জাভা ভার্চুয়াল মেশিন (JVM)-এ ভেরিফিকেশন প্রক্রিয়া


JVM .class ফাইল থেকে বাইটকোড লোড করার পর, Bytecode Verifier সেটি ভেরিফাই করে নিরাপত্তা এবং সঠিকতা নিশ্চিত করে।

  • বাইটকোড স্ট্রাকচার যাচাই (সঠিক ম্যাজিক নাম্বর, ভার্সন)।
  • স্ট্যাক অন্ডারফ্লো/ওভারফ্লো চেক।
  • টাইপ সেফটি (অপারেন্ড টাইপ মেলে কিনা)।
  • অ্যাক্সেস কন্ট্রোল (private, final মেম্বার অ্যাক্সেস)।
  • অনরিচেয়েবল কোড, ইনফিনিট লুপ চেক।

ভেরিফিকেশন সফল হলে ইন্টারপ্রেটার/জিআইটি (JIT) কম্পাইলার কোড এক্সিকিউট করে। ভেরিফিকেশন ফেইল হলে VerifyError থ্রো হয়।

উদাহরণ

public class VerificationDemo {
    private float value = 0;

    float add(int val) {
        int balance = val;
        this.value += balance;
        return this.value;
    }

    public static void main(String[] args) {
        VerificationDemo obj = new VerificationDemo();
        System.out.println("Instance created");
        System.out.println(obj.add(3456)); // 3456.0
    }
}

এখানে বাইটকোড ভেরিফায়ার নিশ্চিত করে int থেকে float কনভারশন সঠিক, স্ট্যাক অপারেশন বৈধ, এবং অ্যাক্সেস মডিফায়ার মেনে চলা হয়েছে।

  1. জাভা ৯-এ JShell কী?

  2. JDK, JRE এবং JVM-এর পার্থক্য

  3. JVM জাভাতে কতগুলো মেমোরি এলোকেট করে এবং সেগুলো কী কী?

  4. জাভাতে Stream