জাভা 9 বৈশিষ্ট্য এবং উন্নতি

এই ব্লগের প্রজেক্ট জিগস এবং প্রধান জাভা 9 বৈশিষ্ট্যের অধীনে তৈরি করা মডিউলার কাঠামো হ'ল জেশেল (আরপিএল সরঞ্জাম), গুরুত্বপূর্ণ এপিআই পরিবর্তন এবং জেভিএম স্তর পরিবর্তন।

জাভা 9 এবং জাভা 9 বৈশিষ্ট্যগুলি প্রকাশ করা জাভা বাস্তুতন্ত্রের জন্য একটি মাইলফলক।প্রযুক্তির সাথে আপ টু ডেট থাকার জন্য এবং নতুন প্রবর্তনের সাথে জড়িত থাকা গুরুত্বপূর্ণ যা আপনার পরিচিতির পিছনে প্রয়োজন তা বুঝতে আপনার জন্য আরও গুরুত্বপূর্ণ প্রজেক্ট জিগের অধীনে বিকশিত মডুলার কাঠামোটি এই জাভা এসই রিলিজের অংশ হবে এবং এর প্রধান বৈশিষ্ট্যগুলি হ'ল জে শেল (আরপিএল সরঞ্জাম), জেভিএমের কার্য সম্পাদন এবং ডিবাগিবিলিটি উন্নত করতে গুরুত্বপূর্ণ এপিআই পরিবর্তন এবং জেভিএম-স্তর পরিবর্তন changes



জাভা 9 বৈশিষ্ট্যগুলি বিশদে বিশদমুক্ত করার আগে আসুন আমরা পূর্বের জাভা সংস্করণগুলিতে এক ঝলক দেখি এবং দেখি কী কী ত্রুটিগুলি ছিল এবং জাভা 9 কীভাবে এই অসঙ্গতিগুলি কাটিয়ে উঠতে সহায়তা করেছিল: -



  • জাভা স্ট্যান্ডার্ড সংস্করণ প্ল্যাটফর্ম এবং জেডিকে ছোট কম্পিউটারের ডিভাইসগুলির জন্য চলাচলযোগ্য ছিল না
  • জেডিকে সামগ্রিক সুরক্ষা এবং রক্ষণাবেক্ষণ ছিল না
  • অ্যাপ্লিকেশন কর্মক্ষমতা কোন সামগ্রিক উন্নতি ছিল
  • জাভা বিকাশকারীদের জাভা এসই এবং ইই প্লাটফর্ম উভয়ের জন্য কোড লাইব্রেরি এবং বৃহত্তর অ্যাপ্লিকেশনগুলি তৈরি করা এবং ধরে রাখা কঠিন ছিল

সি সি ++ এবং জাভা মধ্যে পার্থক্য

এই ব্লগ পোস্টে আমি জাভা 9 বৈশিষ্ট্যগুলি নিম্নলিখিত পদ্ধতিতে শ্রেণিবদ্ধ করব:



  1. জাভা 9-তে এপিআই আপডেটগুলি প্রক্রিয়া করুন
  2. জাভা 9 এ এইচটিটিপি / 2 ক্লায়েন্ট
  3. জাভা 9-তে জাভা শেল স্ক্রিপ্টিং (রিড-ইভাল-প্রিন্ট-লুপ)
  4. জাভা 9 এ মাল্টি রিলিজ জেআর ফাইলগুলি বৈশিষ্ট্যযুক্ত
  5. জাভা 9-তে আরও কনকুরન્સી আপডেটের বৈশিষ্ট্য
  6. জাভা 9 এ প্রজেক্ট জিগ্যাস

জাভা 9 তে নতুন কী?

আমি কয়েকটি নতুন জাভা 9 বৈশিষ্ট্য বাছাই করেছি, যা আমি জানার পক্ষে উপযুক্ত বলে মনে করি। আসুন দেখুন এই বৈশিষ্ট্যগুলি কী: -

জাভা 9-তে এপিআই আপডেটগুলি প্রক্রিয়া করুন

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

  • বর্তমান জেভিএম প্রক্রিয়া এবং জেভিএম দ্বারা প্রবর্তিত অন্য কোনও প্রক্রিয়াগুলির পিআইডি পাওয়া
  • পিআইডি, নাম এবং সংস্থান ব্যবহারের মতো তথ্য পাওয়ার জন্য সিস্টেমে চলমান প্রক্রিয়াগুলি গণনা করুন
  • প্রক্রিয়া গাছ পরিচালনা
  • সাবপ্রসেসগুলি পরিচালনা করা

আসুন একটি নমুনা কোড দেখুন, যা বর্তমান পিআইডি পাশাপাশি বর্তমান প্রক্রিয়া সম্পর্কিত তথ্যগুলি মুদ্রণ করে:



