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

জাভা ৯-এ যোগ করা প্রধান ফিচার ও উন্নতিগুলো

অরাকেল জাভা ৯ ভার্সন একটি সমৃद्ध নতুন ফিচার সেট এবং অনেক নতুন উন্নতি নিয়ে রিলিজ করেছে।

নিচে জাভা ৯-এ চালু করা কিছু গুরুত্বপূর্ণ ফিচার ও উন্নতিগুলো দেওয়া হলো:

  • ফ্যাক্টরি মেথড ফর কালেকশন: ফ্যাক্টরি মেথড হলো 스페শাল টাইপের স্ট্যাটিক মেথড যা অনমডিফাইয়েবল কালেকশন ইনস্ট্যান্স তৈরি করতে ব্যবহৃত হয়, অর্থাৎ আমরা এই মেথডগুলো ব্যবহার করে লিস্ট, সেট এবং ম্যাপ তৈরি করতে পারি।
  • জাভা প্ল্যাটফর্ম মডিউল সিস্টেম (JPMS): একটি জাভা মডিউল হলো জাভা অ্যাপ্লিকেশন ও জাভা প্যাকেজকে একটি জাভা মডিউলে বান্ডেল করার মেকানিজম। এটি স্পেসিফাই করে কোন জাভা প্যাকেজগুলো অন্যান্য জাভা মডিউল দিয়ে ভিজিবল থাকবে।
  • ইন্টারফেসে প্রাইভেট মেথড: ইন্টারফেসে প্রাইভেট এবং প্রাইভেট স্ট্যাটিক মেথড অন্তর্ভুক্ত করার অনুমতি দেয়া হয়েছে, যা ইন্টারফেসের ভিতরে কোড রি-ইউজেবিলিটি বাড়ায়।
  • জাভা ৯ REPL (JShell): JShell হলো একটি REPL (Read Evaluate Print Loop) টুল যা কমান্ড লাইন থেকে চলে। আমরা কনসোল থেকে জেশেল লঞ্চ করে সরাসরি জাভা কোড টাইপ ও এক্সিকিউট করতে পারি।
  • Try With Resources Improvement: জাভা ৭-এ try-with-resources ফিচার চালু করা হয়েছিল যা রিসোর্স অটোমেটিক্যালি ক্লোজ করতে সাহায্য করে।
  • ডায়ামন্ড অপারেটর ফর অ্যানোনিমাস ইনার ক্লাস: জাভা ৯-এ ডায়ামন্ড অপারেটর অ্যানোনিমাস ক্লাস-এর সাথে ব্যবহার করার ফিচার যোগ করা হয়েছে।
  • Completable Future API Improvements: জাভা ৯ ভার্সনে CompletableFuture API উন্নত করা হয়েছে জাভা ৮-এ উত্থান সমস্যা সমাধানের জন্য। ডिले ও টাইমআউট সাপোর্ট, ইউটিলিটি মেথড ও बेटার সাব-ক্লাসিং যোগ করা হয়েছে।
  • রিয়েক্টিভ স্ট্রিমস (Reactive Streams): রিয়েক্টিভ স্ট্রিম API হলো একটি পাবলিশ-সাবস্ক্রাইব ফ্রেমওয়ার্ক যা জাভা ল্যাঙ্গুয়েজ ব্যবহার করে অ্যাসিঙ্ক্রোনাস, স্কেলেবল এবং প্যারালাল অ্যাপ্লিকেশন বাস্তবায়ন করতে সাহায্য করে।
  • Process API Improvements: Process API-এর দায়িত্ব অপারেটিং সিস্টেম প্রসেস কন্ট্রোল ও ম্যানেজ করা যা উল্লেখযোগ্যভাবে উন্নত হয়েছে। ProcessHandle ক্লাস প্রসেসের নেটিভ প্রসেস আইডি, স্টার্ট টাইম, অ্যাকিউমুলেটেড সিপিইউ টাইম, আর্গুমেন্টস, কমান্ড, ইউজার, পেরেন্ট প্রসেস এবং ডিসেন্ডেন্টস প্রদান করে।
  • Optional Class Improvements: জাভা ৯-এ Optional ক্লাসের তিনটি প্রধান উন্নতি: Optional.ifPresentOrElse(), Optional.or() এবং Optional.stream()।
  • Stream API Improvements: Stream API উন্নত হয়েছে এবং Stream ইন্টারফেসে নতুন মেথড যোগ করা হয়েছে। takeWhile(), dropWhile(), ofNullable() এবং iterate() মেথড যোগ করা হয়েছে স্ট্রিম এলিমেন্টের ওপর অপারেশন করার জন্য।
  • মাল্টি-রেজোলিউশন ইমেজ API (Multi-Resolution Image API): মাল্টি-রেজোলিউশন ইমেজ API বিভিন্ন উচ্চতা ও প্রস্থ वाली ইমেজের সেটকে এনক্যাপসুলেট করে যা আমাদের রিকোয়ারমেন্ট অনুযায়ী কুয়েরি করার অনুমতি দেয়।
  • HTTP/2 Client: HTTP/2 হলো HTTP প্রোটোকল-এর নতুন ভার্সন যা ফোকাস করে ডেটা কীভাবে সার্ভার ও ক্লায়েন্টের মধ্যে ফ্রেমড ও ট্রান্সপোর্ট হয়। জাভা ৯-এ HTTP Client মডিউল ইনকিউবেটর মডিউল হিসেবে বান্ডেল করা হয়েছে এবং HTTP/2 সাপোর্ট করে ব্যাকওয়ার্ড কম্প্যাটিবিলিটির সাথে।
  • Enhanced @Deprecated annotation: @Deprecated অ্যানোটেশন ডিপ্রিকেটেড API-র সম্পর্কে আরও ইনফরমেশন প্রদান করতে পারে। এটি অ্যাপ্লিকেশনের ডিপ্রিকেটেড API-এর স্ট্যাটিক ইউজেস বিশ্লেষণ করার টুলও প্রদান করতে পারে।
  1. জাভাতে JComboBox এবং JList-এর মধ্যে পার্থক্য কী?

  2. জাভাতে JRadioButton এবং JCheckBox-এর পার্থক্য কী?

  3. জাভাতে JTextField এবং JTextArea-এর পার্থক্য কী?

  4. জাভাতে JFrame এবং JDialog-এর পার্থক্য কী?