বৈশিষ্ট্য | বর্ণনা | উদাহরণ | সুবিধা |
---|---|---|---|
ল্যাম্বডা প্যারামিটারের জন্য স্থানীয়-ভেরিয়েবল সিনট্যাক্স | ব্যবহারের অনুমতি দেয় var উন্নত পঠনযোগ্যতার জন্য ল্যাম্বডা এক্সপ্রেশনে। | (var x, var y) -> x + y | কোডে ধারাবাহিকতা। |
HTTP ক্লায়েন্ট (স্ট্যান্ডার্ড) | নতুন HTTP ক্লায়েন্ট API HTTP/1.1 এবং HTTP/2 সমর্থন করে। | HttpClient ক্লায়েন্ট = HttpClient.newHttpClient(); | আধুনিক, বৈশিষ্ট্য সমৃদ্ধ API। |
এপসিলন: একটি নো-অপ আবর্জনা সংগ্রাহক | একটি আবর্জনা সংগ্রহকারী যা স্মৃতি পুনরুদ্ধার করে না। | java -XX:+EpsilonGC MyApp ব্যবহার করুন | কর্মক্ষমতা পরীক্ষার জন্য দরকারী। |
নেস্ট-ভিত্তিক অ্যাক্সেস কন্ট্রোল | নেস্টেড প্রকারের জন্য অ্যাক্সেস নিয়ন্ত্রণ সহজ করে। | ব্যক্তিগত স্ট্যাটিক ক্লাস NestedClass {} | উন্নত কর্মক্ষমতা। |
ডায়নামিক ক্লাস-ফাইল কনস্ট্যান্ট | নতুন ধ্রুবক পুল ফর্ম CONSTANT_গতিশীল . | N/A | খরচ এবং সীমাবদ্ধতা হ্রাস. |
স্ট্রিং API বর্ধিতকরণ | নতুন পদ্ধতির মত লাইন() , ফালা() , এবং পুনরাবৃত্তি (int) . | text.strip() | আরও শক্তিশালী স্ট্রিং ম্যানিপুলেশন। |
ফাইল এপিআই এনহান্সমেন্ট | স্ট্রিং হিসাবে ফাইল পড়া এবং লেখার পদ্ধতি। | Files.writeString(পথ, "হ্যালো!"); | ফাইল অপারেশন সহজ করে. |
ইউনিকোড 10 | সর্বশেষ ইউনিকোড স্ট্যান্ডার্ড সমর্থন করে। | N/A | আরো ব্যাপক চরিত্র সমর্থন. |
ফ্লাইট রেকর্ডার | অন্তর্নির্মিত প্রোফাইলিং টুল. | N/A | উন্নত কর্মক্ষমতা নিরীক্ষণ. |
Java EE এবং CORBA মডিউল অপসারণ | Java EE এবং CORBA মডিউল সরানো হয়েছে। | N/A | স্ট্রীমলাইনড JDK। |
Pack200 টুলস এবং API বাতিল করুন | বন্ধ করা Pack200 কম্প্রেশন টুল এবং API | N/A | ভবিষ্যতে অপসারণের সংকেত। |
Java 11 অন্বেষণ করার মতো অসংখ্য বৈশিষ্ট্য এবং বর্ধিতকরণ চালু করেছে। নীচে, আমরা এই নতুন বৈশিষ্ট্যগুলির প্রতিটিতে গভীরভাবে ডুব দেব, বিস্তারিত বর্ণনা, ব্যবহারিক উদাহরণ এবং তারা বিকাশকারীদের জন্য যে সুবিধাগুলি নিয়ে আসে তা প্রদান করব।
ল্যাম্বডা প্যারামিটারের জন্য স্থানীয়-ভেরিয়েবল সিনট্যাক্স
জাভা 11-এর সবচেয়ে উল্লেখযোগ্য সংযোজনগুলির মধ্যে একটি হল সমর্থন var
ল্যাম্বডা এক্সপ্রেশনে কীওয়ার্ড। এই বৈশিষ্ট্যটি সিনট্যাক্সকে সহজ করে এবং বিকাশকারীদের ব্যবহারের অনুমতি দিয়ে কোড পাঠযোগ্যতা উন্নত করে var
অন্তর্নিহিতভাবে টাইপ করা ল্যাম্বডা এক্সপ্রেশনের আনুষ্ঠানিক পরামিতি ঘোষণা করতে।
উদাহরণ:
(var x, var y) -> x + y
সুবিধা:
- ধারাবাহিকতা: ব্যবহার
var
ল্যাম্বডা প্যারামিটারে কোডটিকে স্থানীয় পরিবর্তনশীল ঘোষণার সাথে সামঞ্জস্যপূর্ণ করে তোলে, যা ডেভেলপারদের উপর জ্ঞানীয় লোড হ্রাস করে।
HTTP ক্লায়েন্ট (স্ট্যান্ডার্ড)
নতুন HTTP ক্লায়েন্ট API, জাভা 11-এ প্রমিত, HTTP/1.1 এবং HTTP/2 উভয়কেই সমর্থন করে। এই আধুনিক এবং বৈশিষ্ট্য-সমৃদ্ধ API HTTP অপারেশনগুলিকে সহজ করে তোলে।
উদাহরণ:
HttpClient ক্লায়েন্ট = HttpClient.newHttpClient(); HttpRequest অনুরোধ = HttpRequest.newBuilder() .uri(URI.create("https://example.com")) .build(); Http প্রতিক্রিয়া প্রতিক্রিয়া = client.send(অনুরোধ, HttpResponse.BodyHandlers.ofString()); System.out.println(response.body());
সুবিধা:
- আধুনিক API: HTTP অনুরোধ এবং প্রতিক্রিয়াগুলি পরিচালনা করার জন্য আরও শক্তিশালী এবং নমনীয় উপায় অফার করে।
- উন্নত কর্মক্ষমতা: HTTP/2 সমর্থন করে, যা মাল্টিপ্লেক্সিংয়ের মতো বৈশিষ্ট্যগুলির সাথে কর্মক্ষমতা উন্নত করতে পারে।
এপসিলন: একটি নো-অপ আবর্জনা সংগ্রাহক
জাভা 11 এপসিলন প্রবর্তন করেছে, একটি নো-অপ আবর্জনা সংগ্রহকারী যা মেমরি পুনরুদ্ধার করে না। এটি কর্মক্ষমতা পরীক্ষা এবং মেমরি চাপ মূল্যায়নের জন্য বিশেষভাবে কার্যকর।
উদাহরণ:
java -XX:+UnlockExperimentalVMOptions -XX:+UseEpsilonGC -Xmx2g MyApp
সুবিধা:
- কর্মক্ষমতা পরীক্ষা: আবর্জনা সংগ্রহের ওভারহেড অপসারণ করে বেঞ্চমার্কিং এবং কর্মক্ষমতা পরীক্ষায় সহায়তা করে।
- স্মৃতি ব্যবস্থাপনা: এমন পরিস্থিতিতে দরকারী যেখানে মেমরি বরাদ্দ বাহ্যিকভাবে পরিচালিত হয়।
নেস্ট-ভিত্তিক অ্যাক্সেস কন্ট্রোল
জাভা 11-এ নেস্ট-ভিত্তিক অ্যাক্সেস কন্ট্রোল নেস্টেড ধরণের জন্য অ্যাক্সেসের নিয়মগুলিকে সহজ করে, যা নেস্টেড ক্লাসের মধ্যে আরও ভাল এনক্যাপসুলেশন এবং অ্যাক্সেস নিয়ন্ত্রণের অনুমতি দেয়।
উদাহরণ:
পাবলিক ক্লাস আউটারক্লাস { প্রাইভেট স্ট্যাটিক ক্লাস নেস্টেডক্লাস { প্রাইভেট ভ্যাইড নেস্টেড মেথড() { System.out.println("Inside NestedClass"); } } }
সুবিধা:
- উন্নত এনক্যাপসুলেশন: নেস্টেড ক্লাস সদস্যদের অ্যাক্সেসের উপর আরও ভাল নিয়ন্ত্রণ প্রদান করে।
- কর্মক্ষমতা: অ্যাক্সেস কন্ট্রোল নিয়ম সরলীকরণ করে কর্মক্ষমতা বাড়ায়।
ডায়নামিক ক্লাস-ফাইল কনস্ট্যান্ট
এর ভূমিকা CONSTANT_গতিশীল
ধ্রুবক পুল ক্লাস ফাইলগুলিতে আরও নমনীয় এবং দক্ষ ধ্রুবকের জন্য অনুমতি দেয়।
সুবিধা:
- হ্রাসকৃত মূল্য: নতুন ধরনের ক্লাস-ফাইল ধ্রুবক তৈরির সাথে যুক্ত খরচ এবং সীমাবদ্ধতা কমায়।
- নমনীয়তা: জাভা বাইটকোডে ধ্রুবকগুলি পরিচালনা করার জন্য আরও গতিশীল এবং নমনীয় উপায় সরবরাহ করে।
স্ট্রিং API বর্ধিতকরণ
Java 11-এ বেশ কিছু বর্ধন নিয়ে আসে স্ট্রিং
ক্লাস, নতুন পদ্ধতি সহ লাইন()
, ফালা()
, স্ট্রিপলিডিং()
, স্ট্রিপট্রেইলিং()
, পুনরাবৃত্তি (int)
, এবং খালি()
.
উদাহরণ:
স্ট্রিং মাল্টিলাইন = "line1\nline2\nline3"; multiline.lines().forEach(System.out::println); স্ট্রিং টেক্সট = "হ্যালো"; System.out.println(text.strip()); // "হ্যালো" System.out.println(text.stripLeading()); // "হ্যালো " System.out.println(text.stripTrailing()); // "হ্যালো" System.out.println("=".repeat(5)); // "====="
সুবিধা:
- শক্তিশালী স্ট্রিং ম্যানিপুলেশন: নতুন পদ্ধতি স্ট্রিং ম্যানিপুলেট করার জন্য আরও শক্তিশালী এবং সুবিধাজনক উপায় প্রদান করে।
- কোড পরিচ্ছন্নতা: সাধারণ স্ট্রিং ক্রিয়াকলাপগুলিকে সরল করে, যার ফলে ক্লিনার এবং আরও পঠনযোগ্য কোড হয়৷
ফাইল এপিআই এনহান্সমেন্ট
দ্য নথি পত্র
জাভা 11-এর ক্লাসে নতুন পদ্ধতি অন্তর্ভুক্ত রয়েছে readString(পথ)
এবং writeString (পাথ, CharSequence)
স্ট্রিং হিসাবে ফাইল পড়া এবং লেখার জন্য।
উদাহরণ:
পাথ পাথ = Paths.get("file.txt"); Files.writeString(পথ, "হ্যালো, ওয়ার্ল্ড!"); স্ট্রিং বিষয়বস্তু = Files.readString(path); System.out.println(সামগ্রী);
সুবিধা:
- সরলীকৃত ফাইল অপারেশন: ফাইল থেকে পড়া এবং লেখাকে আরও সহজবোধ্য এবং কম ত্রুটি-প্রবণ করে তোলে।
- উন্নত উত্পাদনশীলতা: বয়লারপ্লেট কোড হ্রাস করে, বিকাশকারীর উত্পাদনশীলতা বাড়ায়।
ইউনিকোড 10
জাভা 11 ইউনিকোড 10 সমর্থন করে, যার মধ্যে নতুন অক্ষর এবং স্ক্রিপ্ট রয়েছে, জাভা অ্যাপ্লিকেশনগুলি সর্বশেষ আন্তর্জাতিক অক্ষরগুলি পরিচালনা করতে পারে তা নিশ্চিত করে।
সুবিধা:
- ব্যাপক চরিত্র সমর্থন: আন্তর্জাতিকীকরণ এবং স্থানীয়করণের জন্য আরও ভাল সমর্থন প্রদান করে।
ফ্লাইট রেকর্ডার
জাভা ফ্লাইট রেকর্ডার (জেএফআর) এখন ওপেনজেডিকে অন্তর্ভুক্ত করা হয়েছে, যা জাভা অ্যাপ্লিকেশনগুলির প্রোফাইলিং এবং নিরীক্ষণের জন্য একটি শক্তিশালী টুল প্রদান করে।
সুবিধা:
- কর্মক্ষমতা নিরীক্ষণ: অ্যাপ্লিকেশনের সঞ্চালন সম্পর্কে বিস্তারিত তথ্য রেকর্ড করে কর্মক্ষমতা সমস্যা নির্ণয় করতে সাহায্য করে।
- অন্তর্নির্মিত টুল: JDK-তে একত্রিত করা হয়েছে, এটিকে বাহ্যিক সরঞ্জামের প্রয়োজন ছাড়াই সহজেই উপলব্ধ করে।
Java EE এবং CORBA মডিউল অপসারণ
জাভা 11 জাভা EE এবং CORBA মডিউলগুলি সরিয়ে দিয়েছে, যা পূর্ববর্তী সংস্করণগুলিতে অবমূল্যায়িত হয়েছিল। এই APIগুলি এখন আলাদা লাইব্রেরি হিসাবে উপলব্ধ।
সুবিধা:
- স্ট্রীমলাইনড JDK: JDK এর আকার এবং জটিলতা হ্রাস করে, এটি আরও হালকা এবং দক্ষ করে তোলে।
Pack200 টুলস এবং API বর্জন করুন
Pack200 কম্প্রেশন টুল এবং API গুলি জাভা 11-এ বাতিল করা হয়েছে, ভবিষ্যতে রিলিজে তাদের অপসারণের ইঙ্গিত দেয়।
সুবিধা:
- ভবিষ্যতে প্রুফিং: Pack200 এর চূড়ান্ত অপসারণের জন্য প্রস্তুত করে আরও আধুনিক কম্প্রেশন সরঞ্জামগুলিতে স্থানান্তর করতে বিকাশকারীদের উত্সাহিত করে৷
উপসংহার
Java 11 অনেকগুলি নতুন বৈশিষ্ট্য এবং উন্নতি নিয়ে আসে যা ভাষার ক্ষমতা এবং বিকাশকারীর উত্পাদনশীলতা বাড়ায়। আধুনিক HTTP ক্লায়েন্ট API থেকে শক্তিশালী স্ট্রিং এবং ফাইল API বর্ধিতকরণ, এই আপডেটগুলি জাভাকে আরও শক্তিশালী এবং দক্ষ প্ল্যাটফর্ম করে তোলে। যদিও পুরানো মডিউলগুলি অপসারণ এবং Epsilon-এর মতো নতুন আবর্জনা সংগ্রহকারীদের প্রবর্তন কর্মক্ষমতা এবং আধুনিকীকরণের উপর একটি স্পষ্ট ফোকাস দেখায়, বিকাশকারীদের জাভা 11-এর সম্পূর্ণ সম্ভাবনার সুবিধা নিতে এই পরিবর্তনগুলি গ্রহণ করা উচিত।
টেবিল এবং বিস্তারিত বর্ণনা: আরও বিস্তৃত বোঝার জন্য, নীচে এম্বেড করা টেবিলের সাথে কিছু বৈশিষ্ট্যের বিশদ বিবরণ এবং উদাহরণ রয়েছে:
স্ট্রিং এপিআই এনহান্সমেন্ট টেবিল
পদ্ধতি | বর্ণনা | উদাহরণ |
---|---|---|
লাইন() | স্ট্রিংকে লাইনে বিভক্ত করে। | multiline.lines().forEach(System.out::println); |
ফালা() | অগ্রণী এবং পিছনের হোয়াইটস্পেস সরিয়ে দেয়। | text.strip() |
স্ট্রিপলিডিং() | অগ্রণী হোয়াইটস্পেস সরিয়ে দেয়। | text.stripLeading() |
স্ট্রিপট্রেইলিং() | পিছনের হোয়াইটস্পেস সরিয়ে দেয়। | text.stripTrailing() |
পুনরাবৃত্তি (int) | প্রদত্ত সময় স্ট্রিং পুনরাবৃত্তি. | "=". পুনরাবৃত্তি(5) |
জাভা 11-এর নতুন বৈশিষ্ট্যগুলি নিশ্চিত করে যে ডেভেলপারদের আধুনিক, দক্ষ টুলস এবং APIগুলিতে অ্যাক্সেস রয়েছে, এটি যেকোন জাভা উন্নয়ন প্রকল্পের জন্য একটি অপরিহার্য আপগ্রেড করে তোলে।