পাবলিক ক্লাস নিউ ফিচারস {পাবলিক স্ট্যাটিক অকার্যকর প্রধান (স্ট্রিং [] আরগস) {প্রসেসহ্যান্ডল কারেন্টপ্রসেস = প্রসেসহ্যান্ডল কোডারেন্ট () সিস্টেম.আউট.প্রিন্টলন ('পিআইডি:' + কারেন্টপ্রসেস.জিটপিড ()) প্রসেসহ্যান্ডেল.আইএনফো কারেন্টপ্রসেসআইএনফো = কারেন্টপ্রসেস.ইনফো () System.out.println ('তথ্য:' + বর্তমানপ্রসেসআইএনফো)}

জাভা 9 এ এইচটিটিপি / 2 ক্লায়েন্ট

এই জাভা 9 বৈশিষ্ট্যটি পরবর্তী প্রকাশগুলিতে পরিবর্তিত হবে এবং এমনকি সম্পূর্ণভাবে মুছে ফেলা হতে পারে বলে আশা করা হচ্ছে।

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

  • বেশিরভাগ এইচটিটিপি অনুরোধের সাথে কাজ করার জন্য একটি সহজ এবং সংক্ষিপ্ত এপিআই
  • HTTP / 2 নির্দিষ্টকরণের জন্য সমর্থন
  • আরও ভাল পারফরম্যান্স
  • ভাল নিরাপত্তা
  • আরও কিছু বর্ধন

নতুন API গুলি ব্যবহার করে কোনও HTTP GET অনুরোধ করার জন্য একটি নমুনা কোডটি দেখুন। নীচে মডিউল সংজ্ঞা ফাইল মডিউল- ইনফো.জভাতে সংজ্ঞায়িত করা হয়েছে:

মডিউল newfeatures j jdk.incubator.httpclient প্রয়োজন}

নিম্নলিখিত কোডটি HTTP ক্লায়েন্ট এপিআই ব্যবহার করে, যা jdk.incubator.httpclient মডিউলটির অংশ:

আমদানি করুন jdk.incubator.htp। নতুন ইউআরআই (http://httpbin.org/get)) .GET () .version (HttpClient.Version.HTTP_1_1)। বিল্ড () HTTPResponse.String প্রতিক্রিয়া = ক্লায়েন্ট.সেন্ড (অনুরোধ, HTTPResponse.BodyHandler.asString ()) System.out.println ('স্থিতির কোড:' + প্রতিক্রিয়া। স্ট্যাটাসকোড ())
System.out.println ('রেসপন্স বডি:' + রেসপন্স.বিডি ())}}

জাভা 9-তে জাভা শেল স্ক্রিপ্টিং (রিড-ইভাল-প্রিন্ট-লুপ)

আপনি অবশ্যই রুবি, স্কালা, গ্রোভি, ক্লোজার এবং অন্য কোনও সরঞ্জামকে কোনও সরঞ্জাম দিয়ে শিপিংয়ের মতো ভাষা দেখেছেন যা প্রায়শই বলা হয় REPL ( পঠন-মূল্য-মুদ্রণ-লুপ )। এই REPL সরঞ্জামটি ভাষা বৈশিষ্ট্যগুলি ব্যবহার করে দেখতে অত্যন্ত কার্যকর। উদাহরণস্বরূপ, স্কালায়, আমরা হিসাবে একটি সহজ হ্যালো ওয়ার্ল্ড প্রোগ্রাম লিখতে পারি স্কেলা> প্রিন্টলন ('হ্যালো ওয়ার্ল্ড')

এর কিছু সুবিধা জেহেল আরপিএল নিম্নরূপ:

  • অভিজ্ঞ বিকাশকারীরা তাদের প্রধান কোড বেসে এটি গ্রহণ করার আগে দ্রুত প্রোটোটাইপ এবং পরীক্ষা করতে পারেন
  • জাভা বিকাশকারীরা এখন একটি আরপিএল নিয়ে গর্ব করতে পারে

আসুন নীচের ছবিতে দেখানো মত জেসেল কমান্ডটি চালানো যাক:

জাভাতে পরিবর্তনযোগ্য এবং অপরিবর্তনীয় বস্তু

জেহেল হ্যালো ওয়ার্ল্ড উদাহরণ - জাভা 9 - এডুরেকা

জাভা 9 এ মাল্টি রিলিজ জেআর ফাইলগুলি বৈশিষ্ট্যযুক্ত

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

এখানে বর্তমান জেআর ফাইলগুলির একটি চিত্র তুলে ধরা হল:

জার রুট - একটি শ্রেণী - বি.ক্লাস - সি.সি.গ্লাস

মাল্টি-রিলিজ জেআর ফাইলগুলি এখানে কীভাবে দেখায়:

জার রুট - একটি শ্রেণী - বি.ক্লাস - সি.সি.গ্লাস - মিতা-আইএনএফ - সংস্করণ - 9 - একটি শ্রেণী - 10 - বি.ক্লাস

পূর্ববর্তী উদাহরণে, জেআর দুটি জাভা সংস্করণ – 9 এবং 10 এর জন্য ক্লাস ফাইলগুলি সমর্থন করে।

