জাভা ভার্চুয়াল মেশিন সম্পর্কে আপনার কী জানা উচিত?



এই ব্লগটি জাভা ভার্চুয়াল মেশিনের ধারণাকে বিশিষ্টভাবে তার আর্কিটেকচারের উপাদানগুলি এবং জেভিএম, জেআরই এবং জেডিকে-র মধ্যে মূল পার্থক্য সহ বিস্তারিতভাবে কভার করবে

ভাষাটি দীর্ঘদিন ধরে আইটি শিল্পে একটি জায়ান্ট। এটিতে কিছু শীর্ষ-ধারণা রয়েছে যা এটি অন্যান্য প্রোগ্রামিং ভাষার চেয়ে ভাল করে তোলে। এই জাতীয় একটি ধারণা জাভা ভার্চুয়াল মেশিন, এই নিবন্ধে, আমরা এর বিভিন্ন দিক সম্পর্কে শিখব বিস্তারিত ভার্চুয়াল মেশিন। এই ব্লগে আলোচিত বিষয়গুলি নিম্নলিখিত:

জাভা ভার্চুয়াল মেশিন কী?

জাভা ভার্চুয়াল মেশিন একটি প্ল্যাটফর্ম-স্বতন্ত্র অ্যাবস্ট্রাক্ট মেশিন যা একটি রানটাইম পরিবেশ সরবরাহ করে যেখানে জাভা বাইট কোডটি কার্যকর করা হয়।





এটি জাভা রানটাইম পরিবেশের একটি অংশ যা জাভা বাইটকোডকে মেশিন-পঠনযোগ্য ভাষায় রূপান্তর করে। প্রধান আমাদের একটি জাভা প্রোগ্রাম রয়েছে সেটিকে আসলে জাভা ভার্চুয়াল মেশিন বলে।

বড় ডেটা বিশ্লেষণের অ্যাপ্লিকেশন

জেভিএম - জাভা ভার্চুয়াল মেশিন - এডুরেকা

আমাদের জাভা ভার্চুয়াল মেশিনের প্রয়োজন কেন?

জাভা সম্পর্কিত যে কোনও বিকাশের জন্য এটি অত্যন্ত প্রয়োজনীয় যে কাজগুলি করে তার জন্য আমাদের জাভা ভার্চুয়াল মেশিনের প্রয়োজন। জাভা ভার্চুয়াল মেশিনটি কয়েকটি কাজ নিম্নলিখিত করে।



  • কোড লোড করে
  • কোড যাচাইকরণ
  • কোডটি কার্যকর করা
  • এটি অ্যাপ্লিকেশনগুলির জন্য রান-টাইম পরিবেশ সরবরাহ করে
  • স্মৃতি অঞ্চল
  • রেজিস্টার সেট
  • একটি আবর্জনা সংগ্রহের গাদা সরবরাহ করে
  • মারাত্মক ত্রুটিগুলির প্রতিবেদন করা
  • সরবরাহ করে a ক্লাস ফাইলের বিন্যাস

এই সমস্ত অপারেশন সহ, জাভা ভার্চুয়াল মেশিন জাভা বিকাশের একটি অবিচ্ছেদ্য অঙ্গ। আসুন জাভা ভার্চুয়াল মেশিন আর্কিটেকচারের সাহায্যে এটি কীভাবে কাজ করে তা বোঝার চেষ্টা করি।

জাভা ভার্চুয়াল মেশিন আর্কিটেকচার

জাভা ভার্চুয়াল মেশিন আর্কিটেকচারটি বেশ সহজ, এতে একটি মেমরি অঞ্চল, একটি শ্রেণি লোডার এবং অন্যান্য উপাদানগুলির মধ্যে একটি এক্সিকিউশন ইঞ্জিন রয়েছে। আসুন আমরা তাদের প্রত্যেককে বিস্তারিত আলোচনা করব discuss

ClassLoader