সুতরাং, পূর্বের জেআর যখন জাভা 9 এ কার্যকর করা হয় তখন সংস্করণগুলির অধীনে A.class - 9 ফোল্ডারগুলি কার্যকর করার জন্য বাছাই করা হয়।

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

জাভা 9-তে আরও কনকুরન્સી আপডেটের বৈশিষ্ট্য

এই আপডেটে, একটি নতুন ক্লাস, java.util.concurrent.Flow চালু করা হয়েছে, যা একটি পাবলিক সাবস্ক্রাইব কাঠামো বাস্তবায়নের জন্য নেস্টেড ইন্টারফেস রয়েছে। পাবলিক-সাবস্ক্রাইব ফ্রেমওয়ার্কটি ডেভেলপারদের এমন উপাদান তৈরি করতে সক্ষম করে যা ডেটা এবং গ্রাহকরা যা সাবস্ক্রিপশনের মাধ্যমে ডেটা গ্রাহক করে, যা তাদের পরিচালনা করে সেটআপ করে এমন সংস্থাগুলি ডেটাগুলির সরাসরি প্রবাহ গ্রহণ করতে পারে। চারটি নতুন ইন্টারফেস নিম্নরূপ:

তারিখের জন্য sql ডেটা টাইপ
  • java.util.concurrent.Flow.Publisher
  • java.util.concurrent.Flow.Subscriber
  • java.util.concurrent.Flow.Subscript
  • java.util.concurrent.Flow.Processor (যা উভয় প্রকাশক এবং গ্রাহক হিসাবে কাজ করে)।

জাভা 9 এ প্রজেক্ট জিগ্যাস

এই প্রকল্পের মূল লক্ষ্যটি ধারণাটি চালু করা introduce পরিমিতি সমর্থন জাভা 9 এ মডিউল তৈরি করার জন্য এবং তারপরে একইটি প্রয়োগ করুন জেডিকে এটাই, জেডিকে মডুলারাইজ করুন

কিছু সুবিধা এর পরিমিতি নিম্নরূপ:

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

বিভিন্ন আছে জে.পি. যা এই প্রকল্পের অংশ, যা নিম্নলিখিত:

  • জেপি 200 - মডুলার জেডিকে : এটি JDK কে সংকলনের সময়, গড়ার সময়, বা রানটাইমের সময় একত্রিত হতে পারে এমন একটি মডিউলগুলির সেটগুলিতে JDK সংশোধন করতে জাভা প্ল্যাটফর্ম মডিউল সিস্টেম প্রয়োগ করে।
  • জেপ 201 - মডুলার উত্স কোড : এটি জেডিকে সোর্স কোডকে মডিউলগুলিতে রূপান্তরিত করে এবং মডিউলগুলি সংকলনের জন্য বিল্ড সরঞ্জামগুলিকে উন্নত করে।
  • জেপ 220 - মডুলার রানটাইম চিত্রগুলি : এটি মডিউলগুলি সমন্বিত করতে এবং কার্য সম্পাদন, সুরক্ষা এবং রক্ষণাবেক্ষণযোগ্যতা উন্নত করতে JDK এবং JRE রানটাইম চিত্রগুলিকে পুনর্গঠন করে।
  • জেপ 260 - বেশিরভাগ অভ্যন্তরীণ এপিআইগুলিকে আবদ্ধ করে : এটি প্রচুর অভ্যন্তরীণ এপিআইগুলিকে সরাসরি বা প্রতিবিম্বের মাধ্যমে অ্যাক্সেস করার অনুমতি দেয়। পরিবর্তনের জন্য আবদ্ধ অভ্যন্তরীণ API গুলি অ্যাক্সেস করা বেশ ঝুঁকিপূর্ণ। এর ব্যবহার রোধ করতে এগুলি মডিউলগুলিতে আবদ্ধ করা হচ্ছে এবং যথাযথ এপিআই এর জায়গায় না আসা পর্যন্ত কেবলমাত্র সেই অভ্যন্তরীণ এপিআইগুলি উপলব্ধ রয়েছে যা ব্যাপকভাবে ব্যবহৃত হয়।
  • জেপ 261 - মডিউল সিস্টেম : এটি জাভা প্রোগ্রামিং ভাষা, জেভিএম এবং অন্যান্য স্ট্যান্ডার্ড এপিআই পরিবর্তন করে মডিউল সিস্টেম জাভা স্পেসিফিকেশন প্রয়োগ করে
  • JEP 282: jlink, জাভা লিঙ্কার : এটি প্যাকেজিং মডিউলগুলি এবং ছোট রান সময়ের মধ্যে তাদের নির্ভরতাগুলিকে মঞ্জুরি দেয়।

সুতরাং, এটি জাভা 9 এবং নতুন জাভা 9 বৈশিষ্ট্যগুলি সম্পর্কে ছিল।

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

জি আমাদের জন্য একটি প্রশ্ন ওটি? দয়া করে এই 'জাভা 9' ব্লগের মন্তব্য বিভাগে উল্লেখ করুন এবং আমরা যত তাড়াতাড়ি সম্ভব আপনার কাছে ফিরে আসব।