এটি একটি সাবসিস্টেম যা ক্লাস ফাইল লোড করতে ব্যবহৃত হয়। আমরা যখনই জাভাতে কোনও প্রোগ্রাম পরিচালনা করি, এটি সর্বদা ক্লাসলডার দ্বারা লোড করা হয়। প্রধান কার্যের মধ্যে ইনিশিয়েশন, লিঙ্কিং এবং লোডিং অন্তর্ভুক্ত। নীচে জাভায় অন্তর্নির্মিত শ্রেণিবদ্ধ রয়েছে।



    • বুটস্ট্র্যাপ ClassLoader - এটি এক্সটেনশন ClassLoader এর সুপার ক্লাস যা rt.jar ফাইল লোড করে।

    • এক্সটেনশন ClassLoader - এটি ডিরেক্টরিতে অবস্থিত জার ফাইলগুলি লোড করে।

    • সিস্টেম / অ্যাপ্লিকেশন ClassLoader - এটি শ্রেণিপথ থেকে শ্রেণিবদ্ধ করে।

    • অপারেশন লোড হচ্ছে - প্রথমে ClassLoader .class ফাইলগুলি লোড করে এবং বাইনারি বিন্যাসে সম্পর্কিত ডেটা তৈরি করে যা পদ্ধতি অঞ্চলে সংরক্ষণ করা হয়।

      java ডাবল থেকে ইনকে রূপান্তর করুন
    • সংযোগ অপারেশন - লোড করার পরে এটি প্রস্তুত, যাচাই করে এবং রেজোলিউশন করে। জেভিএম ক্লাস ভেরিয়েবলের জন্য মেমরির বরাদ্দ করে এবং মেমরিটিকে ডিফল্ট মানগুলিতে আরম্ভ করে। এটি। ক্লাস ফাইলটির সঠিকতা নিশ্চিত করে এবং যখন যাচাইকরণ ব্যর্থ হয়, আমরা রানটাইম ব্যতিক্রম ত্রুটি পাই।

    • আরম্ভ - সমস্ত স্ট্যাটিক ভেরিয়েবলগুলি এই পর্যায়ে কোড ব্লকে সংজ্ঞায়িত তাদের মানগুলির সাথে বরাদ্দ করা হয়।

জেভিএম মেমরি

  • পদ্ধতি অঞ্চল - এটি কোড, ক্ষেত্রের ডেটা, রানটাইম ধ্রুবক পুল, পদ্ধতি ডেটা ইত্যাদির মতো প্রতিটি শ্রেণীর জন্য কাঠামো সঞ্চয় করে

  • গাদা - গাদা রানের সময় অবজেক্টগুলি বরাদ্দ করা হয়।

  • জেভিএম ভাষার স্ট্যাকস - এটি স্থানীয় ভেরিয়েবল এবং ফলাফল সংরক্ষণ করে। এটি ফলাফল চাওয়া এবং প্রত্যাবর্তনে গুরুত্বপূর্ণ ভূমিকা পালন করে। যখনই কোনও পদ্ধতিতে অনুরোধ করা হয় তখন একটি ফ্রেম তৈরি করা হয় এবং অনুরোধটি শেষ হওয়ার সাথে সাথে এটি শেষ হয়ে যায়।

  • পিসি রেজিস্টার - এটিতে কার্যকর করা হচ্ছে এমন JVMin تعمیرের ঠিকানা বা অবস্থান রয়েছে।

  • নেটিভ মেথড স্ট্যাকস - অ্যাপ্লিকেশনগুলিতে ব্যবহৃত সমস্ত নেটিভ পদ্ধতি স্থানীয় পদ্ধতি স্ট্যাকগুলিতে উপস্থিত রয়েছে।

  • এক্সিকিউশন ইঞ্জিন - একটি এক্সিকিউশন ইঞ্জিনে একটি ভার্চুয়াল প্রসেসর, একটি দোভাষী এবং ক জেআইটি সংকলক

  • নেটিভ পদ্ধতি ইন্টারফেস - এটা যে সরবরাহ করে।

    জাভা সংযোজনকারী (এটি)

এখন যেহেতু আমরা জেভিএমের আর্কিটেকচারটি বুঝতে পেরেছি, আসুন কার্য সম্পাদন প্রক্রিয়া এবং কোড সংকলনটি একবার দেখুন।

সম্পাদন প্রক্রিয়া

জাভা কোডটি কার্যকর এবং সংকলনের সময় নিম্নলিখিত পদক্ষেপগুলি গ্রহণ করা হয়।

  • প্রধান পদ্ধতিটি একটি একক ফাইলে সংরক্ষণ করা হয় এবং অন্যান্য পদ্ধতিগুলি বিভিন্ন ফাইলে সংরক্ষণ করা হয়।
  • সংকলনের পরে এটি সংশ্লিষ্ট .class ফাইলগুলি সরবরাহ করবে যেগুলিতে সি-এর বিপরীতে কোনও লিঙ্ক ছাড়াই বাইট কোড থাকবে
  • মৃত্যুদন্ড কার্যকর করার সময়, শ্রেণি লোডার ব্যবহার করে যে কোনও লঙ্ঘনের জন্য শ্রেণিবদ্ধ ফাইলগুলি যাচাই করা হয়।
  • এর পরে, বাইটকোডটি সংশ্লিষ্ট নেটিভ মেশিন কোডে রূপান্তরিত হয়। এটি জাভা তুলনামূলকভাবে ধীর হওয়ার কারণও।

এখন যেহেতু আমরা জানি, কার্যকরকরণ কীভাবে কাজ করে, আসুন জেডিকে, জেআরই এবং জেভিএমের মধ্যে পার্থক্যটি একবার দেখে নেওয়া যাক।

জেডিকে, জেআরই এবং জেভিএমের মধ্যে পার্থক্য

এর মধ্যে কয়েকটি গুরুত্বপূর্ণ পার্থক্য নীচে দেওয়া হল জেডিকে , জেভিএম এবং জেআরই।

  1. জেডি কে মানে জাভা ডেভলপমেন্ট কিট, এবং জেআরই জাভা রানটাইম এনভায়রনমেন্ট এর জন্য দাঁড়িয়েছে।
  2. জেডি কে উন্নয়নের জন্য যেখানে জেআরই রান টাইম পরিবেশের জন্য।
  3. যে কোনও জাভা প্রোগ্রাম চালনার জন্য জেভিএম জেডিকে এবং জেআরইর একটি প্রয়োজনীয় অংশ।
  4. জেভিএম জাভা প্রোগ্রামিংয়ের একটি অবিচ্ছেদ্য অঙ্গ এবং প্ল্যাটফর্মের স্বাধীনতা সরবরাহ করে।

এটি আমাদের নিবন্ধের শেষে নিয়ে আসে যেখানে আমরা জাভা ভার্চুয়াল মেশিন সম্পর্কে বিস্তারিত জানলাম। আমি আশা করি এই টিউটোরিয়ালে আপনার সাথে যা ভাগ করা হয়েছে তার সাথে আপনি পরিষ্কার হয়ে গেছেন।

আপনি যদি 'জাভা ভার্চুয়াল মেশিন' সম্পর্কিত এই নিবন্ধটি প্রাসঙ্গিক পেয়ে থাকেন তবে এডুরেকা দেখুন , বিশ্বজুড়ে ছড়িয়ে থাকা 250,000 এরও বেশি সন্তুষ্ট শিক্ষার্থীর নেটওয়ার্ক সহ একটি বিশ্বস্ত অনলাইন লার্নিং সংস্থা।

আমরা আপনার যাত্রার প্রতিটি পদক্ষেপে আপনাকে সহায়তা করতে এবং জাভা বিকাশকারী হতে চান এমন শিক্ষার্থী এবং পেশাদারদের জন্য তৈরি একটি পাঠ্যক্রম নিয়ে হাজির। কোর্সটি আপনাকে জাভা প্রোগ্রামিংয়ে একটি প্রধান সূচনা দেওয়ার জন্য এবং হাইবারনেট ও স্প্রিংয়ের মতো বিভিন্ন জাভা ফ্রেমওয়ার্কের পাশাপাশি মূল এবং উন্নত জাভা উভয় ধারণার জন্য প্রশিক্ষণের জন্য তৈরি করা হয়েছে।

আপনি যদি কোনও প্রশ্ন আসে তবে 'জাভা ভার্চুয়াল মেশিন' এর মন্তব্য বিভাগে আপনার সমস্ত প্রশ্ন জিজ্ঞাসা করতে দ্বিধা বোধ করবেন এবং আমাদের দলটি উত্তর দিতে পেরে খুশি হবে।