Java প্রোগ্রামিং শব্দকোষ — ১২৪৭টি শব্দের সহজ বাংলা মানে

Java Programming Glossary in Bangla — every technical term from the course, with pronunciation and a plain Bangla explanation.

কোর্সের প্রতিটি পর্বে যে ইংরেজি শব্দগুলো এসেছে — class, template, vector, thread, stack — সবগুলো এখানে এক জায়গায়। প্রতিটির পাশে বাংলা উচ্চারণ, সহজ মানে আর কোন পর্বে বিস্তারিত শিখবেন, তার লিংক।

মোট ১২৪৭টি শব্দ

#

@ConfigurationPropertiesকনফিগারেশন প্রপার্টিজ
একটি prefix-এর নিচের সব property একটি class বা record-এ টাইপসহ বসিয়ে দেওয়ার Spring Boot ব্যবস্থা; ভুল মান চালুর সময়েই ধরা পড়ে।যেখানে শিখবেন: পর্ব ৫০
@DisplayNameডিসপ্লে নেম
JUnit 5-এর annotation, যা টেস্ট class বা method-কে রিপোর্ট আর IDE-তে দেখানোর জন্য পড়ার মতো নাম দেয় — বাংলাতেওযেখানে শিখবেন: পর্ব ৪৭
@Embeddableএমবেডেবল
যে class-এর নিজস্ব টেবিল বা id নেই, বরং তার field-গুলো মালিক entity-র টেবিলেই কলাম হয়ে বসে — ঠিকানা বা টাকার মতো value object রাখার JPA উপায়। entity-তে @Embedded লিখে ব্যবহার হয়।যেখানে শিখবেন: পর্ব ৫২
@Nestedনেস্টেড
JUnit 5-এর annotation, যা টেস্ট class-এর ভেতরের একটি inner class-কে টেস্টের দল বানায়; একই অবস্থার টেস্টগুলো একসাথে রাখা যায় আর রিপোর্ট গাছের মতো দেখায়যেখানে শিখবেন: পর্ব ৪৭
@Overrideওভাররাইড অ্যানোটেশন
একটি annotation, যা compiler-কে বলে “এই method parent-এর কোনো method override করছে”। মিল না পেলে compile error দেয়, তাই বানান বা parameter-এর ভুল সাথে সাথে ধরা পড়ে।যেখানে শিখবেন: পর্ব ১৯পর্ব ২০পর্ব ২৩
@Qualifier / @Primaryকোয়ালিফায়ার
একই টাইপের একাধিক bean থাকলে কোনটি inject হবে তা বেছে দেওয়ার উপায়; @Primary একটিকে ডিফল্ট করে, @Qualifier নাম দিয়ে নির্দিষ্ট করে আর অগ্রাধিকার পায়।যেখানে শিখবেন: পর্ব ৫০
@RestControllerরেস্ট কন্ট্রোলার
HTTP অনুরোধ গ্রহণ করার Spring stereotype; এর method-এর ফেরত মান সরাসরি উত্তরের body হয়, record বা object হলে JSON-এ রূপান্তরিত হয়।যেখানে শিখবেন: পর্ব ৫০
@RestControllerAdviceরেস্ট কন্ট্রোলার অ্যাডভাইস
Spring-এর এমন class, যার @ExceptionHandler method-গুলো সব controller-এর exception ধরে এক জায়গা থেকে একই ফরম্যাটের error উত্তর বানায়।যেখানে শিখবেন: পর্ব ৫১
@SafeVarargsসেফ ভারআর্গস
generic varargs method-এর লেখকের প্রতিশ্রুতি যে method-টি varargs array-তে কিছু লেখে না বা বাইরে পাঠায় না; heap pollution-এর সতর্কতা সরায়, বসানো যায় static, final, private method আর constructor-এযেখানে শিখবেন: পর্ব ২৮পর্ব ৪৫
@SuppressWarningsসাপ্রেস ওয়ার্নিংস
compiler-কে নির্দিষ্ট ধরনের সতর্কবার্তা না দেখাতে বলার annotation, যেমন @SuppressWarnings("unchecked"); শুধু প্রমাণিত নিরাপদ, ছোট পরিসরে ব্যবহার করা উচিতযেখানে শিখবেন: পর্ব ২৮পর্ব ৪৫
@Targetটার্গেট
একটি meta-annotation, যা বলে দেয় annotation কোথায় লাগানো যাবে — TYPE, METHOD, FIELD, PARAMETER, RECORD_COMPONENT ইত্যাদি; ভুল জায়গায় লাগালে compile error হয়।যেখানে শিখবেন: পর্ব ৪৫
@Transactionalট্রানজ্যাকশনাল
Spring-এর annotation, যা একটি method-কে transaction-এর ভেতরে চালায়: শুরুতে transaction খোলে, স্বাভাবিক শেষে commit, unchecked exception-এ rollback. proxy দিয়ে কাজ করে, তাই একই class-এর ভেতর থেকে ডাকলে বা private method-এ কাজ করে না।যেখানে শিখবেন: পর্ব ৫২
@WithMockUserউইথ মক ইউজার
spring-security-test-এর annotation — টেস্ট চলার সময় নির্দিষ্ট নাম আর role-এর একজন নকল লগইন করা ব্যবহারকারী বসায়, যাতে MockMvc দিয়ে 403 বা 200 পরীক্ষা করা যায়।যেখানে শিখবেন: পর্ব ৫৩

A

Absolute pathঅ্যাবসলিউট পাথ
ফাইল-সিস্টেমের মূল থেকে শুরু হওয়া পূর্ণ ঠিকানা, যেমন Linux-এ /home/rahim/khata.csv বা Windows-এ C:\Users\Rahim\khata.csv. প্রোগ্রাম কোথা থেকে চালানো হলো তাতে এর অর্থ বদলায় না।যেখানে শিখবেন: পর্ব ৩৭
abstract classঅ্যাবস্ট্র্যাক্ট ক্লাস
abstract keyword দিয়ে ঘোষণা করা class, যার object সরাসরি বানানো যায় না। এতে field, constructor আর সাধারণ method থাকতে পারে, আর কিছু abstract method থাকে যা subclass পূরণ করে।যেখানে শিখবেন: পর্ব ২১পর্ব ২২পর্ব ৫৭
abstract methodঅ্যাবস্ট্র্যাক্ট মেথড
শরীর ছাড়া শুধু signature-ওয়ালা method, যেমন abstract double area(); — যে concrete subclass আসবে, তাকে এর শরীর লিখতেই হবে।যেখানে শিখবেন: পর্ব ২১পর্ব ২৪
Abstractionঅ্যাবস্ট্রাকশন
দরকারি অংশটুকু দেখানো আর অদরকারি খুঁটিনাটি আড়ালে রাখা, যাতে ব্যবহারকারীকে ভেতরের কৌশল জানতে না হয়যেখানে শিখবেন: পর্ব ০২পর্ব ২১পর্ব ৫৮
Access modifierঅ্যাকসেস মডিফায়ার
class, method বা field কোথা থেকে ব্যবহার করা যাবে তা ঠিক করার শব্দ — public, protected, private, অথবা কিছু না লিখলে package-এর ভেতরে সীমিত।যেখানে শিখবেন: পর্ব ০৪পর্ব ১৫পর্ব ১৭
Accumulatorঅ্যাকুমুলেটর
লুপের প্রতিটি ঘোরায় একটু একটু করে ফল জমানো ভ্যারিয়েবল — যেমন যোগফল, গণনা, সবচেয়ে বড় বা সবচেয়ে ছোট মান। সঠিক শুরুর মান বেছে নেওয়া জরুরি।যেখানে শিখবেন: পর্ব ১১পর্ব ৩৫
ACIDএসিড
transaction-এর চারটি প্রতিশ্রুতি: Atomicity (সব নয়তো কিছুই না), Consistency (নিয়ম অটুট), Isolation (একে অপরের অর্ধেক কাজ না দেখা), Durability (commit-এর পর crash-এও টিকে থাকা)।যেখানে শিখবেন: পর্ব ৪৯পর্ব ৫৮
Ad-hoc polymorphismঅ্যাড-হক পলিমরফিজম
Christopher Strachey-র ভাগ অনুযায়ী এমন বহু রূপ, যেখানে প্রতিটি টাইপের জন্য আলাদা করে লেখা কোড থাকে, যেমন overloading: print(int) আর print(String) দুটি আলাদা method.যেখানে শিখবেন: পর্ব ২০
Adapterঅ্যাডাপ্টার
একটি port-এর বাস্তব রূপ বা core-কে ডাকার অনুবাদক — যেমন JDBC repository, bKash API client বা Spring REST controller; বদলালেও core অপরিবর্তিত থাকে।যেখানে শিখবেন: পর্ব ৫৫
Adapter patternঅ্যাডাপ্টার প্যাটার্ন
একটি বিদ্যমান class-এর বেমানান interface-কে আপনার প্রত্যাশিত interface-এ রূপ দেওয়া একটি মোড়ক class — যেমন তৃতীয় পক্ষের SMS library-কে নিজের SmsSender চুক্তিতে আনা।যেখানে শিখবেন: পর্ব ৪৮
Adjacency listঅ্যাডজেসেন্সি লিস্ট
graph রাখার একটি উপায়: প্রতিটি node-এর জন্য তার প্রতিবেশীদের (আর দরকারে ওজনের) একটি তালিকা, Java-তে সাধারণত তালিকার তালিকা (List of List); মেমরি লাগে node আর edge-এর সংখ্যার সমানুপাতেযেখানে শিখবেন: পর্ব ৫৪
Adversarial inputঅ্যাডভারসারিয়াল ইনপুট
কোনো নির্দিষ্ট অ্যালগরিদম বা বাস্তবায়নের সবচেয়ে খারাপ আচরণ ঘটাতে ইচ্ছে করে বানানো ইনপুট — যেমন quicksort-কে O(n²)-এর দিকে ঠেলে দেওয়া বা অনেক key একই hash bucket-এ ফেলা টেস্টযেখানে শিখবেন: পর্ব ৫৪
Aggregate functionঅ্যাগ্রিগেট ফাংশন
অনেক সারি থেকে একটি মান বের করা SQL ফাংশন — COUNT (গোনা), SUM (যোগফল), AVG (গড়), MIN, MAX.যেখানে শিখবেন: পর্ব ৪৯
Algebraic data type (ADT)অ্যালজেব্রেইক ডেটা টাইপ
ছোট ছোট টাইপ “এবং” (product) আর “অথবা” (sum) দিয়ে জুড়ে বানানো টাইপ। ML, Haskell, Rust-এ এটি ভাষার মূল অংশ; Java-তে record আর sealed interface মিলিয়ে একই জিনিস পাওয়া যায়।যেখানে শিখবেন: পর্ব ২৪পর্ব ২৬পর্ব ৫৮
Algorithmঅ্যালগরিদম
একটি সমস্যা সমাধানের নির্দিষ্ট, নির্ভুল ক্রমে সাজানো ধাপের তালিকা, যা শেষ পর্যন্ত থামেযেখানে শিখবেন: পর্ব ০২পর্ব ৫৪
Aliasingঅ্যালিয়াসিং
একই object-কে দুই বা ততোধিক ভ্যারিয়েবল দিয়ে দেখানো, যেমন int[] b = a; — একটি দিয়ে বদলালে অন্যটি দিয়েও সেই বদল দেখা যায়।যেখানে শিখবেন: পর্ব ১৩পর্ব ১৫পর্ব ১৬
Alternation (|)অল্টারনেশন
| চিহ্ন দিয়ে কয়েকটি বিকল্পের যেকোনো একটি মেলানো, যেমন INFO|WARN|ERROR; এর অগ্রাধিকার সবচেয়ে কম, তাই সাধারণত group-এর ভেতরে রাখা হয়।যেখানে শিখবেন: পর্ব ১৪
Ambiguous callঅ্যাম্বিগুয়াস কল
যখন দুটি overload সমান উপযুক্ত, কোনোটিই বেশি নির্দিষ্ট নয় — compiler তখন বেছে না নিয়ে reference to … is ambiguous error দেয়।যেখানে শিখবেন: পর্ব ১২
Amdahl's lawঅ্যামডালস ল
Gene Amdahl-এর (১৯৬৭) নিয়ম: কাজের যে অংশ ভাগ করা যায় না, সেটাই সর্বোচ্চ গতিবৃদ্ধির সীমা ঠিক করে। ৯০% ভাগযোগ্য হলে অসীম core-এও সর্বোচ্চ ১০ গুণ দ্রুত।যেখানে শিখবেন: পর্ব ৪০
Amortized analysisঅ্যামর্টাইজড অ্যানালাইসিস
অনেকগুলো কাজের মোট খরচকে কাজের সংখ্যা দিয়ে ভাগ করে গড় খরচ মাপা; মাঝে মাঝে একটি কাজ ব্যয়বহুল হলেও গড় খরচ ধ্রুব থাকতে পারে।যেখানে শিখবেন: পর্ব ২২পর্ব ৩০পর্ব ৩১
Anchor (regex)অ্যাংকর
যে চিহ্ন কোনো অক্ষর খায় না, শুধু একটি অবস্থান যাচাই করে, যেমন ^ (শুরু), $ (শেষ), \b (শব্দের সীমা), \z (একদম শেষ)।যেখানে শিখবেন: পর্ব ১৪
Anemic classঅ্যানিমিক ক্লাস
যে class শুধু ডেটা আর getter/setter রাখে, কিন্তু সেই ডেটার নিয়ম অন্য কোথাও লেখা থাকে; রক্তশূন্য নকশাযেখানে শিখবেন: পর্ব ০২পর্ব ১৭
Annotationঅ্যানোটেশন
@ চিহ্ন দিয়ে শুরু হওয়া একটি চিহ্ন, যা কোডের সাথে বাড়তি তথ্য জুড়ে দেয় — compiler, টুল বা framework তা পড়ে কাজ করে, যেমন @Override বা @Deprecatedযেখানে শিখবেন: পর্ব ১৯পর্ব ২৮পর্ব ৩৪
Annotation elementঅ্যানোটেশন এলিমেন্ট
@interface-এর ভেতরে method-এর মতো করে ঘোষিত একটি ঘর, যেমন String name(); ব্যবহারের সময় @Command(name = "add") লিখে মান দেওয়া হয়, আর default দিলে ঘরটি ঐচ্ছিক হয়।যেখানে শিখবেন: পর্ব ৪৫
Annotation processorঅ্যানোটেশন প্রসেসর
compile-এর সময় javac-এর ভেতরে চলা প্লাগ-ইন (javax.annotation.processing, Java 6 থেকে), যা annotation পড়ে নতুন সোর্স ফাইল তৈরি করে বা ভুল ধরে; যেমন MapStruct, Dagger.যেখানে শিখবেন: পর্ব ৪৫
Anonymous classঅ্যানোনিমাস ক্লাস
নামহীন একটি class, যা ঘোষণা আর object তৈরি একসাথে করে: new Interface() { ... }. একবারের জন্য একটি interface implement বা একটি class extend করতে ব্যবহার হয়।যেখানে শিখবেন: পর্ব ২৪পর্ব ২৭পর্ব ৩৩
Anti-patternঅ্যান্টি-প্যাটার্ন
এমন একটি প্রচলিত সমাধান-ধাঁচ, যা শুরুতে যুক্তিসংগত মনে হয় কিন্তু বারবার ক্ষতি করে — যেমন God class বা Singleton-এর অপব্যবহার।যেখানে শিখবেন: পর্ব ৪৮
AOP (Aspect-Oriented Programming)অ্যাসপেক্ট-ওরিয়েন্টেড প্রোগ্রামিং
লগিং, transaction, নিরাপত্তার মতো অনেক জায়গায় লাগা কাজ আলাদা এক জায়গায় লিখে বহু method-এর চারপাশে বসিয়ে দেওয়ার পদ্ধতি; Spring এটা সাধারণত proxy দিয়ে করে।যেখানে শিখবেন: পর্ব ৪৫পর্ব ৫১পর্ব ৫২
AOT (Ahead-Of-Time) compilationএ-ও-টি কম্পাইলেশন
চালানোর আগেই কোড machine code-এ compile করে রাখা; শুরু দ্রুত হয়, কিন্তু চলার সময়ের তথ্য দিয়ে অপ্টিমাইজ করার সুযোগ কমেযেখানে শিখবেন: পর্ব ০৫পর্ব ২২
Apache Avroঅ্যাভরো
Apache-র binary serialization ফরম্যাট, যার schema JSON-এ লেখা হয়। পড়ার সময় লেখক আর পাঠকের schema মিলিয়ে নেয়; Kafka আর Hadoop-এর মতো বিগ ডেটা সিস্টেমে প্রচলিত।যেখানে শিখবেন: পর্ব ৩৯
API (Application Programming Interface)এ-পি-আই
একটি প্রোগ্রাম বা লাইব্রেরি অন্যদের ব্যবহারের জন্য যে নির্দিষ্ট দরজা খুলে রাখে — কোন method বা কোন ঠিকানায় কী পাঠালে কী ফেরত আসবে। ওয়েব API সাধারণত HTTP দিয়ে JSON আদান-প্রদান করে।যেখানে শিখবেন: পর্ব ৩৯পর্ব ৫১
API versioningএপিআই ভার্সনিং
পুরোনো client না ভেঙে API বদলানোর ব্যবস্থা — যেমন URL-এ /api/v1 আর /api/v2, বা header-এ সংস্করণ উল্লেখ।যেখানে শিখবেন: পর্ব ৫১
Appletঅ্যাপলেট
ওয়েব পাতার ভেতরে ব্রাউজারের plugin দিয়ে চলা ছোট Java প্রোগ্রাম; ১৯৯০-এর দশকে জনপ্রিয় ছিল, এখন পুরোপুরি বাতিল।যেখানে শিখবেন: পর্ব ০১
application.propertiesঅ্যাপ্লিকেশন প্রপার্টিজ
Spring Boot-এর মূল কনফিগারেশন ফাইল (src/main/resources-এ), যেখানে key=value আকারে port, ডেটাবেসের ঠিকানা বা নিজের মান লেখা হয়; environment variable দিয়ে মান বদলানো যায়।যেখানে শিখবেন: পর্ব ৫০
ApplicationContextঅ্যাপ্লিকেশন কনটেক্সট
Spring-এর IoC container-এর মূল interface; সব bean তৈরি, জোড়া দেওয়া, কনফিগারেশন পড়া আর lifecycle সামলানোর দায়িত্ব এর।যেখানে শিখবেন: পর্ব ৫০
Argon2আরগন টু
২০১৫ সালের Password Hashing Competition-এর বিজয়ী পাসওয়ার্ড hash; সময়ের সাথে মেমরিও বেশি চায়, তাই GPU দিয়ে সমান্তরালে অনুমান ব্যয়বহুল। OWASP-এর প্রথম পছন্দ।যেখানে শিখবেন: পর্ব ৫৩
Argumentআর্গুমেন্ট
method ডাকার সময় বন্ধনীর ভেতরে যে মান পাঠানো হয়, যেমন addVat(1000)-এর 1000. এর মান কপি হয়ে parameter-এ বসে।যেখানে শিখবেন: পর্ব ১২
ArithmeticExceptionঅ্যারিথমেটিক এক্সেপশন
পূর্ণসংখ্যাকে শূন্য দিয়ে ভাগ করার মতো অবৈধ হিসাবে আসা unchecked exception; বার্তা থাকে / by zero. double-এর ভাগে এটি আসে না, Infinity বা NaN আসে।যেখানে শিখবেন: পর্ব ২৯পর্ব ৫৬
Arrange-Act-Assertঅ্যারেঞ্জ-অ্যাক্ট-অ্যাসার্ট
টেস্ট লেখার তিন ধাপের গঠন: প্রস্তুতি (ইনপুট ও object), কাজ (method ডাকা), যাচাই (ফল মেলানো); একই ধারণার আরেক নাম Given-When-Thenযেখানে শিখবেন: পর্ব ৪৭
Arrayঅ্যারে
একই টাইপের অনেকগুলো মান পাশাপাশি রাখার নির্দিষ্ট মাপের তালিকা; String[] মানে String-এর array. প্রতিটি ঘর ০ থেকে শুরু হওয়া index দিয়ে চেনা যায়।যেখানে শিখবেন: পর্ব ০৪পর্ব ১১পর্ব ১২
ArrayDequeঅ্যারেডেক
Deque-এর array-ভিত্তিক বাস্তবায়ন (Java 6 থেকে): ভেতরে একটি circular buffer, তাই দুই মাথায় ঢোকানো-বের করা গড়ে ধ্রুব সময়ে হয়। null রাখা যায় না; queue আর stack-এর জন্য Java-র ডিফল্ট পছন্দযেখানে শিখবেন: পর্ব ৩২পর্ব ৫৯
ArrayIndexOutOfBoundsExceptionঅ্যারে ইনডেক্স আউট অফ বাউন্ডস এক্সেপশন
array-এর বৈধ সীমার (০ থেকে length − ১) বাইরের index দিয়ে ঘর পড়তে বা লিখতে গেলে JVM যে runtime exception ছোড়ে।যেখানে শিখবেন: পর্ব ১১পর্ব ১৩পর্ব ২৯
ArrayListঅ্যারেলিস্ট
java.util-এর একটি List, যা ভেতরে একটি array রাখে কিন্তু দরকার মতো নিজেই বড় হয়। শুধু object রাখে, primitive নয়।যেখানে শিখবেন: পর্ব ১৩পর্ব ২২পর্ব ২৮
Arrays.asList()অ্যারেজ ডট অ্যাজ লিস্ট
একটি array-কে List হিসেবে দেখানোর method; ফলটি নির্দিষ্ট মাপের আর array-এর ওপর দাঁড়ানো view — set চলে আর array-ও বদলায়, কিন্তু add বা remove দিলে UnsupportedOperationExceptionযেখানে শিখবেন: পর্ব ৩০পর্ব ৫৬
Arrow label (case ... ->)অ্যারো লেবেল
case 1, 2 -> রূপের case; ডানদিকের একটি expression, block বা throw চলে, তারপর switch শেষ — পরের case-এ গড়ায় না।যেখানে শিখবেন: পর্ব ১০
ART (Android Runtime)এ-আর-টি
Android-এর নিজস্ব runtime, যা অ্যাপের DEX bytecode চালায়; সাধারণ JVM নয়, কিন্তু Java ও Kotlin থেকে আসা কোডই চালায়।যেখানে শিখবেন: পর্ব ০১পর্ব ০৫
Assertionঅ্যাসারশন
টেস্টের ভেতরে “এই মান এটাই হওয়ার কথা” বলে যাচাই, যেমন assertEquals(700, balance); না মিললে টেস্ট ফেল হয় আর প্রত্যাশিত ও আসল মান জানায়যেখানে শিখবেন: পর্ব ৪৭
AssertJঅ্যাসার্ট-জে
Java-র জনপ্রিয় assertion library, যার যাচাই বাক্যের মতো পড়া যায়: assertThat(balance).isEqualTo(700); JUnit-এর সাথে ব্যবহার হয়, JDK-র অংশ নয়যেখানে শিখবেন: পর্ব ৪৭
Associativityঅ্যাসোসিয়েটিভিটি
একই precedence-এর অপারেটর পাশাপাশি থাকলে কোন দিক থেকে ধরা হবে: বেশিরভাগ বাঁ থেকে ডানে, assignment আর ternary ডান থেকে বাঁয়েযেখানে শিখবেন: পর্ব ০৭
AtomicIntegerঅ্যাটমিক ইন্টিজার
java.util.concurrent.atomic-এর একটি class, যার incrementAndGet, addAndGet-এর মতো কাজ তালা ছাড়াই অবিভাজ্য। নিচে CPU-র compare-and-swap নির্দেশ ব্যবহার করে।যেখানে শিখবেন: পর্ব ৪০পর্ব ৫৮পর্ব ৫৯
Authenticationঅথেন্টিকেশন
পরিচয় যাচাই — “আপনি কে?” প্রশ্নের উত্তর, যেমন পাসওয়ার্ড বা token দিয়ে। ব্যর্থ হলে HTTP-তে 401যেখানে শিখবেন: পর্ব ৫১পর্ব ৫৩পর্ব ৫৮
Authorizationঅথরাইজেশন
অনুমতি যাচাই — পরিচয় জানার পর “এই কাজটি কি আপনি করতে পারেন?” প্রশ্নের উত্তর। অনুমতি না থাকলে HTTP-তে 403যেখানে শিখবেন: পর্ব ৫১পর্ব ৫৩পর্ব ৫৮
Auto-commitঅটো-কমিট
JDBC Connection-এর ডিফল্ট অবস্থা, যেখানে প্রতিটি statement নিজেই একটি transaction আর চলামাত্র commit হয়। কয়েকটি বদল একসাথে বাঁধতে setAutoCommit(false) লাগে।যেখানে শিখবেন: পর্ব ৪৯
Auto-configurationঅটো-কনফিগারেশন
Spring Boot-এর শর্তসাপেক্ষ কনফিগারেশন: classpath-এ কী আছে, কোন property দেওয়া, আর আপনি নিজে কোন bean দিয়েছেন তা দেখে স্বয়ংক্রিয়ভাবে প্রয়োজনীয় bean তৈরি করা।যেখানে শিখবেন: পর্ব ৫০পর্ব ৫৩
Autoboxingঅটোবক্সিং
primitive মানকে তার wrapper object-এ নিজে থেকে মুড়ে দেওয়া (int থেকে Integer), আর উল্টো দিকে খোলাকে বলে unboxing. Java 5 থেকে।যেখানে শিখবেন: পর্ব ০৬পর্ব ১২পর্ব ২৮
AutoCloseableঅটো-ক্লোজেবল
একটিমাত্র close() method-ওয়ালা interface. যে object এটি implement করে, তাকে try-with-resources-এ রাখলে block শেষে Java নিজেই close() ডাকে।যেখানে শিখবেন: পর্ব ২৯পর্ব ৩৭পর্ব ৪১

B

Backendব্যাকএন্ড
সফটওয়্যারের যে অংশ সার্ভারে পেছনে বসে ডেটা রাখে আর ব্যবসার নিয়ম চালায়; মোবাইল অ্যাপ বা ওয়েবসাইট (frontend) API দিয়ে তার সাথে কথা বলে।যেখানে শিখবেন: পর্ব ৫৫
Backreferenceব্যাকরেফারেন্স
\1, \2 — আগে কোনো group যা মিলিয়েছে, ঠিক সেই লেখাটিই আবার চাওয়া, যেমন (\w)\1 পরপর একই অক্ষর দুবার। গাণিতিক অর্থে এটি regular নয়।যেখানে শিখবেন: পর্ব ১৪
Backtrackingব্যাকট্র্যাকিং
recursion দিয়ে সব সম্ভাবনা গুছিয়ে খোঁজা: একটি সিদ্ধান্ত নেওয়া, বাকিটা recursion-কে দেওয়া, ফিরে এসে সিদ্ধান্তটি উল্টে পরের বিকল্প চেষ্টা করা; অবৈধ পথ আগেভাগে কেটে দেওয়াকে বলে pruningযেখানে শিখবেন: পর্ব ৫৪
Backtracking (regex engine)ব্যাকট্র্যাকিং
regex engine-এর কৌশল: একটি পথে মেলানোর চেষ্টা ব্যর্থ হলে পিছিয়ে এসে আগের কোনো quantifier বা বিকল্পকে অন্যভাবে নিয়ে আবার চেষ্টা করা। Java-র engine এভাবেই কাজ করে।যেখানে শিখবেন: পর্ব ১৪
Base caseবেস কেস
recursion-এর সেই সবচেয়ে ছোট অবস্থা, যেখানে আর নিজেকে না ডেকে সরাসরি উত্তর ফেরত দেওয়া হয়। এটি না থাকলে ডাক থামে না।যেখানে শিখবেন: পর্ব ১২পর্ব ৫৪
Base64 / Base64URLবেস সিক্সটি-ফোর
byte-কে ৬৪টি সাধারণ অক্ষরে লেখার encoding; Base64URL-এ + আর / এর বদলে - আর _, যাতে URL-এ চলে। key ছাড়াই যে কেউ উল্টো করতে পারে — এটি এনক্রিপশন নয়।যেখানে শিখবেন: পর্ব ৫৩
Batch fetchingব্যাচ ফেচিং
Hibernate-এর কৌশল: একটি lazy proxy বা সংগ্রহ লোড করার সময় একই ধরনের আরও কয়েকটি না-আনা proxy একটি where id in (...) query-তে একসাথে আনা; hibernate.default_batch_fetch_size দিয়ে চালু হয়।যেখানে শিখবেন: পর্ব ৫২
Batch updateব্যাচ আপডেট
অনেকগুলো INSERT বা UPDATE addBatch() দিয়ে জমিয়ে executeBatch() দিয়ে একবারে পাঠানো, যাতে প্রতিটির জন্য আলাদা নেটওয়ার্ক যাত্রা না লাগে।যেখানে শিখবেন: পর্ব ৪৯
bcryptবি-ক্রিপ্ট
১৯৯৯ সালে Provos আর Mazières-এর তৈরি পাসওয়ার্ড hash; cost এক বাড়লে কাজ দ্বিগুণ, আর cost ও salt hash-এর লেখার ভেতরেই থাকে ($2a$10$…). Spring-এ BCryptPasswordEncoder, ডিফল্ট cost ১০.যেখানে শিখবেন: পর্ব ৫৩
Bean (Spring)বিন
যে object-এর তৈরি, নির্ভরতা জোড়া আর জীবনকাল Spring container নিজে সামলায়, যেমন @Component লেখা class-এর object.যেখানে শিখবেন: পর্ব ৪৫পর্ব ৫০পর্ব ৫১
Bean lifecycle (@PostConstruct / @PreDestroy)বিন লাইফসাইকেল
bean-এর জীবনের ধাপ: constructor, নির্ভরতা inject, @PostConstruct দিয়ে প্রস্তুতি, ব্যবহার, আর context বন্ধের আগে @PreDestroy দিয়ে পরিষ্কার করা।যেখানে শিখবেন: পর্ব ৫০
Bean scopeবিন স্কোপ
একটি Spring bean-এর কয়টি object তৈরি হবে আর কতক্ষণ টিকবে: singleton (ডিফল্ট, container-এ একটি), prototype (প্রতিবার নতুন), request আর session (web অ্যাপে)।যেখানে শিখবেন: পর্ব ৫০পর্ব ৫৭
Bearer tokenবেয়ারার টোকেন
যে token যার হাতে থাকে, সার্ভার তাকেই মালিক ধরে — বাসের টিকিটের মতো। Authorization: Bearer header-এ পাঠানো হয়, তাই চুরি ঠেকাতে HTTPS আর ছোট মেয়াদ জরুরি।যেখানে শিখবেন: পর্ব ৫৩
Behavioral patternবিহেভিওরাল প্যাটার্ন
object-গুলো কীভাবে দায়িত্ব ভাগ করে আর একে অপরকে ডাকে, সেই pattern-পরিবার — যেমন Strategy, Observer, State, Command.যেখানে শিখবেন: পর্ব ৪৮
Behaviourবিহেভিয়ার
একটি object যা করতে পারে — Java-তে তার method-গুলো। যেমন pay, depositযেখানে শিখবেন: পর্ব ০২পর্ব ১৫
BFS (Breadth-First Search)বিএফএস
একটি queue দিয়ে graph বা গ্রিডে শুরুর জায়গা থেকে স্তরে স্তরে ছড়িয়ে পড়ার অ্যালগরিদম: আগে দূরত্ব ১-এর সবাই, তারপর দূরত্ব ২-এর সবাই। সমান দামের ধাপে সবচেয়ে ছোট পথ দেয়যেখানে শিখবেন: পর্ব ৩২পর্ব ৪৬পর্ব ৫৪
Big-O notationবিগ-ও নোটেশন
ইনপুটের আকার n বাড়লে একটি কাজের সময় বা মেমরি কোন হারে বাড়ে, তা লেখার সংক্ষিপ্ত রূপ; O(1) মানে n যত বড়ই হোক প্রায় একই সময়, O(n) মানে n-এর সমানুপাতেযেখানে শিখবেন: পর্ব ৩০পর্ব ৩১পর্ব ৩২
BigDecimalবিগ ডেসিমাল
java.math প্যাকেজের class, যা দশভিত্তিক দশমিক সংখ্যা নির্ভুলভাবে রাখে আর রাউন্ডিংয়ের নিয়ম মানে। টাকার হিসাবে ব্যবহার হয়; বানাতে হয় String থেকে, যেমন new BigDecimal("0.1").যেখানে শিখবেন: পর্ব ০৬পর্ব ৩৯পর্ব ৫৫
Binary heapবাইনারি হিপ
একটি পূর্ণ binary tree, যা array-তে রাখা হয় (ঘর i-এর সন্তান 2i+1 আর 2i+2), আর প্রতিটি অভিভাবক তার সন্তানদের চেয়ে ছোট বা সমান (min-heap হলে)। J. W. J. Williams ১৯৬৪ সালে প্রকাশ করেনযেখানে শিখবেন: পর্ব ৩২পর্ব ৫৮
Binary search on the answerবাইনারি সার্চ অন দ্য আনসার
সম্ভাব্য উত্তরের পরিসরে binary search: X উত্তর হলে তার চেয়ে বড় (বা ছোট) সবই চলে — এমন একঘেয়ে check(X) থাকলে প্রথম যে X-এ check সত্য, সেটা O(log পরিসর) বার check করে পাওয়া যায়যেখানে শিখবেন: পর্ব ৫৪
Binary search tree (BST)বাইনারি সার্চ ট্রি
এমন tree, যার প্রতিটি node-এর বাঁ দিকের সব key ছোট আর ডান দিকের সব key বড়; তাই প্রতিটি তুলনায় অর্ধেক অংশ বাদ দিয়ে খোঁজা যায়, যদি tree ভারসাম্যপূর্ণ থাকেযেখানে শিখবেন: পর্ব ৩১
Bitবিট
কম্পিউটারে তথ্যের সবচেয়ে ছোট একক, মান ০ অথবা ১; Java-র int-এ ৩২টি bit থাকেযেখানে শিখবেন: পর্ব ০৭
Bitmask / flagsবিটমাস্ক
একটি সংখ্যার আলাদা আলাদা bit-কে আলাদা হ্যাঁ/না হিসেবে ব্যবহার করা, যেমন READ = 1, WRITE = 2, DELETE = 4যেখানে শিখবেন: পর্ব ০৭পর্ব ২৪
Bitwise operatorবিটওয়াইজ অপারেটর
সংখ্যার প্রতিটি bit-এর ওপর আলাদাভাবে কাজ করা অপারেটর: &, |, ^, ~ আর shift অপারেটরগুলোযেখানে শিখবেন: পর্ব ০৭
Blank finalব্ল্যাংক ফাইনাল
ঘোষণার সময় মান না দেওয়া final ভ্যারিয়েবল বা field; পরে ঠিক একবার মান বসাতে হয়, field হলে প্রতিটি constructor-এ, নইলে compile error.যেখানে শিখবেন: পর্ব ১৮
Blockব্লক
দুই বাঁকা বন্ধনী { } দিয়ে ঘেরা কোডের অংশ — class, method, if বা loop-এর শরীর। প্রতিটি { এর একটি জোড়া } থাকতেই হয়।যেখানে শিখবেন: পর্ব ০৪পর্ব ১২
Blocking I/Oব্লকিং আই-ও
যে ইনপুট-আউটপুট কাজে ডাকা thread উত্তর না আসা পর্যন্ত থেমে অপেক্ষা করে, যেমন socket থেকে পড়া বা ডেটাবেস query; platform thread-এ অপেক্ষার পুরো সময় OS thread আটকে থাকেযেখানে শিখবেন: পর্ব ৪২
BlockingQueueব্লকিং কিউ
java.util.concurrent-এর একটি thread-safe Queue interface (Java 5 থেকে); put জায়গা না হওয়া পর্যন্ত আর take কিছু না আসা পর্যন্ত অপেক্ষা করে। ArrayBlockingQueue, LinkedBlockingQueue এর বাস্তবায়নযেখানে শিখবেন: পর্ব ৩২পর্ব ৪০পর্ব ৪১
BodyHandler (HttpResponse.BodyHandlers)বডি হ্যান্ডলার
HttpClient-কে বলে response-এর body কোন রূপে দিতে হবে — ofString(), ofByteArray(), ofFile(path), ofLines() বা discarding().যেখানে শিখবেন: পর্ব ৪৩
Boilerplate codeবয়লারপ্লেট কোড
প্রায় প্রতিবার একই ছাঁচে লিখতে হয় এমন কোড, যেমন getter, setter বা configuration; AI এই ধরনের কোড খুব দ্রুত লিখতে পারে।যেখানে শিখবেন: পর্ব ০১পর্ব ১৭পর্ব ২৫
BOLA / IDORবোলা
Broken Object Level Authorization — URL-এর id বদলে অন্যের object (অর্ডার, অ্যাকাউন্ট) দেখা বা বদলানো যায় এমন ভুল; প্রতিরক্ষা প্রতিটি object-এ মালিকানা যাচাই। পুরোনো নাম IDOR.যেখানে শিখবেন: পর্ব ৫৩
BOM (Bill of Materials)বি-ও-এম
একটি বিশেষ pom, যাতে একসাথে পরীক্ষা করা অনেক library-র মিলিয়ে নেওয়া version-এর তালিকা থাকে; import করলে সেসব library-র version আর লিখতে হয় না, যেমন Spring Boot-এর BOM.যেখানে শিখবেন: পর্ব ৪৬
booleanবুলিয়ান
Java-র primitive টাইপ, যার মান শুধু true অথবা false; if আর লুপের শর্তে এই টাইপ লাগে, int দিয়ে চলে নাযেখানে শিখবেন: পর্ব ০৭পর্ব ১০
Bootstrap methodবুটস্ট্র্যাপ মেথড
একটি invokedynamic নির্দেশ প্রথমবার চলার সময় JVM যে method ডাকে; সে ঠিক করে ওই জায়গায় আসলে কোন কোড চলবে। lambda-র ক্ষেত্রে এটি LambdaMetafactory.metafactory.যেখানে শিখবেন: পর্ব ৩৪
Boundary value analysisবাউন্ডারি ভ্যালু অ্যানালাইসিস
টেস্টের ইনপুট বাছার পদ্ধতি: প্রতিটি সীমার ঠিক দুই পাশের মান নেওয়া (যেমন ৫০০ আর ৫০১), কারণ সীমার শর্তে “ছোট” আর “ছোট বা সমান” গুলিয়ে ফেলার মতো ভুল ঠিক সেখানেই থাকেযেখানে শিখবেন: পর্ব ৪৭
Bounded type parameterবাউন্ডেড টাইপ প্যারামিটার
শর্তযুক্ত type parameter, যেমন T extends Number বা T extends Comparable of T; এতে ভেতরে সেই টাইপের method ডাকা যায় আর শর্ত না মানা টাইপ compiler আটকায়যেখানে শিখবেন: পর্ব ২৮
Bounds-check eliminationবাউন্ডস-চেক এলিমিনেশন
JIT compiler-এর অপ্টিমাইজেশন: লুপের index কখনো array-র সীমা পেরোবে না প্রমাণ করতে পারলে প্রতিটি ঘোরার সীমা-যাচাই সরিয়ে ফেলা বা লুপের আগে একবারে করা।যেখানে শিখবেন: পর্ব ১১
breakব্রেক
সবচেয়ে কাছের লুপ বা switch সঙ্গে সঙ্গে শেষ করার keyword; প্রোগ্রাম সেই কাঠামোর পরের লাইনে চলে যায়।যেখানে শিখবেন: পর্ব ১০পর্ব ১১
Broken Access Controlব্রোকেন অ্যাক্সেস কন্ট্রোল
অনুমতির নিয়ম ঠিকমতো প্রয়োগ না হওয়া — সাধারণ ব্যবহারকারী ADMIN-এর কাজ করতে পারেন বা অন্যের ডেটা দেখতে পান। OWASP Top 10-এর ২০২১ সালের তালিকায় প্রথম।যেখানে শিখবেন: পর্ব ৫৩
Brute forceব্রুট ফোর্স
সব সম্ভাবনা একে একে পরীক্ষা করে উত্তর বের করার সরল পদ্ধতি; প্রায়ই ধীর, কিন্তু সঠিক — তাই উন্নত সমাধানের শুরু আর যাচাইয়ের মাপকাঠিযেখানে শিখবেন: পর্ব ৫৯
Brute-force attackব্রুট ফোর্স অ্যাটাক
একের পর এক সম্ভাব্য পাসওয়ার্ড বা key চেষ্টা করে সঠিকটি খোঁজার আক্রমণ। প্রতিরক্ষা: ধীর hash, চেষ্টার সীমা আর MFA.যেখানে শিখবেন: পর্ব ৫৩
Bufferবাফার
মেমরির একটি অস্থায়ী জায়গা, যেখানে ডেটা জমিয়ে একবারে বড় টুকরো হিসেবে পড়া বা লেখা হয়; এতে বারবার অপারেটিং সিস্টেমকে ডাকার খরচ কমে।যেখানে শিখবেন: পর্ব ৩৭
BufferedReaderবাফার্ড রিডার
java.io-এর একটি class, যা ভেতরের Reader থেকে বড় টুকরো একবারে পড়ে জমিয়ে রাখে আর readLine() দিয়ে লাইন দেয়; Scanner-এর চেয়ে দ্রুত, তাই বড় ইনপুট আর কনটেস্টে জনপ্রিয়।যেখানে শিখবেন: পর্ব ০৯পর্ব ৩৭পর্ব ৪৩
BufferedWriterবাফার্ড রাইটার
লেখা অক্ষরগুলো আগে মেমরির একটি buffer-এ জমায়, ভরলে বা flush/close হলে একবারে ফাইলে পাঠায়; Files.newBufferedWriter(path) দিয়ে পাওয়া যায়।যেখানে শিখবেন: পর্ব ৩৭
Build cacheবিল্ড ক্যাশ
task-এর ইনপুটের fingerprint অনুযায়ী আউটপুট জমা রাখার ব্যবস্থা; একই ইনপুট আবার এলে, এমনকি অন্য মেশিনেও, task না চালিয়ে আউটপুট এনে বসানো হয়, আর Gradle তখন FROM-CACHE লেখে.যেখানে শিখবেন: পর্ব ৪৬
Build lifecycle (Maven)বিল্ড লাইফসাইকেল
Maven-এর phase-এর নির্দিষ্ট ক্রম, যেমন validate, compile, test, package, verify, install, deploy; একটি phase চাইলে তার আগের সব phase ক্রমে চলে।যেখানে শিখবেন: পর্ব ৪৬পর্ব ৫৭
Build toolবিল্ড টুল
যে প্রোগ্রাম প্রজেক্টের একটি বর্ণনা পড়ে নিজে library নামায়, compile করে, টেস্ট চালায় আর প্যাকেজ বানায়, যাতে সব মেশিনে এক কমান্ডে একই ফল আসে; যেমন Maven ও Gradle.যেখানে শিখবেন: পর্ব ৪৬
Builder patternবিল্ডার প্যাটার্ন
একটি সহকারী builder object-এ নাম ধরে একে একে মান দিয়ে শেষে build() দিয়ে যাচাইসহ একবারে আসল object বানানোর design pattern.যেখানে শিখবেন: পর্ব ১৬পর্ব ২৭পর্ব ৪৮
Byte stream (InputStream/OutputStream)বাইট স্ট্রিম
কাঁচা byte একটির পর একটি পড়া-লেখার java.io পথ; ছবি, zip বা যেকোনো binary ফাইলের জন্য। অক্ষর বা encoding সম্পর্কে কিছু জানে না।যেখানে শিখবেন: পর্ব ৩৭পর্ব ৪৩
Bytecodeবাইটকোড
javac যে মাঝামাঝি নির্দেশমালা তৈরি করে .class ফাইলে রাখে। এটি কোনো নির্দিষ্ট CPU-র machine code নয়; যেকোনো OS-এর JVM এটি চালাতে পারে।যেখানে শিখবেন: পর্ব ০১পর্ব ০৩পর্ব ০৪
Bytecode verifierবাইটকোড ভেরিফায়ার
লোড হওয়া class চালানোর আগে যাচাই করে যে bytecode type, stack আর access-এর নিয়ম ভাঙছে না, যাতে ভুল বা ক্ষতিকর class ফাইল JVM-কে ভাঙতে না পারেযেখানে শিখবেন: পর্ব ০৫পর্ব ৫৭

C

Cache localityক্যাশ লোকালিটি
মেমরিতে পাশাপাশি থাকা ডেটা একসাথে CPU-র দ্রুত cache-এ উঠে আসে, তাই পরপর ঘর পড়া খুব দ্রুত; ছড়িয়ে থাকা ডেটায় (যেমন linked list-এর node) বারবার ধীর মূল মেমরিতে যেতে হয়যেখানে শিখবেন: পর্ব ৩০
Call stackকল স্ট্যাক
প্রতিটি thread-এর একটি stack, যেখানে প্রতিটি চলমান method-ডাকের জন্য একটি frame থাকে। ডাক এলে frame ওপরে বসে, return হলে সরে যায় (Last In First Out).যেখানে শিখবেন: পর্ব ১২পর্ব ২৯পর্ব ৩২
Callableকলেবল
ফলসহ একটি কাজের functional interface (Java 5 থেকে), method V call() throws Exception; ExecutorService.submit-এ দিলে ফল আসে একটি Future-এযেখানে শিখবেন: পর্ব ৪১
Callbackকলব্যাক
একটি function বা lambda, যা অন্য কোডের হাতে দেওয়া হয় যাতে কোনো কাজ শেষ হলে বা ঘটনা ঘটলে সে পরে এটি ডাকে; async কোডে অপেক্ষার বদলে এভাবেই পরের ধাপ বলা হয়যেখানে শিখবেন: পর্ব ৪১পর্ব ৪২
Callback hellকলব্যাক হেল
একটির পর একটি async ধাপ callback-এর ভেতরে callback দিয়ে লেখায় কোড পিরামিডের মতো ডানে সরে যাওয়া, আর প্রতিটি স্তরে ভুল সামলানো কঠিন হওয়ার অবস্থাযেখানে শিখবেন: পর্ব ৪১
camelCaseক্যামেলকেস
নামকরণের রীতি: প্রথম শব্দ ছোট হাতের, পরের প্রতিটি শব্দের প্রথম অক্ষর বড় হাতের, যেমন addVat, calculateTotalPrice. Java-তে method আর ভ্যারিয়েবলের নাম এভাবে লেখা হয়।যেখানে শিখবেন: পর্ব ০৬পর্ব ১২
Canonical constructorক্যানোনিকাল কনস্ট্রাক্টর
record-এর সব component একই ক্রমে নেওয়া constructor, যা compiler নিজে তৈরি করে; যাচাইয়ের জন্য এর ছোট compact রূপ লেখা যায়।যেখানে শিখবেন: পর্ব ১৬পর্ব ২৫পর্ব ৩৯
Capacityক্যাপাসিটি
ArrayList-এর ভেতরের array-তে মোট কয়টি ঘর আছে; size হলো তার মধ্যে কয়টি আসলে ভরা। capacity ভরে গেলে ArrayList একটি বড় array বানিয়ে সব কপি করেযেখানে শিখবেন: পর্ব ৩০
Capturing groupক্যাপচারিং গ্রুপ
বন্ধনী ( ) দিয়ে ঘেরা নকশার অংশ, যার মিলে যাওয়া টুকরো মনে রাখা হয়; বাঁ দিক থেকে নম্বর পায় আর group(1), group(2) দিয়ে পাওয়া যায়।যেখানে শিখবেন: পর্ব ১৪
Carrier threadক্যারিয়ার থ্রেড
যে platform thread-এর ওপর একটি virtual thread চলার সময় mount হয়; ডিফল্টে এগুলো একটি ForkJoinPool-এর thread, সংখ্যায় মোটামুটি CPU core-এর সমানযেখানে শিখবেন: পর্ব ৪২পর্ব ৫৮
Cascade (JPA)ক্যাসকেড
মালিক entity-র ওপর করা কাজ (PERSIST, MERGE, REMOVE ইত্যাদি) সম্পর্কিত entity-তেও ছড়িয়ে দেওয়ার নিয়ম; সাধারণত মালিক থেকে সন্তানের দিকে, যেমন অর্ডার থেকে তার আইটেমে।যেখানে শিখবেন: পর্ব ৫২
case labelকেস লেবেল
switch-এর ভেতরে একটি সম্ভাব্য মান চিহ্নিত করার জায়গা — যেমন case 1: বা case "add" -> লেখা অংশটি। selector-এর সাথে মিললে সেখান থেকে কাজ শুরু হয়।যেখানে শিখবেন: পর্ব ১০
Case-sensitiveকেস-সেনসিটিভ
বড় হাত আর ছোট হাতের অক্ষরকে আলাদা ধরা। Java-তে System আর system, main আর Main সম্পূর্ণ আলাদা নাম।যেখানে শিখবেন: পর্ব ০৪
Catastrophic backtrackingক্যাটাস্ট্রফিক ব্যাকট্র্যাকিং
নেস্টেড বা ওভারল্যাপ করা quantifier-যুক্ত নকশায় মিল না পেলে engine এত বেশি ভাগ চেষ্টা করে যে লেখার দৈর্ঘ্যের সাথে সময় সূচকীয় হারে বাড়ে, যেমন (a+)+b-এর মতো নকশায়।যেখানে শিখবেন: পর্ব ১৪
Certificate (TLS/X.509)সার্টিফিকেট
সার্ভারের public key আর নাম, একটি certificate authority-র ডিজিটাল সইসহ; client এটি যাচাই করে নিশ্চিত হয় যে সে সত্যিই সঠিক সার্ভারের সাথে কথা বলছে।যেখানে শিখবেন: পর্ব ৪৩
Certificate authority (CA)সার্টিফিকেট অথরিটি
বিশ্বস্ত প্রতিষ্ঠান, যা যাচাই করে সার্ভারের certificate-এ সই করে; Java-র truststore-এ বিশ্বস্ত CA-দের তালিকা থাকে, যেমন Let's Encrypt.যেখানে শিখবেন: পর্ব ৪৩
Chain of Responsibility patternচেইন অফ রেসপন্সিবিলিটি প্যাটার্ন
একটি অনুরোধ কয়েকটি handler-এর শিকল ধরে এগোয়; প্রতিটি handler কাজ করে পরেরজনকে দিতে পারে বা সেখানেই থামাতে পারে — যেমন Servlet filter.যেখানে শিখবেন: পর্ব ৪৮পর্ব ৫৩
charক্যার
Java-র ১৬-বিটের primitive টাইপ, যা একটি UTF-16 code unit রাখে, যেমন 'a' বা 'ব'. সব অক্ষর এক char-এ আঁটে না — emoji-র মতো অক্ষরে দুটি char লাগে।যেখানে শিখবেন: পর্ব ০৮
Character classক্যারেক্টার ক্লাস
বর্গবন্ধনীর ভেতরে লেখা অক্ষরের একটি সেট, যার যেকোনো একটি এক ঘরে মেলে, যেমন [3-9] বা [^0-9]; \d, \w, \s হলো তৈরি করা সংক্ষিপ্ত রূপ।যেখানে শিখবেন: পর্ব ১৪
Character stream (Reader/Writer)ক্যারেক্টার স্ট্রিম
byte নয়, অক্ষর পড়া-লেখার java.io পথ; ভেতরে একটি charset দিয়ে byte-কে অক্ষরে রূপান্তর করে। লেখার ফাইলের জন্য এটি।যেখানে শিখবেন: পর্ব ৩৭
Charset (character encoding)ক্যারেক্টার সেট
অক্ষরকে byte-এ আর byte-কে অক্ষরে রূপান্তরের নিয়ম, যেমন UTF-8 বা ISO-8859-1; Java-তে java.nio.charset.Charset, আর তৈরি ধ্রুবক StandardCharsets.UTF_8.যেখানে শিখবেন: পর্ব ৩৭পর্ব ৪৩
Check-then-actচেক-দেন-অ্যাক্ট
আগে একটি শর্ত যাচাই, তারপর সেই শর্তের ওপর ভরসা করে কাজ — যেমন সিট আছে কি না দেখে সিট নেওয়া। যাচাই আর কাজের মাঝখানে অন্য thread অবস্থা বদলে দিলে ভুল হয়।যেখানে শিখবেন: পর্ব ৪০পর্ব ৫৫
checkcastচেককাস্ট
JVM bytecode-এর একটি নির্দেশ, যা চলার সময় পরীক্ষা করে একটি object নির্দিষ্ট টাইপের কি না, না হলে ClassCastException ছোড়ে; erasure-এর পর generic মান বের করার জায়গায় compiler এটি বসায়যেখানে শিখবেন: পর্ব ২৮
Checked exceptionচেকড এক্সেপশন
Exception-এর যে subclass RuntimeException-এর বংশধর নয়, যেমন IOException. compiler জোর করে: method হয় এটি catch করবে, নয়তো throws দিয়ে ঘোষণা করবে।যেখানে শিখবেন: পর্ব ২৯পর্ব ৩৪পর্ব ৩৫
Checksumচেকসাম
একটি ফাইলের content থেকে হিসাব করা ছোট আঙুলের ছাপ (যেমন SHA-256); নামানো ফাইলের checksum প্রকাশিতটার সাথে মিললে বোঝা যায় ফাইলটি বদলানো বা নষ্ট হয়নি।যেখানে শিখবেন: পর্ব ৪৬
ChronoUnitক্রোনো ইউনিট
সময়ের এককগুলোর enum (DAYS, WEEKS, MONTHS, HOURS…); ChronoUnit.DAYS.between(a, b) দুই তারিখের মধ্যে মোট দিনের সংখ্যা long হিসেবে দেয়যেখানে শিখবেন: পর্ব ৩৮
Circular buffer (ring buffer)সার্কুলার বাফার
একটি array আর দুটি index (head, tail) দিয়ে বানানো queue, যেখানে index শেষ ঘর পেরোলে আবার শুরুতে ফিরে আসে; ফলে বের করার সময় কাউকে সরাতে হয় নাযেখানে শিখবেন: পর্ব ৩২
Claim (JWT)ক্লেইম
JWT-এর payload-এর একটি নাম-মানের তথ্য — sub (কে), exp (মেয়াদ শেষ), iat (কখন দেওয়া), iss (কে দিয়েছে), বা নিজের roles-এর মতো claim.যেখানে শিখবেন: পর্ব ৫৩
Clarifying questionক্ল্যারিফাইং কোয়েশ্চেন
কোড লেখার আগে সমস্যার অস্পষ্ট দিক পরিষ্কার করতে করা প্রশ্ন — ইনপুটের আকার, খালি ইনপুট, ডুপ্লিকেট, কী ফেরত দিতে হবে ইত্যাদিযেখানে শিখবেন: পর্ব ৫৯
Classক্লাস
object-এর নকশা বা ছাঁচ — কোন কোন field থাকবে আর কোন কোন method থাকবে, তা ঠিক করে। Java-তে সব কোড কোনো না কোনো class-এর ভেতরে থাকেযেখানে শিখবেন: পর্ব ০১পর্ব ০২পর্ব ০৪
Class file (.class)ক্লাস ফাইল
javac-এর তৈরি ফাইল, যার ভেতরে একটি class-এর bytecode থাকে। শুরুতে থাকে CAFEBABE আর version নম্বর (যেমন Java 21-এর জন্য 65).যেখানে শিখবেন: পর্ব ০১পর্ব ০৩পর্ব ০৫
Class hierarchyক্লাস হায়ারার্কি
parent আর child class-গুলোর গাছের মতো সাজানো রূপ, যার চূড়ায় Object; কোন class কার বিশেষ ধরন তা এক নজরে দেখায়যেখানে শিখবেন: পর্ব ১৯
Class Hierarchy Analysis (CHA)ক্লাস হায়ারার্কি অ্যানালাইসিস
JVM-এ এই মুহূর্তে লোড হওয়া class-গুলোর বংশতালিকা দেখে বের করা কোন method-কে কেউ override করেনি। HotSpot এর ভিত্তিতে devirtualize করে, আর নতুন subclass লোড হলে দরকারে deoptimize করে।যেখানে শিখবেন: পর্ব ২০
Class initializationক্লাস ইনিশিয়ালাইজেশন
class-এর প্রথম সক্রিয় ব্যবহারে (প্রথম new, প্রথম static method ডাক বা static field ব্যবহার) JVM static field-এর শুরুর মান বসায় আর static block চালায়; প্রতিটি class-এর জন্য এটি একবারই ঘটে।যেখানে শিখবেন: পর্ব ১৮পর্ব ২৪
Class loaderক্লাস লোডার
JVM-এর যে অংশ কোনো class প্রথমবার দরকার হলে তার .class ফাইল খুঁজে মেমরিতে আনে। মূল তিনটি: bootstrap, platform আর applicationযেখানে শিখবেন: পর্ব ০৫পর্ব ৪৫
Class objectক্লাস অবজেক্ট
একটি class লোড হলে JVM তার বর্ণনা হিসেবে যে java.lang.Class object বানায়; obj.getClass(), Foo.class বা Class.forName("Foo") দিয়ে পাওয়া যায়, আর reflection-এর সব কাজ এখান থেকে শুরু।যেখানে শিখবেন: পর্ব ৪৫
ClassCastExceptionক্লাস কাস্ট এক্সেপশন
চলার সময়ের exception, যা আসে যখন কোনো object-কে এমন টাইপে cast করা হয় যা সে আসলে নয়, যেমন NagadPayment-কে BkashPayment-এ।যেখানে শিখবেন: পর্ব ২০পর্ব ২৯
Classpathক্লাসপাথ
যেসব ফোল্ডার ও .jar ফাইলে JVM দরকারি .class খোঁজে তার তালিকা। কিছু না বললে ডিফল্ট হলো বর্তমান ফোল্ডার; --class-path বা -cp দিয়ে বদলানো যায়।যেখানে শিখবেন: পর্ব ০৩
Clean codeক্লিন কোড
এমন কোড, যা পরের পাঠক দ্রুত বুঝতে আর নিরাপদে বদলাতে পারেন — অর্থপূর্ণ নাম, ছোট এক-কাজের method, স্পষ্ট গঠন আর টেস্টের সুরক্ষা। Robert C. Martin-এর ২০০৮ সালের বইয়ের নামেও পরিচিত।যেখানে শিখবেন: পর্ব ৪৮
Cleaner (java.lang.ref.Cleaner)ক্লিনার
Java 9-এর ব্যবস্থা, যা একটি object unreachable হলে নিবন্ধিত পরিষ্কারের কাজ চালায়; finalize-এর নিরাপদ বিকল্প, তবে মূল উপায় try-with-resourcesযেখানে শিখবেন: পর্ব ৪৪
CLI (Command-Line Interface)সি-এল-আই
যে প্রোগ্রাম terminal-এ লেখা কমান্ড পড়ে আর লেখায় উত্তর দেয়, কোনো বোতাম বা জানালা ছাড়াই; যেমন git, javac বা java নিজে।যেখানে শিখবেন: পর্ব ২২
Client-server modelক্লায়েন্ট-সার্ভার মডেল
নেটওয়ার্ক প্রোগ্রামের ধাঁচ, যেখানে সার্ভার একটি নির্দিষ্ট port-এ আগে থেকে অপেক্ষা করে আর client দরকারমতো সংযোগ খুলে অনুরোধ পাঠায়; একটি সার্ভার অনেক client সামলায়।যেখানে শিখবেন: পর্ব ৪৩
Clockক্লক
java.time-এ “এখন কত বাজে” দেওয়ার উৎস; now(clock) দিয়ে ব্যবহার করলে আসল অ্যাপে system clock আর টেস্টে Clock.fixed দেওয়া যায়, ফলে সময়-নির্ভর কোড নিয়ন্ত্রণে টেস্ট করা যায়যেখানে শিখবেন: পর্ব ৩৮পর্ব ৪৭পর্ব ৫৫
clone()ক্লোন
Object class-এর protected method, যা Cloneable interface থাকলে object-এর কপি বানায়; constructor এড়িয়ে যায় আর ডিফল্টভাবে shallow copy করে, তাই সাধারণত এড়ানো হয়।যেখানে শিখবেন: পর্ব ১৬পর্ব ২৩
Closureক্লোজার
যে function বা lambda তার চারপাশের ভ্যারিয়েবল ধরে রেখে পরে ব্যবহার করতে পারে; Java-র lambda ধরা ভ্যারিয়েবলের কপি রাখে, তাই সেটি effectively final হতে হয়।যেখানে শিখবেন: পর্ব ৩৪
Code cacheকোড ক্যাশ
Heap-এর বাইরের যে অঞ্চলে JIT compiler-এর বানানো machine code রাখা হয়। ভরে গেলে JIT নতুন কোড compile করা বন্ধ করে, প্রোগ্রাম ধীর হয়যেখানে শিখবেন: পর্ব ৪৪
Code coverageকোড কভারেজ
টেস্ট চলার সময় কোডের কত শতাংশ লাইন বা শাখা অন্তত একবার চলেছে তার মাপ; কোন কোড কখনো টেস্ট হয়নি তা দেখায়, কিন্তু ফল যাচাই হয়েছে কি না বলে নাযেখানে শিখবেন: পর্ব ৪৭
Code pointকোড পয়েন্ট
Unicode-এ প্রতিটি অক্ষরের নির্দিষ্ট নম্বর, যেমন ব-এর নম্বর U+09AC. একটি code point UTF-16-এ এক বা দুটি code unit নেয়।যেখানে শিখবেন: পর্ব ০৮পর্ব ১৪
Code reviewকোড রিভিউ
কোড মূল শাখায় যোগ হওয়ার আগে অন্য এক বা একাধিক প্রোগ্রামারের (বা AI-এর) পড়ে দেখা — যুক্তির ভুল, নাম, নকশা আর টেস্ট নিয়ে প্রশ্ন ও পরামর্শ দেওয়া।যেখানে শিখবেন: পর্ব ৪৮পর্ব ৫৯
Code smellকোড স্মেল
কোডের এমন লক্ষণ, যা নিজে bug নয় কিন্তু গভীর কোনো নকশা-সমস্যার ইঙ্গিত দেয় — যেমন লম্বা method বা একই if-শিকল কয়েক জায়গায়। Martin Fowler-এর Refactoring বই শব্দটি জনপ্রিয় করে।যেখানে শিখবেন: পর্ব ৪৮
Code unitকোড ইউনিট
কোনো encoding-এর একটি মৌলিক টুকরো; UTF-16-এ একটি code unit মানে ১৬ বিট, অর্থাৎ Java-র একটি char. String-এর length() এগুলোই গোনে।যেখানে শিখবেন: পর্ব ০৮পর্ব ৩৩
Cohesionকোহেশন
একটি class-এর কাজগুলো একটি লক্ষ্যে কতটা জড়ো; বেশি cohesion মানে class-টি একটি পরিষ্কার দায়িত্ব পালন করেযেখানে শিখবেন: পর্ব ০২পর্ব ২২পর্ব ৪৮
Collaboratorকোলাবোরেটর
যে class-এর সাহায্য নিয়ে আরেকটি class নিজের দায়িত্ব পালন করে, অর্থাৎ যাকে সে বার্তা পাঠায়যেখানে শিখবেন: পর্ব ০২পর্ব ২২
Collatorকোলেটর
java.text-এর class, যা ভাষা ও locale-এর নিয়ম মেনে String তুলনা করে; বড়-ছোট হাতের অক্ষর, accent বা Unicode-এর একাধিক লেখারূপ কতটা গুরুত্ব পাবে তা strength আর decomposition দিয়ে ঠিক করা যায়যেখানে শিখবেন: পর্ব ৩৩
Collection (interface)কালেকশন
java.util-এর মূল interface, যা অনেকগুলো জিনিসের যেকোনো দলকে বোঝায়; add, remove, contains, size, isEmpty আর iterator-এর মতো সাধারণ method এখানে ঘোষিত, আর List, Set, Queue এর থেকে আসেযেখানে শিখবেন: পর্ব ৩০
Collection viewকালেকশন ভিউ
নিজের কোনো কপি না রেখে অন্য একটি collection বা array-কে নতুন চেহারায় দেখানো object; মূলটা বদলালে view-তেও বদল দেখা যায়, যেমন subList, Arrays.asList, Collections.unmodifiableListযেখানে শিখবেন: পর্ব ৩০
Collectorকালেক্টর
collect() terminal operation-কে বলে দেওয়া রেসিপি — উপাদানগুলো কোন পাত্রে, কীভাবে জমাতে হবে; java.util.stream.Collectors-এ তৈরি অনেক collector আছে: toList, toSet, toMap, joining, groupingBy, partitioningByযেখানে শিখবেন: পর্ব ৩৫
Command patternকমান্ড প্যাটার্ন
একটি design pattern, যেখানে একটি অনুরোধ বা কাজকে object বানানো হয়, যাতে সেটি রাখা, সারিতে দেওয়া, লগ করা বা undo করা যায়।যেখানে শিখবেন: পর্ব ২২পর্ব ৪৮
Command-line argumentকমান্ড-লাইন আর্গুমেন্ট
প্রোগ্রাম চালানোর কমান্ডের পরে লেখা শব্দ, যেমন java Main Dhaka 42 — Java এগুলো main-এর String[] args-এ দেয়।যেখানে শিখবেন: পর্ব ১৩
Commentকমেন্ট
কোডের ভেতরে মানুষের জন্য লেখা নোট, যা compiler পুরোপুরি বাদ দেয়। Java-তে // (এক লাইন), /* */ (অনেক লাইন) আর /** */ (Javadoc) — এই তিন রূপ।যেখানে শিখবেন: পর্ব ০৪
Commitকমিট
transaction-এর সব বদল একসাথে স্থায়ী করা আর অন্যদের কাছে দৃশ্যমান করা। JDBC-তে con.commit().যেখানে শিখবেন: পর্ব ৪৯
Compact constructorকম্প্যাক্ট কনস্ট্রাক্টর
record-এর canonical constructor-এর ছোট রূপ, যা নামের পরে কোনো parameter তালিকা ছাড়া লেখা হয়। ভেতরে parameter যাচাই বা বদল করা যায়, আর শরীর শেষ হলে compiler নিজে parameter-এর মান field-এ বসায়।যেখানে শিখবেন: পর্ব ২৫পর্ব ৫৮
Compact stringsকমপ্যাক্ট স্ট্রিংস
Java 9-এর একটি ব্যবস্থা (JEP 254): যে String-এর সব অক্ষর Latin-1-এ আঁটে, সেটি প্রতি অক্ষরে ১ বাইটে রাখা হয়; বাকিগুলো (যেমন বাংলা) ২ বাইটে।যেখানে শিখবেন: পর্ব ০৮
Comparable<T>কম্পেয়ারেবল
java.lang-এর interface, যার একমাত্র method compareTo(T); কোনো class এটি implement করলে তার object-গুলোর একটি স্বাভাবিক ক্রম থাকে, ফলে Arrays.sort বা TreeSet সরাসরি সাজাতে পারেযেখানে শিখবেন: পর্ব ২৩পর্ব ২৮পর্ব ৩১
Comparator<T>কম্পারেটর
java.util-এর interface, যা class-এর বাইরে থেকে দুটি object-এর ক্রম ঠিক করে (compare method); একই class-কে দাম, নাম বা তারিখ — ভিন্ন ভিন্ন নিয়মে সাজাতে এটি লাগেযেখানে শিখবেন: পর্ব ২৩পর্ব ২৭পর্ব ২৮
Compare-and-swap (CAS)কম্পেয়ার-অ্যান্ড-সোয়াপ
CPU-র একটি অবিভাজ্য নির্দেশ: মেমরিতে মান যদি এখনো প্রত্যাশিত মান থাকে, তবেই নতুন মান বসাও, নইলে ব্যর্থতা জানাও। ব্যর্থ হলে আবার পড়ে চেষ্টা করা হয়; atomic class-এর ভিত্তি।যেখানে শিখবেন: পর্ব ৪০পর্ব ৫৫পর্ব ৫৮
compareTo()কম্পেয়ার-টু
দুটি মানের ক্রম বলার method: ঋণাত্মক মানে প্রথমটি আগে, শূন্য মানে সমান, ধনাত্মক মানে পরে। String-এ এটি অক্ষরের Unicode মান ধরে অভিধানের মতো তুলনা করে।যেখানে শিখবেন: পর্ব ০৮পর্ব ২৩পর্ব ৩৩
Comparison operatorকম্প্যারিজন অপারেটর
দুটি মান তুলনা করে true বা false দেয় এমন অপারেটর: ==, !=, <, >, <=, >=যেখানে শিখবেন: পর্ব ০৭
Compensating actionকম্পেনসেটিং অ্যাকশন
আগে সফল হওয়া একটি ধাপের প্রভাব উল্টানোর পাল্টা কাজ — যেমন পেমেন্ট ব্যর্থ হলে আটকানো stock ফেরত দেওয়া; যেখানে এক transaction সম্ভব নয়, সেখানে ব্যবহৃত হয়।যেখানে শিখবেন: পর্ব ৫৫
Competitive programmingকম্পিটিটিভ প্রোগ্রামিং
নির্দিষ্ট সময় আর মেমরির সীমায় স্পষ্টভাবে বলা অ্যালগরিদম-সমস্যার সমাধান জমা দেওয়ার প্রতিযোগিতা; একটি online judge গোপন টেস্টে চালিয়ে বিচার করেযেখানে শিখবেন: পর্ব ৫৪
Compile errorকম্পাইল এরর
javac কোডে ব্যাকরণ বা টাইপের নিয়মভঙ্গ পেলে যে error দেয়; থাকলে .class ফাইল তৈরি হয় না, প্রোগ্রাম চালানোই যায় না। মেসেজে ফাইল, লাইন নম্বর আর কারণ থাকে।যেখানে শিখবেন: পর্ব ০৪পর্ব ৫৬
Compile-time constantকম্পাইল-টাইম কনস্ট্যান্ট
primitive বা String টাইপের final ভ্যারিয়েবল, যার মান একটি constant expression (যেমন 5 বা "Dhaka"); compiler মানটি সরাসরি ব্যবহারকারী class-এর bytecode-এ বসিয়ে দেয় — একে বলে inlining.যেখানে শিখবেন: পর্ব ১৮পর্ব ৫৭
Compile-time polymorphismকম্পাইল-টাইম পলিমরফিজম
যে “বহু রূপ” compiler নিজেই compile-এর সময় মিটিয়ে ফেলে — Java-তে মূলত method overloading, যেখানে argument-এর static type দেখে একটি সংস্করণ বাছাই হয়। একে static polymorphism-ও বলে।যেখানে শিখবেন: পর্ব ২০
Compilerকম্পাইলার
যে প্রোগ্রাম মানুষের লেখা source code পুরোটা পড়ে ভুল যাচাই করে এবং অন্য একটি রূপে (machine code বা bytecode) অনুবাদ করে।যেখানে শিখবেন: পর্ব ০১
CompletableFutureকমপ্লিটেবল ফিউচার
Java 8-এ আসা একটি Future, যার সাথে thenApply, thenCompose, exceptionally-র মতো ধাপ জুড়ে অপেক্ষা না করেই পরের কাজ সাজানো যায় — async কোডের মূল হাতিয়ারযেখানে শিখবেন: পর্ব ৪১পর্ব ৪২পর্ব ৪৩
CompletionExceptionকমপ্লিশন এক্সেপশন
CompletableFuture-এর unchecked মোড়ক exception; join() আর নির্ভরশীল ধাপের exceptionally/handle আসল ভুলকে এতে মুড়ে দেয়, আসলটি getCause()-এযেখানে শিখবেন: পর্ব ৪১
Component scanningকম্পোনেন্ট স্ক্যানিং
অ্যাপ চালুর সময় Spring-এর নির্দিষ্ট package-এর সব class খুঁজে দেখা, কোনগুলোর গায়ে @Component (বা @Service, @Repository ইত্যাদি) আছে, যাতে সেগুলোর object নিজে বানানো যায়।যেখানে শিখবেন: পর্ব ৪৫পর্ব ৫০
Compositionকম্পোজিশন
একটি class আরেকটি class-এর object-কে field হিসেবে রেখে তার কাজে লাগায় (has-a), extends না করে; ভেতরের object-এর বদলে বাইরের class সহজে ভাঙে নাযেখানে শিখবেন: পর্ব ১৯পর্ব ৫৮
Compound assignmentকম্পাউন্ড অ্যাসাইনমেন্ট
+=, -=, *= ধরনের সংক্ষিপ্ত অপারেটর। x += y আসলে x = (x-এর টাইপ) (x + y), অর্থাৎ ভেতরে একটি cast লুকানো থাকেযেখানে শিখবেন: পর্ব ০৭
Compressed oopsকম্প্রেসড উপস
Heap ৩২ GB-এর কম হলে HotSpot ৬৪-bit object reference-কে ৩২ bit-এ চেপে রাখার কৌশল; মেমরি বাঁচায়, ডিফল্টভাবে চালুযেখানে শিখবেন: পর্ব ৪৪
Computational thinkingকম্পিউটেশনাল থিংকিং
সমস্যাকে এমনভাবে ভাবা যাতে কম্পিউটার সমাধান করতে পারে — decomposition, pattern খোঁজা, abstraction আর algorithm মিলিয়েযেখানে শিখবেন: পর্ব ০২
computeIfAbsent()কম্পিউট-ইফ-অ্যাবসেন্ট
Map-এর method (Java 8 থেকে): key না থাকলে দেওয়া function চালিয়ে মান বানায়, বসায় আর ফেরত দেয়; key থাকলে function না চালিয়ে আগের মানটিই ফেরত দেয়। Map of List বানাতে সবচেয়ে কাজেরযেখানে শিখবেন: পর্ব ৩১পর্ব ৫৯
concrete classকংক্রিট ক্লাস
যে class-এর সব method-এর শরীর আছে আর যার object new দিয়ে বানানো যায়; abstract class-এর বিপরীত।যেখানে শিখবেন: পর্ব ২১
Concurrencyকনকারেন্সি
অনেকগুলো কাজ একই সময়সীমার মধ্যে এগোনো, হয়তো পালা করে — এক core-এও সম্ভব। একজন চা-দোকানি একাই কয়েকটি কাজ ঘুরে ঘুরে করার মতো।যেখানে শিখবেন: পর্ব ৪০
ConcurrentHashMapকনকারেন্ট হ্যাশম্যাপ
java.util.concurrent-এর thread-safe Map — অনেক thread একসাথে পড়তে আর আলাদা key-তে লিখতে পারে। merge, compute, putIfAbsent অবিভাজ্য; null key বা value চলে না।যেখানে শিখবেন: পর্ব ৪০
ConcurrentModificationExceptionকনকারেন্ট মডিফিকেশন এক্সেপশন
Iterator চলার সময় collection-টি অন্য পথে (যেমন list.remove) বদলালে যে exception আসে। একটিমাত্র thread-এও ঘটে; সমাধান removeIf বা Iterator.remove().যেখানে শিখবেন: পর্ব ১১পর্ব ৩০পর্ব ৩১
Condition (শর্ত)কন্ডিশন
এমন একটি expression, যার ফল true বা false — যেমন marks >= 33 শর্তটি। এর ফল দেখে প্রোগ্রাম ঠিক করে কোন পথে যাবে।যেখানে শিখবেন: পর্ব ১০
ConnectExceptionকানেক্ট এক্সেপশন
সংযোগ স্থাপন ব্যর্থ হলে ছোড়া IOException-এর উপশ্রেণি; Connection refused মানে মেশিন পৌঁছানো গেছে কিন্তু সেই port-এ কেউ listen করছে না।যেখানে শিখবেন: পর্ব ৪৩
Connection (JDBC)কানেকশন
ডেটাবেস server-এর সাথে একটি খোলা সেশন; এর থেকেই PreparedStatement তৈরি হয় আর transaction (commit, rollback) নিয়ন্ত্রণ হয়। AutoCloseable, তাই try-with-resources-এ রাখতে হয়।যেখানে শিখবেন: পর্ব ৪৯
Connection poolকানেকশন পুল
আগে থেকে খোলা কয়েকটি ডেটাবেস connection-এর সংগ্রহ, যেখান থেকে কোড ধার নেয় আর close() দিয়ে ফেরত দেয়; প্রতিবার নতুন সংযোগ খোলার খরচ বাঁচায়।যেখানে শিখবেন: পর্ব ৪৯
Consistent with equalsকনসিস্টেন্ট উইথ ইকুয়ালস
যে ক্রমে compare শূন্য দেয় ঠিক তখনই, যখন equals true দেয়; TreeSet আর TreeMap সমতা যাচাই করে compare দিয়ে, তাই এই মিল না থাকলে উপাদান হারিয়ে যেতে পারেযেখানে শিখবেন: পর্ব ৩৩
Constantকনস্ট্যান্ট
যে মান পুরো প্রোগ্রামে একটিই আর কখনো বদলায় না; Java-তে সাধারণত static final দিয়ে লেখা হয় আর নাম হয় সব বড় হাতে, যেমন VAT_RATE.যেখানে শিখবেন: পর্ব ১৪পর্ব ১৮পর্ব ২৪
constant interface (anti-pattern)কনস্ট্যান্ট ইন্টারফেস
শুধু constant রাখার জন্য interface বানিয়ে class-এ implement করার পুরোনো অভ্যাস; এটি ভুল নকশা, কারণ implements মানে টাইপের প্রতিশ্রুতি, constant ধার করা নয়।যেখানে শিখবেন: পর্ব ২১
Constant-specific bodyকনস্ট্যান্ট-স্পেসিফিক বডি
enum-এর কোনো একটি constant-এর পরে কোঁকড়া বন্ধনীতে লেখা নিজস্ব method-এর সংস্করণ, যেমন PLUS { int apply(...) {...} }; javac প্রতিটির জন্য একটি নামহীন subclass বানায়।যেখানে শিখবেন: পর্ব ২৪
Constructorকনস্ট্রাক্টর
class-এর নামে লেখা, return type-হীন বিশেষ অংশ, যা new দিয়ে object তৈরির সময় ঠিক একবার চলে আর object-কে প্রথম মুহূর্ত থেকেই বৈধ অবস্থায় সাজায়।যেখানে শিখবেন: পর্ব ১৫পর্ব ১৬পর্ব ১৮
Constructor chainingকনস্ট্রাক্টর চেইনিং
একটি constructor থেকে this(...) দিয়ে একই class-এর আরেকটি constructor ডাকা, যাতে যাচাই আর assignment-এর কোড এক জায়গায় থাকে; Java 21-এ this(...) অবশ্যই প্রথম statement.যেখানে শিখবেন: পর্ব ১৬
Constructor injectionকনস্ট্রাক্টর ইনজেকশন
নির্ভরতা constructor-এর parameter হিসেবে দেওয়া; field final রাখা যায়, নির্ভরতা স্পষ্ট থাকে আর framework ছাড়াই টেস্টে নকল দেওয়া যায়। Spring-এ এটিই প্রস্তাবিত পথ।যেখানে শিখবেন: পর্ব ৫০পর্ব ৫৭
Constructor overloadingকনস্ট্রাক্টর ওভারলোডিং
একই class-এ ভিন্ন ভিন্ন parameter-তালিকার একাধিক constructor রাখা; argument দেখে compiler ঠিক করে কোনটি চলবে।যেখানে শিখবেন: পর্ব ১৬
Consumer<T>কনজিউমার
একটি T নিয়ে কোনো কাজ করে কিন্তু কিছু ফেরত দেয় না এমন functional interface; method হলো accept(t). ছাপা, পাঠানো বা সেভ করার মতো কাজে ব্যবহার হয়।যেখানে শিখবেন: পর্ব ৩৪
Container awarenessকন্টেইনার অ্যাওয়্যারনেস
JVM-এর Docker বা Kubernetes container-এর CPU ও মেমরি সীমা পড়ে সেই অনুযায়ী heap আর thread ঠিক করার ক্ষমতা; JDK 10 থেকে ডিফল্টভাবে চালুযেখানে শিখবেন: পর্ব ৪৪
Content-Typeকনটেন্ট-টাইপ
যে header বলে body কোন ফরম্যাটে আছে; JSON হলে মান application/json, আর ProblemDetail হলে application/problem+jsonযেখানে শিখবেন: পর্ব ৪৩পর্ব ৫১
Context switchকনটেক্সট সুইচ
CPU-কে এক thread থেকে আরেক thread-এ সরানো — আগেরটির register ও অবস্থা সংরক্ষণ করে পরেরটির অবস্থা ফিরিয়ে আনা; প্রতিবার কিছু সময় যায়, তাই হাজারো thread-এ এই খরচ বড় হয়যেখানে শিখবেন: পর্ব ৪০পর্ব ৪১পর্ব ৪২
Contiguous memoryকন্টিগুয়াস মেমরি
মেমরিতে ফাঁক ছাড়া একটির পর একটি পাশাপাশি সাজানো ঘর। এজন্য যেকোনো ঘরের ঠিকানা একটি গুণ আর যোগে সঙ্গে সঙ্গে বের করা যায়।যেখানে শিখবেন: পর্ব ১৩পর্ব ৩০
Continuationকন্টিনিউয়েশন
একটি চলমান কাজের থামানো অবস্থা — stack-এর ফ্রেম আর পরের কোন লাইন থেকে চলবে — যা সংরক্ষণ করে পরে ঠিক সেখান থেকে আবার চালানো যায়; virtual thread unmount হলে তার continuation heap-এ থাকেযেখানে শিখবেন: পর্ব ৪২
continueকন্টিনিউ
লুপের বর্তমান ঘোরার বাকি অংশ বাদ দিয়ে পরের ঘোরায় যাওয়ার keyword. for লুপে এরপর update চলে, তারপর শর্ত যাচাই হয়।যেখানে শিখবেন: পর্ব ১১
Continuous integration (CI)কন্টিনিউয়াস ইন্টিগ্রেশন
প্রতিটি কোড-বদল জমা দেওয়ার সাথে সাথে একটি সার্ভারে স্বয়ংক্রিয়ভাবে build আর সব টেস্ট চালানোর অভ্যাস, যাতে ভাঙা কোড মূল শাখায় না ঢোকেযেখানে শিখবেন: পর্ব ৪৬পর্ব ৪৭পর্ব ৫৫
Contravarianceকন্ট্রাভ্যারিয়েন্স
covariance-এর উল্টো দিকের সম্পর্ক: supertype-এর জিনিস নেওয়া জায়গা subtype-এর জায়গাতেও চলে; Java-তে ? super T দিয়ে এটি পাওয়া যায়, যা লেখার (consumer) জন্য উপযোগীযেখানে শিখবেন: পর্ব ২৮
Controllerকন্ট্রোলার
যে class HTTP request গ্রহণ করে, ইনপুট পড়ে, service ডাকে আর উত্তর ও status code ঠিক করে; Spring-এ @RestController লেখা classযেখানে শিখবেন: পর্ব ৫১
Convention over configurationকনভেনশন ওভার কনফিগারেশন
framework-এর নকশা-দর্শন: প্রতিটি সিদ্ধান্ত কনফিগারেশনে লিখতে না বলে যুক্তিসংগত ডিফল্ট রীতি ধরে নেওয়া, আর শুধু রীতির বাইরে গেলে লেখা; Ruby on Rails-এর মাধ্যমে জনপ্রিয়, Spring Boot-এর ভিত্তি।যেখানে শিখবেন: পর্ব ৪৫পর্ব ৪৬পর্ব ৫০
Copy constructorকপি কনস্ট্রাক্টর
একই class-এর আরেকটি object নিয়ে তার মান দিয়ে নতুন object বানানো constructor; Java-তে clone()-এর চেয়ে এটিই বেশি পছন্দের।যেখানে শিখবেন: পর্ব ১৬পর্ব ২৩
Copying collectorকপিয়িং কালেক্টর
যে GC জীবিত object-দের এক মেমরি-অংশ থেকে আরেক অংশে কপি করে পুরোনো অংশটি পুরো খালি করে দেয়; খরচ শুধু জীবিতদের সংখ্যার ওপর নির্ভর করেযেখানে শিখবেন: পর্ব ৪৪
CopyOnWriteArrayListকপি অন রাইট অ্যারেলিস্ট
java.util.concurrent-এর একটি thread-safe List, যা প্রতিটি লেখার সময় পুরো ভেতরের array নতুন করে কপি করে; তার iterator একটি পুরোনো snapshot দেখে, তাই কখনো ConcurrentModificationException দেয় নাযেখানে শিখবেন: পর্ব ৩০পর্ব ৪০
CORS (Cross-Origin Resource Sharing)কর্স
ব্রাউজারের নিয়ম, যাতে এক domain-এর পাতা অন্য domain-এর API ডাকতে পারে শুধু তখনই, যখন সেই API header দিয়ে অনুমতি দেয়।যেখানে শিখবেন: পর্ব ৫১পর্ব ৫৩
Cost factor (work factor)কস্ট ফ্যাক্টর
ধীর hash-এর কাজের পরিমাণ ঠিক করার সংখ্যা — bcrypt-এর cost বা PBKDF2-এর iteration. হার্ডওয়্যার দ্রুত হলে বাড়ানো হয়, যাতে প্রতিটি অনুমানের খরচ বেশি থাকে।যেখানে শিখবেন: পর্ব ৫৩
CountDownLatchকাউন্টডাউন ল্যাচ
একটি সংখ্যা দিয়ে শুরু হওয়া একবারের দরজা: countDown() সংখ্যা কমায়, await() সংখ্যা শূন্য না হওয়া পর্যন্ত অপেক্ষা করে; শূন্য হলে আর ফেরানো যায় নাযেখানে শিখবেন: পর্ব ৪০পর্ব ৪১
Couplingকাপলিং
দুটি অংশ একে অপরের ভেতরের খুঁটিনাটির ওপর কতটা নির্ভরশীল। কম coupling মানে একটিকে বদলালে অন্যটিকে কম বদলাতে হয়।যেখানে শিখবেন: পর্ব ৪৮পর্ব ৫০
Covariance (array)কোভ্যারিয়েন্স
উপ-টাইপের array-কে মূল টাইপের array হিসেবে মেনে নেওয়ার নিয়ম, যেমন String[] একটি Object[] — এজন্য ভুল টাইপ রাখলে চলার সময় ArrayStoreException আসে।যেখানে শিখবেন: পর্ব ১৩পর্ব ২৮
Covariant return typeকোভ্যারিয়েন্ট রিটার্ন টাইপ
override করার সময় return type হিসেবে parent-এর return type-এর একটি subclass দেওয়ার অনুমতি, যেমন Vehicle copy()-কে Bus copy() দিয়ে override করা; Java 5 থেকে চলেযেখানে শিখবেন: পর্ব ১৯পর্ব ৫৮
CPU cacheসিপিইউ ক্যাশ
প্রতিটি CPU core-এর কাছে থাকা ছোট, খুব দ্রুত মেমরি, যেখানে সাম্প্রতিক ডেটার কপি থাকে। এক core-এর লেখা অন্য core সাথে সাথে না-ও দেখতে পারে — দৃশ্যমানতার সমস্যার একটি উৎস।যেখানে শিখবেন: পর্ব ৪০
CPU-boundসিপিইউ বাউন্ড
যে কাজের গতি নির্ভর করে CPU-র হিসাবের ক্ষমতার ওপর, অপেক্ষার ওপর নয়; একসাথে সত্যিকারের গতি CPU core-এর সংখ্যা ছাড়াতে পারে নাযেখানে শিখবেন: পর্ব ৪১পর্ব ৪২
CRC cardসিআরসি কার্ড
Class, Responsibilities, Collaborators লেখা একটি ছোট কার্ড; কোড লেখার আগে দায়িত্ব ভাগ ও নকশা যাচাইয়ের জন্য ব্যবহার হয়যেখানে শিখবেন: পর্ব ০২পর্ব ১৫পর্ব ২২
Creational patternক্রিয়েশনাল প্যাটার্ন
object কীভাবে, কখন আর কোনটা তৈরি হবে, সেই সিদ্ধান্ত ব্যবহারকারীর কাছ থেকে লুকানোর pattern-পরিবার — যেমন Factory Method, Builder, Singleton.যেখানে শিখবেন: পর্ব ৪৮
Credential stuffingক্রেডেনশিয়াল স্টাফিং
অন্য কোনো সাইট থেকে ফাঁস হওয়া username-পাসওয়ার্ডের জোড়া দিয়ে আপনার সাইটে লগইনের চেষ্টা — কারণ মানুষ একই পাসওয়ার্ড অনেক জায়গায় ব্যবহার করেন।যেখানে শিখবেন: পর্ব ৫৩
Critical sectionক্রিটিক্যাল সেকশন
কোডের যে অংশ ভাগাভাগি করা ডেটা ছোঁয়, তাই এক সময়ে একটির বেশি thread সেখানে ঢুকতে দেওয়া যায় না। যত ছোট রাখা যায় তত ভালো।যেখানে শিখবেন: পর্ব ৪০
CRUDক্রাড
Create, Read, Update, Delete — ডেটা তৈরি, পড়া, বদলানো আর মোছার চারটি মূল কাজ; SQL-এ INSERT, SELECT, UPDATE, DELETE.যেখানে শিখবেন: পর্ব ৪৯পর্ব ৫১
Cryptographic hashক্রিপ্টোগ্রাফিক হ্যাশ
যেকোনো ডেটা থেকে নির্দিষ্ট দৈর্ঘ্যের “আঙুলের ছাপ” বানানোর এক দিকের ফাংশন, যেমন SHA-256; ছাপ থেকে মূল ডেটা ফেরত বের করা কার্যত অসম্ভব। দ্রুত বলে একা পাসওয়ার্ডের জন্য উপযুক্ত নয়।যেখানে শিখবেন: পর্ব ৫৩
CSPRNGসিএসপিআরএনজি
Cryptographically secure pseudo-random number generator — যার আগের আউটপুট দেখে পরেরটি অনুমান করা কার্যত অসম্ভব। Java-তে java.security.SecureRandom; salt, token আর key বানাতে এটাই লাগে।যেখানে শিখবেন: পর্ব ৫৩
CSRF (Cross-Site Request Forgery)সি-সার্ফ
ব্রাউজার cookie নিজে থেকে পাঠায় বলে অন্য সাইটের পাতা লগইন করা ব্যবহারকারীর নামে অবস্থা-বদলানো request পাঠাতে পারে — এই ঝুঁকি। প্রতিরক্ষা: CSRF token আর SameSite cookie.যেখানে শিখবেন: পর্ব ৫৩পর্ব ৫৭পর্ব ৫৮
CSV (Comma-Separated Values)সি-এস-ভি
সারণির ডেটা রাখার সরল text ফরম্যাট: প্রতি লাইনে একটি সারি, ঘরগুলো কমা দিয়ে আলাদা; Excel বা Google Sheets খুলতে আর সেভ করতে পারে। ঘরের ভেতরে কমা থাকলে উদ্ধৃতি-চিহ্ন লাগে।যেখানে শিখবেন: পর্ব ৩৭
curlকার্ল
terminal থেকে HTTP request পাঠানোর জনপ্রিয় কমান্ড-লাইন টুল; API চেষ্টা আর debug করতে কাজে লাগে।যেখানে শিখবেন: পর্ব ৫১
Custom exceptionকাস্টম এক্সেপশন
নিজের বানানো exception class, যেমন InsufficientBalanceException. Exception থেকে extend করলে checked, RuntimeException থেকে করলে unchecked হয়।যেখানে শিখবেন: পর্ব ২৯পর্ব ৫৮
CVE (Common Vulnerabilities and Exposures)সি-ভি-ই
প্রকাশিত নিরাপত্তা-দুর্বলতার আন্তর্জাতিক তালিকা, যেখানে প্রতিটি দুর্বলতা একটি নম্বর পায়, যেমন CVE-2015-4852. এই নম্বর দিয়ে সবাই একই সমস্যার কথা বলে।যেখানে শিখবেন: পর্ব ৩৯পর্ব ৪৬পর্ব ৫৩
CyclicBarrierসাইক্লিক ব্যারিয়ার
নির্দিষ্ট সংখ্যক thread-এর মিলনস্থল: সবাই await() না ডাকা পর্যন্ত কেউ এগোয় না, তারপর বাধা আবার শুরুতে ফেরে, তাই বারবার ব্যবহার করা যায়যেখানে শিখবেন: পর্ব ৪১

D

Daemon threadডেমন থ্রেড
পেছনের সহায়ক thread, যার জন্য JVM বন্ধ হওয়ার আগে অপেক্ষা করে না — শুধু daemon thread বাকি থাকলে প্রোগ্রাম শেষ হয়; virtual thread সবসময় daemonযেখানে শিখবেন: পর্ব ৪০পর্ব ৪১পর্ব ৪২
DAG (Directed Acyclic Graph)ড্যাগ
দিক আছে কিন্তু কোনো চক্র নেই এমন গ্রাফ; build tool task-এর নির্ভরতা এভাবে সাজিয়ে ঠিক করে কোনটা আগে, কোনটা পরে চলবে।যেখানে শিখবেন: পর্ব ৪৬
DAOডি-এ-ও
Data Access Object — একটি টেবিল বা জিনিসের জন্য ডেটাবেসের কাজ (SQL) এক class-এ আলাদা রাখার পুরোনো ও প্রচলিত pattern; Repository-র খুব কাছাকাছি ধারণা।যেখানে শিখবেন: পর্ব ৪৯
Data carrierডেটা ক্যারিয়ার
যে class-এর মূল কাজ কোনো আচরণ নয়, শুধু কয়েকটি মান একসাথে বেঁধে এক জায়গা থেকে আরেক জায়গায় নেওয়া — যেমন একটি লেনদেন, একটি বিন্দু বা একটি API উত্তর। Java-তে এর জন্য record তৈরি হয়েছে।যেখানে শিখবেন: পর্ব ২৫
Data-oriented programmingডেটা-ওরিয়েন্টেড প্রোগ্রামিং
ডেটাকে স্বচ্ছ ও অপরিবর্তনীয় রূপে মডেল করা, সম্ভাব্য সব রূপ টাইপ দিয়ে স্পষ্ট করা আর pattern matching দিয়ে প্রক্রিয়া করার নকশা-পদ্ধতি। Java-তে এর খুঁটি record, sealed type আর pattern matching.যেখানে শিখবেন: পর্ব ২৫পর্ব ২৬
Databaseডেটাবেস
অনেক ডেটা সংগঠিতভাবে রাখা, দ্রুত খোঁজা আর একসাথে অনেক ব্যবহারকারীর নিরাপদে লেখার জন্য আলাদা একটি সফটওয়্যার, সাধারণত একটি server. Java প্রোগ্রাম এর সাথে JDBC দিয়ে কথা বলে।যেখানে শিখবেন: পর্ব ৪৯
Database migrationডেটাবেস মাইগ্রেশন
schema-র বদলগুলো (নতুন টেবিল, কলাম) ক্রমিক ফাইলে লিখে git-এ রাখা আর টুল দিয়ে প্রতিটি পরিবেশে একই ক্রমে চালানো, যাতে সব ডেটাবেস একই সংস্করণে থাকে।যেখানে শিখবেন: পর্ব ৪৯পর্ব ৫২
Datagram (DatagramPacket)ডেটাগ্রাম
UDP-তে পাঠানো একটি স্বয়ংসম্পূর্ণ packet, নিজের গন্তব্যের ঠিকানাসহ; Java-তে DatagramPacket আর DatagramSocket দিয়ে পাঠানো ও গ্রহণ করা হয়।যেখানে শিখবেন: পর্ব ৪৩
DataSourceডেটা-সোর্স
javax.sql-এর interface, যা getConnection() দিয়ে Connection দেয়। এর পেছনে HikariCP-র মতো connection pool থাকতে পারে, ব্যবহারকারী কোড না বদলেই।যেখানে শিখবেন: পর্ব ৪৯
DateTimeFormatterডেট টাইম ফরম্যাটার
java.time-এর তারিখ-সময়কে লেখায় রূপ দেওয়া (format) আর লেখা থেকে তারিখ বানানোর (parse) immutable ও thread-safe যন্ত্র, যেমন ofPattern("dd/MM/uuuu")যেখানে শিখবেন: পর্ব ৩৮
DateTimeParseExceptionডেট টাইম পার্স এক্সেপশন
লেখা থেকে তারিখ-সময় parse করতে ব্যর্থ হলে আসা unchecked exception; বার্তায় থাকে কোন index-এ সমস্যা বা কোন তারিখ অবৈধ, যেমন Invalid date 'FEBRUARY 30'যেখানে শিখবেন: পর্ব ৩৮
ddl-autoডিডিএল অটো
spring.jpa.hibernate.ddl-auto সেটিং, যা ঠিক করে Hibernate অ্যাপ চালুর সময় টেবিল নিয়ে কী করবে: none, validate, update, create বা create-drop. production-এ সাধারণত validate বা none.যেখানে শিখবেন: পর্ব ৫২
Deadlockডেডলক
দুই বা বেশি thread একে অপরের ধরে রাখা তালার জন্য চিরকাল অপেক্ষা করে, কেউ এগোতে পারে না। প্রোগ্রাম কোনো error দেয় না, শুধু জমে থাকে।যেখানে শিখবেন: পর্ব ৪০পর্ব ৫৭পর্ব ৫৯
Declarationডিক্লারেশন
টাইপ আর নাম লিখে একটি ভ্যারিয়েবল তৈরি করা, যেমন int roll; এতে ঘর তৈরি হয়, কিন্তু মান বসানো জরুরি নয়।যেখানে শিখবেন: পর্ব ০৬
Declaration-site varianceডিক্লারেশন-সাইট ভ্যারিয়েন্স
টাইপ ঘোষণার সময়েই একবার variance লেখা, যেমন Kotlin-এর out T আর in T বা Scala-র +A; Java-তে বদলে প্রতিটি ব্যবহারের জায়গায় wildcard লিখতে হয় (use-site variance)যেখানে শিখবেন: পর্ব ২৮
Declarative programmingডিক্লারেটিভ প্রোগ্রামিং
কী ফল চাই সেটা বর্ণনা করা, কীভাবে ধাপে ধাপে পাওয়া যাবে সেটা নয় — SQL, HTML আর Java-র stream এই ধাঁচের; উল্টো ধাঁচ imperative, যেখানে লুপ আর ভ্যারিয়েবল দিয়ে প্রতিটি ধাপ নিজে লিখতে হয়যেখানে শিখবেন: পর্ব ৩৫
Decompositionডিকম্পোজিশন
বড় সমস্যাকে ছোট, আলাদাভাবে সমাধানযোগ্য টুকরোয় ভাঙাযেখানে শিখবেন: পর্ব ০২
Decorator patternডেকোরেটর প্যাটার্ন
একটি object-কে একই ধরনের আরেকটি object দিয়ে মুড়ে নতুন ক্ষমতা যোগ করার নকশা; java.io-তে BufferedReader একটি InputStreamReader-কে, সেটি System.in-কে মোড়ে।যেখানে শিখবেন: পর্ব ০৯পর্ব ১৯পর্ব ৩৭
Decrease-keyডিক্রিজ-কি
heap-এ ইতিমধ্যে থাকা একটি জিনিসের priority কমিয়ে তাকে সঠিক জায়গায় তুলে আনার কাজ। Java-র PriorityQueue-তে এই method নেই; বদলে নতুন মানসহ আবার offer করে পুরোনোটা poll-এর সময় বাদ দেওয়া হয়যেখানে শিখবেন: পর্ব ৩২
defaultডিফল্ট
switch-এর সেই অংশ, যা কোনো case না মিললে চলে। অপ্রত্যাশিত মান ধরার জন্য এটিই নিরাপত্তা জাল।যেখানে শিখবেন: পর্ব ১০পর্ব ২৬
Default constructorডিফল্ট কনস্ট্রাক্টর
class-এ একটিও constructor লেখা না থাকলে compiler যে argument-হীন, খালি constructor নিজে যোগ করে; নিজে যেকোনো constructor লিখলেই এটি আর থাকে না।যেখানে শিখবেন: পর্ব ১৫পর্ব ১৬পর্ব ১৯
default methodডিফল্ট মেথড
Java 8 থেকে interface-এ default keyword দিয়ে লেখা শরীরসহ method; যে class নিজে না লেখে সে এটি পায়, চাইলে override করে। পুরোনো কোড না ভেঙে interface-এ নতুন method যোগ করতে আনা হয়েছে।যেখানে শিখবেন: পর্ব ২১পর্ব ৩৪পর্ব ৫৮
Default valueডিফল্ট ভ্যালু
মান না দিলে যে মান আপনাআপনি বসে। Java-তে class-এর field আর নতুন array-এর ঘরে সংখ্যায় ০, boolean-এ false, char-এ শূন্য-মানের অক্ষর আর reference-এ null থাকে; local ভ্যারিয়েবল কোনো default value পায় না।যেখানে শিখবেন: পর্ব ০৬পর্ব ১৩পর্ব ১৫
Defense in depthডিফেন্স ইন ডেপথ
একটি পাহারার ওপর ভরসা না করে কয়েকটি স্বাধীন স্তর রাখা — URL-এর নিয়ম, method security, ownership check, টেস্ট — যাতে এক স্তরে ফাঁক থাকলেও অন্যটি রক্ষা করে।যেখানে শিখবেন: পর্ব ৫৩
Defensive copyডিফেন্সিভ কপি
mutable ডেটা (array, list) object-এ ঢোকার সময় আর বের হওয়ার সময় কপি করা, যাতে বাইরের কোড একই reference দিয়ে ভেতরের অবস্থা বদলাতে না পারে।যেখানে শিখবেন: পর্ব ১৭পর্ব ১৮পর্ব ২৫
Definite assignmentডেফিনিট অ্যাসাইনমেন্ট
Java-র নিয়ম: local ভ্যারিয়েবল পড়ার আগে প্রতিটি সম্ভাব্য পথে তাতে মান বসেছে, তা compiler-কে প্রমাণ করতে পারতে হবে। না পারলে error আসে: variable might not have been initialized.যেখানে শিখবেন: পর্ব ০৬
DelegatingFilterProxyডেলিগেটিং ফিল্টার প্রক্সি
Tomcat-এ বসানো একটি সাধারণ servlet filter, যা নিজে কিছু করে না — কাজটি Spring-এর ভেতরের একটি bean (FilterChainProxy)-এর কাছে পাঠায়। servlet কনটেইনার আর Spring-এর মাঝের সেতু।যেখানে শিখবেন: পর্ব ৫৩
Delimiterডিলিমিটার
যে অক্ষর বা নকশা দিয়ে লেখাকে টুকরো করা হয়; Scanner-এর ডিফল্ট delimiter হলো এক বা একাধিক whitespace.যেখানে শিখবেন: পর্ব ০৯
Denial of service (DoS)ডিনায়াল অব সার্ভিস
সার্ভারের সম্পদ (সংযোগ, মেমরি, CPU) ফুরিয়ে দিয়ে আসল ব্যবহারকারীদের সেবা বন্ধ করার আক্রমণ; যেমন খুব ধীরে byte পাঠিয়ে হাজারো সংযোগ খুলে রাখা।যেখানে শিখবেন: পর্ব ৪৩
Deny by defaultডিনাই বাই ডিফল্ট
স্পষ্ট অনুমতি না থাকলে উত্তর “না” — নিরাপত্তার নিরাপদ ডিফল্ট (fail-safe default). Spring Security starter যোগ করলেই সব endpoint বন্ধ করে দেয়।যেখানে শিখবেন: পর্ব ৫৩
Deoptimizationডি-অপ্টিমাইজেশন
JIT-এর কোনো অনুমান (যেমন একটি নির্দিষ্ট class-ই আসবে) ভুল প্রমাণিত হলে compile করা কোড বাতিল করে আবার interpreter-এ ফেরা; পরে নতুন তথ্য নিয়ে আবার compile হয়যেখানে শিখবেন: পর্ব ০৫পর্ব ২০
Dependencyডিপেন্ডেন্সি
যে বাইরের library ছাড়া আপনার প্রজেক্ট compile হয় না বা চলে না; build tool-এ তার groupId, artifactId আর version লিখে ঘোষণা করা হয়।যেখানে শিখবেন: পর্ব ৪৬
dependency injectionডিপেনডেন্সি ইনজেকশন
একটি object যে জিনিসের ওপর নির্ভর করে, তা নিজে new না করে বাইরে থেকে পাওয়া, সাধারণত constructor দিয়ে; এতে বদলানো আর টেস্টে নকল বসানো সহজ হয়।যেখানে শিখবেন: পর্ব ১৮পর্ব ২১পর্ব ৩৮
Dependency Inversion Principleডিপেনডেন্সি ইনভার্শন প্রিন্সিপল
SOLID-এর D: ওপরের স্তরের কোড নিচের স্তরের খুঁটিনাটির ওপর নির্ভর করবে না, দুটিই নির্ভর করবে একটি abstraction (যেমন interface)-এর ওপর।যেখানে শিখবেন: পর্ব ২১পর্ব ৪৮পর্ব ৫৫
Dependency mediation (nearest wins)ডিপেন্ডেন্সি মিডিয়েশন
একই library-র একাধিক version গাছে এলে একটি বেছে নেওয়ার নিয়ম; Maven নেয় মূলের সবচেয়ে কাছেরটি (সমান দূরত্বে আগে ঘোষিতটি), Gradle ডিফল্টে সবচেয়ে নতুনটি।যেখানে শিখবেন: পর্ব ৪৬
Dependency ruleডিপেন্ডেন্সি রুল
Clean/Hexagonal architecture-এর মূল নিয়ম: source code-এর dependency কেবল বাইরে থেকে ভেতরের দিকে যাবে; core কখনো adapter বা framework-কে চিনবে না।যেখানে শিখবেন: পর্ব ৫৫
Dependency scopeডিপেন্ডেন্সি স্কোপ
Maven-এ একটি dependency কোন classpath-এ যাবে তার নিয়ম: compile (সব জায়গায়), test (শুধু টেস্টে), provided (পরিবেশ দেবে), runtime (শুধু চলার সময়)।যেখানে শিখবেন: পর্ব ৪৬পর্ব ৫৭
dependencyManagementডিপেন্ডেন্সি ম্যানেজমেন্ট
pom.xml-এর একটি অংশ, যেখানে লেখা version সরাসরি বা transitive যেভাবেই library আসুক সেখানে প্রযোজ্য হয়; নিজে কোনো dependency যোগ করে না।যেখানে শিখবেন: পর্ব ৪৬
Deprecation (@Deprecated)ডেপ্রিকেশন
কোনো API-কে “এখনো আছে, কিন্তু আর ব্যবহার করবেন না” হিসেবে চিহ্নিত করা; Java 9 থেকে @Deprecated-এ since আর forRemoval দেওয়া যায়, আর ব্যবহার করলে compiler warning বা Note দেয়।যেখানে শিখবেন: পর্ব ৪৫
Deque (double-ended queue)ডেক
যে queue-এর সামনে আর পেছনে দুই মাথাতেই ঢোকানো ও বের করা যায়; Java 6 থেকে java.util.Deque interface. Queue আর stack দুই কাজেই ব্যবহার হয় (push, pop, peek সামনের মাথায় কাজ করে)যেখানে শিখবেন: পর্ব ৩২
Derived queryডিরাইভড কোয়েরি
Spring Data-তে method-এর নাম থেকে নিজে তৈরি হওয়া query, যেমন findByCategory মানে category field মিলিয়ে খোঁজা; নামে ভুল থাকলে অ্যাপ চালুর সময়েই errorযেখানে শিখবেন: পর্ব ৫১পর্ব ৫২
Deserializationডিসিরিয়ালাইজেশন
serialization-এর উল্টো কাজ: লেখা (যেমন JSON) বা byte পড়ে আবার মেমরিতে object বানানো। ফলের object আসলটির কপি, নতুন করে তৈরি।যেখানে শিখবেন: পর্ব ৩৯
Design patternডিজাইন প্যাটার্ন
বারবার দেখা দেওয়া নকশা-সমস্যার একটি পরীক্ষিত, নাম দেওয়া সমাধান; ১৯৯৪ সালের Gang of Four বইয়ে ২৩টি বর্ণনা আছে।যেখানে শিখবেন: পর্ব ২২পর্ব ৪৮পর্ব ৪৯
Destructorডেস্ট্রাক্টর
C++-এ object-এর জীবন শেষে নিশ্চিতভাবে চলা বিশেষ function (~ClassName); Java-তে destructor নেই, মেমরি ফেরত নেয় garbage collector.যেখানে শিখবেন: পর্ব ১৬
Detached entityডিট্যাচড এনটিটি
যে entity আগে managed ছিল কিন্তু তার persistence context বন্ধ হয়ে গেছে; এর বদল আর ডেটাবেসে যায় না, আর না-আনা lazy সম্পর্ক ছুঁলে LazyInitializationException হয়। merge দিয়ে আবার যুক্ত করা যায়।যেখানে শিখবেন: পর্ব ৫২
Devirtualizationডিভার্চুয়ালাইজেশন
JIT compiler যখন প্রমাণ বা অনুমান করে যে একটি virtual call-এর পেছনে কার্যত একটিই সংস্করণ আছে, তখন সেটিকে সাধারণ সরাসরি ডাক (এমনকি inline) বানিয়ে ফেলা।যেখানে শিখবেন: পর্ব ২০
DEX (Dalvik Executable)ডেক্স
Android-এর bytecode ফরম্যাট। অ্যাপ build করার সময় .class ফাইলগুলো d8 টুল দিয়ে .dex-এ রূপান্তরিত হয়, যা ফোনের ART চালায়যেখানে শিখবেন: পর্ব ০৫
DFS (Depth-First Search)ডিএফএস
graph-এ একটি পথ ধরে যত গভীরে যাওয়া যায় যাওয়া, আটকে গেলে পিছিয়ে অন্য পথ ধরার খোঁজ; recursion বা একটি stack দিয়ে লেখা হয়, সময় O(V + E)যেখানে শিখবেন: পর্ব ৫৪পর্ব ৫৯
Diamond operator (<>)ডায়মন্ড অপারেটর
Java 7 থেকে new ArrayList-এর পরে ফাঁকা কৌণিক বন্ধনী লিখলেই চলে; বাঁ দিকের ঘোষণা দেখে compiler type argument বসিয়ে নেয়যেখানে শিখবেন: পর্ব ২৮
diamond problemডায়মন্ড প্রবলেম
একটি class দুই পথে একই parent থেকে উত্তরাধিকার পেলে কোন সংস্করণের method চলবে আর parent-এর field কয় কপি থাকবে — সেই সংঘর্ষ। Java class-এ multiple inheritance বাদ দিয়ে এটি এড়ায়; দুটি interface-এর একই default method থাকলে class নিজে override করে X.super.m() দিয়ে বেছে নেয়।যেখানে শিখবেন: পর্ব ১৯পর্ব ২১পর্ব ৫৮
Digital signatureডিজিটাল সিগনেচার
private key দিয়ে বানানো আর public key দিয়ে যাচাই করা স্বাক্ষর (যেমন RS256, ES256); যাচাইকারী জাল স্বাক্ষর বানাতে পারে না, তাই অনেক service-এ সুবিধাজনক।যেখানে শিখবেন: পর্ব ৫৩
Dijkstra's algorithmডাইকস্ট্রার অ্যালগরিদম
রাস্তার দৈর্ঘ্য আলাদা (কিন্তু ঋণাত্মক নয়) এমন graph-এ এক জায়গা থেকে বাকি সব জায়গার সবচেয়ে ছোট পথ বের করার অ্যালগরিদম; বারবার সবচেয়ে কম দূরত্বের জায়গা বের করতে priority queue লাগে। Edsger Dijkstra, ১৯৫৯যেখানে শিখবেন: পর্ব ৩২পর্ব ৫৪
Direct memoryডিরেক্ট মেমরি
ByteBuffer.allocateDirect দিয়ে নেওয়া heap-এর বাইরের মেমরি, যা NIO দ্রুত I/O-র জন্য ব্যবহার করে। সীমা -XX:MaxDirectMemorySize দিয়ে ঠিক হয়যেখানে শিখবেন: পর্ব ৪৪
DirectoryNotEmptyExceptionডিরেক্টরি নট এম্পটি এক্সেপশন
ভেতরে ফাইল আছে এমন ফোল্ডার Files.delete দিয়ে মুছতে গেলে যে IOException আসে; আগে ভেতরের সব মুছতে হয়।যেখানে শিখবেন: পর্ব ৩৭
DirectoryStreamডিরেক্টরি স্ট্রিম
Files.newDirectoryStream দেওয়া একটি ফোল্ডারের সরাসরি ভেতরের জিনিসগুলোর তালিকা, যা for-each দিয়ে ঘোরা যায় আর glob দিয়ে ছাঁকা যায়; ব্যবহার শেষে close করতে হয়।যেখানে শিখবেন: পর্ব ৩৭
Dirty checkingডার্টি চেকিং
flush-এর সময় প্রতিটি managed entity-র বর্তমান মান আনার সময়ের কপির সাথে মিলিয়ে দেখা; যেটা বদলেছে, তার জন্য ORM নিজে UPDATE চালায় — তাই save() ডাকতে হয় না।যেখানে শিখবেন: পর্ব ৫২পর্ব ৫৮
DispatcherServletডিসপ্যাচার সার্ভলেট
Spring MVC-র প্রধান প্রবেশদ্বার (front controller): সব HTTP request এখানে আসে, আর এটি ঠিক controller method খুঁজে ডাকে, exception হলে advice-এ পাঠায়।যেখানে শিখবেন: পর্ব ৫১পর্ব ৫৩
Distractorডিসট্র্যাক্টর
MCQ-এর ইচ্ছাকৃত বিভ্রান্তিকর ভুল অপশন, যা কোনো প্রচলিত ভুল ধারণা থেকে বানানো হয় আর দেখতে সঠিক উত্তরের মতো মনে হয়।যেখানে শিখবেন: পর্ব ৫৭
DNS (Domain Name System)ডি-এন-এস
ইন্টারনেটের ফোনবুক: abcltech.com-এর মতো নাম থেকে IP ঠিকানা খুঁজে দেয়; পৃথিবীজুড়ে ছড়ানো অনেক সার্ভারে ভাগ করে রাখা।যেখানে শিখবেন: পর্ব ৪৩
do-while loopডু-হোয়াইল লুপ
do { ... } while (condition); গঠনের লুপ — আগে body চলে, পরে শর্ত যাচাই হয়। তাই body অন্তত একবার চলে; মেনু দেখানোর মতো কাজে উপযোগী।যেখানে শিখবেন: পর্ব ১১
Dockerডকার
অ্যাপ আর তার চলার পরিবেশ (যেমন Java runtime) একটি container image-এ ভরে যেকোনো সার্ভারে একইভাবে চালানোর টুল।যেখানে শিখবেন: পর্ব ৫১পর্ব ৫৫
Domain modelডোমেইন মডেল
একটি সমস্যার দুনিয়ার মূল ধারণাগুলো — কোন কোন class, তাদের দায়িত্ব আর সম্পর্ক — কোডের আগে লেখা নকশাযেখানে শিখবেন: পর্ব ০২পর্ব ৫৫
Domain serviceডোমেইন সার্ভিস
যে class কয়েকটি domain object মিলিয়ে একটি ব্যবসায়িক কাজ চালায় (যেমন OrderService-এর অর্ডার দেওয়া), আর বাইরের সাথে কথা বলে শুধু port দিয়ে।যেখানে শিখবেন: পর্ব ৫৫
Dot operator (.)ডট অপারেটর
reference ধরে object-এর ভেতরের field বা method-এ পৌঁছানোর চিহ্ন, যেমন acc.balance বা acc.deposit(500); reference null হলে NullPointerException হয়যেখানে শিখবেন: পর্ব ১৫
Doubly linked listডাবলি লিংকড লিস্ট
যে তালিকার প্রতিটি node তার পরের আর আগের দুই node-এরই ঠিকানা রাখে, তাই দুই দিকেই হাঁটা যায়; Java-র LinkedList এভাবে তৈরিযেখানে শিখবেন: পর্ব ৩০পর্ব ৫৮
Downcastingডাউনকাস্টিং
Superclass টাইপের reference-কে subclass টাইপে ফেরানো, যেমন (SavingsAccount) a. এর জন্য cast লিখতে হয়, আর object আসলে সেই টাইপের না হলে চলার সময় ClassCastException হয়।যেখানে শিখবেন: পর্ব ২০
Downstream collectorডাউনস্ট্রিম কালেক্টর
groupingBy বা partitioningBy-এর ভেতরে দেওয়া দ্বিতীয় collector, যা প্রতিটি দলের উপাদানগুলো নিয়ে কী করতে হবে তা ঠিক করে — counting, summingInt, averagingDouble, mapping ইত্যাদি; না দিলে প্রতিটি দলে একটি List হয়যেখানে শিখবেন: পর্ব ৩৫পর্ব ৫৫পর্ব ৫৮
DriverManagerড্রাইভার-ম্যানেজার
java.sql-এর class, যা JDBC URL দেখে মানানসই driver বেছে প্রতিবার একটি নতুন Connection খোলে। ছোট প্রোগ্রামে চলে; বাস্তব অ্যাপে DataSource বেশি ব্যবহৃত।যেখানে শিখবেন: পর্ব ৪৯
DRY (Don't Repeat Yourself)ড্রাই
একই জ্ঞান বা নিয়ম কোডে একটিমাত্র জায়গায় রাখার নীতি, যাতে বদলাতে হলে এক জায়গাতেই বদলাতে হয়। দেখতে একই রকম কিন্তু আলাদা অর্থের কোড জোর করে জোড়া দেওয়া এর লক্ষ্য নয়।যেখানে শিখবেন: পর্ব ৪৮
Dry runড্রাই রান
কোড কম্পিউটারে না চালিয়ে কাগজে লাইন ধরে ধরে চালানো এবং প্রতিটি ভ্যারিয়েবলের মান লিখে রাখাযেখানে শিখবেন: পর্ব ০২পর্ব ৫৬পর্ব ৫৯
DSL (Domain-Specific Language)ডি-এস-এল
একটি নির্দিষ্ট কাজের জন্য বানানো ছোট ভাষা বা লেখার ধরন; Gradle-এর build ফাইল Kotlin বা Groovy-র ওপর তৈরি এমন একটি DSL.যেখানে শিখবেন: পর্ব ৪৬
DST (Daylight Saving Time)ডেলাইট সেভিং টাইম
কিছু দেশে গ্রীষ্মে ঘড়ি এক ঘণ্টা এগিয়ে আর পরে আবার পিছিয়ে দেওয়ার নিয়ম; সেই দুই দিনে একটি দিন ২৩ বা ২৫ ঘণ্টার হয়। বাংলাদেশে বর্তমানে DST নেইযেখানে শিখবেন: পর্ব ৩৮
DTO (Data Transfer Object)ডি-টি-ও
স্তর বা প্রোগ্রামের মধ্যে ডেটা বহনের জন্য বানানো ছোট object — শুধু যা পাঠানো বা নেওয়ার কথা। Java-তে প্রায়ই record দিয়ে লেখা হয়।যেখানে শিখবেন: পর্ব ৫১
Dual-Pivot Quicksortডুয়াল-পিভট কুইকসর্ট
দুটি pivot দিয়ে array-কে তিন ভাগে ভাগ করা quicksort; Java 7 থেকে int[], double[]-এর মতো primitive array-এর Arrays.sort এটা ব্যবহার করে। এটা stable নয়, কিন্তু primitive-এর ক্ষেত্রে তাতে কোনো ক্ষতি নেইযেখানে শিখবেন: পর্ব ৩৩পর্ব ৫৪
Dummyডামি
শুধু parameter বা constructor ভরানোর জন্য দেওয়া test double, যা টেস্টের সময় কখনো ব্যবহার হয় নাযেখানে শিখবেন: পর্ব ৪৭
Durationডিউরেশন
সেকেন্ড আর ন্যানোসেকেন্ডে মাপা সময়ের ব্যবধান, যেমন PT2H15M; ঘড়ির ব্যবধান — পরীক্ষার সময়, timeout বা দুটি Instant-এর মধ্যের সময়যেখানে শিখবেন: পর্ব ৩৮পর্ব ৫৭
Dynamic arrayডায়নামিক অ্যারে
যে array-ভিত্তিক তালিকা ভরে গেলে নিজেই একটি বড় array বানিয়ে পুরোনো মান কপি করে নেয়; Java-র ArrayList এর উদাহরণ।যেখানে শিখবেন: পর্ব ২২পর্ব ৩০পর্ব ৫৮
Dynamic dispatchডাইনামিক ডিসপ্যাচ
কোন method-এর কোন সংস্করণ চলবে, তা compile-এর সময় নয়, চলার সময় আসল object-এর টাইপ দেখে ঠিক করা। একে late binding বা dynamic binding-ও বলে।যেখানে শিখবেন: পর্ব ২০পর্ব ২২পর্ব ৫৬
Dynamic programming (DP)ডাইনামিক প্রোগ্রামিং
বড় সমস্যার উত্তর ছোট উপ-সমস্যার উত্তর দিয়ে গড়া, আর প্রতিটি উপ-সমস্যা একবারই সমাধান করে মনে রাখার পদ্ধতি; recursion আর memo দিয়ে (top-down) বা লুপে টেবিল ভরে (bottom-up) লেখা যায়যেখানে শিখবেন: পর্ব ৫৪পর্ব ৫৯
Dynamic proxyডায়নামিক প্রক্সি
java.lang.reflect.Proxy দিয়ে চলার সময় তৈরি করা একটি object, যা এক বা একাধিক interface implement করে আর প্রতিটি method ডাক একটি InvocationHandler-এ পাঠায়; লগিং, transaction-এর মতো কাজে ব্যবহৃত।যেখানে শিখবেন: পর্ব ৪৫পর্ব ৪৮পর্ব ৫২
Dynamic typingডাইনামিক টাইপিং
টাইপ থাকে মানের সাথে, ভ্যারিয়েবলের নামের সাথে নয়; টাইপ যাচাই হয় প্রোগ্রাম চলার সময়। Python ও JavaScript এই ধরনের।যেখানে শিখবেন: পর্ব ০১পর্ব ০৬

E

Eager evaluationইগার ইভ্যালুয়েশন
দরকার হোক বা না হোক, আগেভাগেই হিসাব করে ফেলা; Java-তে method ডাকার আগে সব argument-এর মান বের হয়, তাই orElse(load()) লিখলে Optional-এ মান থাকলেও load() চলেযেখানে শিখবেন: পর্ব ৩৬
Eager loadingইগার লোডিং
মালিক entity আনার সাথে সাথেই সম্পর্কিত entity-ও আনা — দরকার থাকুক বা না থাকুক। query-ভেদে বদলানো যায় না বলে সাধারণত এড়িয়ে চলার পরামর্শ দেওয়া হয়।যেখানে শিখবেন: পর্ব ৫২
Eden spaceইডেন স্পেস
Young generation-এর যে অংশে new দিয়ে তৈরি প্রায় সব object প্রথম জন্মায়। ভরে গেলে minor GC হয়যেখানে শিখবেন: পর্ব ৪৪
Edge caseএজ কেস
সীমার কাছের বা অস্বাভাবিক ইনপুট — শূন্য, ঋণাত্মক, খুব বড় মান, একই অনুরোধ দুবার — যেখানে কোড সবচেয়ে বেশি ভাঙেযেখানে শিখবেন: পর্ব ০২পর্ব ১০পর্ব ২২
Effectively finalইফেক্টিভলি ফাইনাল
final লেখা নেই, কিন্তু ঘোষণার পর আর কখনো নতুন মান বসানো হয়নি এমন local variable; Java 8 থেকে lambda আর anonymous class এমন ভ্যারিয়েবল ব্যবহার করতে পারে।যেখানে শিখবেন: পর্ব ১৮পর্ব ২৭পর্ব ৩৪
Elimination methodইলিমিনেশন মেথড
উত্তর বাছাইয়ের কৌশল: সরাসরি সঠিকটি না খুঁজে প্রতিটি অপশনের পেছনের নিয়ম যাচাই করে ভুলগুলো একে একে বাদ দেওয়া।যেখানে শিখবেন: পর্ব ৫৭
else if chainএলস ইফ চেইন
একের পর এক শর্তের সারি; ওপর থেকে যাচাই শুরু হয়, আর যে শর্ত প্রথম সত্য হয় শুধু তার block চলে — বাকিগুলো আর যাচাই হয় না।যেখানে শিখবেন: পর্ব ১০
Embedded serverএমবেডেড সার্ভার
Tomcat, Jetty বা Undertow-এর মতো web সার্ভার আলাদা প্রোগ্রাম হিসেবে নয়, অ্যাপের ভেতরে একটি লাইব্রেরি হিসেবে চালু হওয়া; Spring Boot-এ ডিফল্ট Tomcat.যেখানে শিখবেন: পর্ব ৫০পর্ব ৫১
Encapsulationএনক্যাপসুলেশন
ডেটা আর সেই ডেটার নিয়ম একই class-এ রাখা এবং বাইরের কোডকে সরাসরি ডেটা বদলাতে না দেওয়া; Java-তে মূলত private দিয়ে করা হয়যেখানে শিখবেন: পর্ব ০২পর্ব ১৭পর্ব ২২
Encapsulation (networking)এনক্যাপসুলেশন
পাঠানোর সময় প্রতিটি নেটওয়ার্ক স্তর নিজের header ডেটার সামনে জুড়ে দেয়, আর গ্রহণের সময় উল্টো ক্রমে খোলে; OOP-এর encapsulation থেকে আলাদা ধারণা।যেখানে শিখবেন: পর্ব ৪৩
Enclosing instance (Outer.this)এনক্লোজিং ইনস্ট্যান্স
যে বাইরের object-এর সাথে একটি inner class-এর object বাঁধা থাকে। Inner class-এর কোডে তাকে Outer.this লিখে পাওয়া যায়; compiler এর জন্য একটি লুকানো field (this$0) রাখে।যেখানে শিখবেন: পর্ব ২৭পর্ব ৪৪
End-to-end testএন্ড-টু-এন্ড টেস্ট
পুরো অ্যাপকে ব্যবহারকারীর মতো করে — UI বা API দিয়ে — শুরু থেকে শেষ পর্যন্ত চালিয়ে যাচাই; সবচেয়ে বাস্তব, কিন্তু ধীর আর ভঙ্গুরযেখানে শিখবেন: পর্ব ৪৭
Endpointএন্ডপয়েন্ট
API-র একটি নির্দিষ্ট দরজা: একটি HTTP method আর একটি পথের জোড়া, যেমন GET /api/v1/products/{id}যেখানে শিখবেন: পর্ব ৫১
Entity (JPA)এনটিটি
ডেটাবেস টেবিলের সাথে মেলানো Java class, @Entity দিয়ে চিহ্নিত; এর প্রতিটি object টেবিলের একটি সারি। এতে ভেতরের বা গোপন field থাকতে পারে, তাই সরাসরি বাইরে পাঠানো হয় না।যেখানে শিখবেন: পর্ব ৫১পর্ব ৫২
Entity graph (@EntityGraph)এনটিটি গ্রাফ
কোন কোন সম্পর্ক একটি query-তে একসাথে আনতে হবে, তার বর্ণনা (JPA 2.1 থেকে)। Spring Data-তে repository method-এ @EntityGraph(attributePaths = ...) লিখে ব্যবহার হয়।যেখানে শিখবেন: পর্ব ৫২
Entity lifecycleএনটিটি লাইফসাইকেল
persistence context-এর সাপেক্ষে একটি entity object-এর চারটি অবস্থা: transient (নতুন, খাতায় নেই), managed (নজরে আছে), detached (context বন্ধ, নজরের বাইরে) আর removed (মোছার জন্য চিহ্নিত)।যেখানে শিখবেন: পর্ব ৫২
EntityManagerএনটিটি ম্যানেজার
JPA-র মূল interface, যা একটি persistence context চালায়: persist (নতুন রাখা), find (আনা), merge (detached-কে যুক্ত করা), remove (মোছা), flush আর JPQL query তৈরি।যেখানে শিখবেন: পর্ব ৫২
Entry pointএন্ট্রি পয়েন্ট
প্রোগ্রাম চালু হলে যেখান থেকে কাজ শুরু হয় — Java-তে প্রচলিতভাবে public static void main(String[] args) method.যেখানে শিখবেন: পর্ব ০৪
enumইনাম
নির্দিষ্ট কয়েকটি নামযুক্ত মানের একটি বিশেষ টাইপ — যেমন ADULT, STUDENT, CHILD নিয়ে বানানো Passenger টাইপ। মানগুলো আগে থেকে জানা থাকে বলে compiler switch-এ সব case আছে কি না যাচাই করতে পারে।যেখানে শিখবেন: পর্ব ১০পর্ব ১৮পর্ব ২১
Enum constantইনাম কনস্ট্যান্ট
enum-এর ভেতরে ঘোষিত প্রতিটি নাম, যেমন PENDING বা PAID; প্রতিটি আসলে সেই enum টাইপের একটি public static final object, পুরো প্রোগ্রামে একটিই।যেখানে শিখবেন: পর্ব ২৪
EnumMapইনামম্যাপ
যার key একটি enum এমন Map; ভেতরে ordinal দিয়ে index করা একটি array, তাই HashMap-এর চেয়ে দ্রুত, আর key সবসময় ঘোষণার ক্রমে সাজানো থাকে।যেখানে শিখবেন: পর্ব ২৪পর্ব ৩১
EnumSetইনামসেট
শুধু একটি enum-এর মান রাখার Set; ভেতরে প্রতিটি constant-এর জন্য একটি bit, তাই খুব দ্রুত আর কম জায়গা নেয়, আর উপাদান সবসময় ঘোষণার ক্রমে আসে।যেখানে শিখবেন: পর্ব ২৪
Environment variableএনভায়রনমেন্ট ভ্যারিয়েবল
অপারেটিং সিস্টেমে রাখা নাম-মানের জোড়া, যা সব প্রোগ্রাম পড়তে পারে, যেমন PATH বা JAVA_HOME. বদলালে নতুন খোলা terminal-ই কেবল নতুন মান দেখে।যেখানে শিখবেন: পর্ব ০৩পর্ব ৪৯পর্ব ৫০
Ephemeral portএফেমেরাল পোর্ট
অস্থায়ী port, যা OS নিজে একটি খালি সংখ্যা থেকে বেছে দেয় — client-এর দিকে, বা Java-তে port 0 চাইলে; সংখ্যাটি প্রতিবার আলাদা হতে পারে।যেখানে শিখবেন: পর্ব ৪৩
equals contractইকুয়ালস কন্ট্র্যাক্ট
Object.equals-এর Javadoc-এ লেখা পাঁচটি শর্ত — reflexive, symmetric, transitive, consistent আর null-এর সাথে false; override করা equals এগুলো না মানলে collection ভুল আচরণ করেযেখানে শিখবেন: পর্ব ২৩পর্ব ৫৬পর্ব ৫৭
equals()ইকুয়ালস
দুটি object-এর বিষয়বস্তু সমান কি না যাচাই করার method; String, Integer-এর মতো class এটি বিষয়বস্তু মেলানোর জন্য লিখে রেখেছেযেখানে শিখবেন: পর্ব ০৭পর্ব ০৮পর্ব ১০
Error (java.lang.Error)এরর ক্লাস
Throwable-এর যে শাখা JVM-এর গুরুতর সমস্যা বোঝায়, যেমন OutOfMemoryError বা StackOverflowError. সাধারণ প্রোগ্রাম এগুলো ধরে সামলানোর চেষ্টা করে না।যেখানে শিখবেন: পর্ব ২৯
Escape analysisএস্কেপ অ্যানালাইসিস
JIT compiler-এর একটি বিশ্লেষণ, যা দেখে কোনো object তৈরি হওয়া method-এর বাইরে যায় কি না; না গেলে object না বানিয়ে তার field-গুলো local মানে রাখতে পারে, ফলে heap ও GC-র খরচ কমেযেখানে শিখবেন: পর্ব ১৫পর্ব ৩৬পর্ব ৪৪
Escape sequenceএস্কেপ সিকোয়েন্স
backslash দিয়ে শুরু দুই অক্ষরের সংকেত, যা String-এর ভেতরে একটি বিশেষ অক্ষর বোঝায় — যেমন \n নতুন লাইন, \t tab, \" কোট চিহ্ন, \\ একটি backslash.যেখানে শিখবেন: পর্ব ০৪পর্ব ১৪পর্ব ৩৯
Evaluation orderইভ্যালুয়েশন অর্ডার
operand আর argument কোন ক্রমে হিসাব হবে; Java-তে সবসময় বাঁ থেকে ডানে (JLS §15.7), C-তে বেশিরভাগ ক্ষেত্রে অনির্দিষ্টযেখানে শিখবেন: পর্ব ০৭
Event listenerইভেন্ট লিসেনার
এমন একটি object, যা কোনো ঘটনা (বোতাম চাপা, মাউস নড়া, ডেটা আসা) ঘটলে ডাক পায়; Swing-এর ActionListener বা Android-এর OnClickListener এর উদাহরণ।যেখানে শিখবেন: পর্ব ২৭পর্ব ৪৪পর্ব ৪৮
Event loopইভেন্ট লুপ
একটি thread বারবার ঘটনা (নতুন ডেটা, নতুন সংযোগ) সংগ্রহ করে প্রতিটির handler চালায় — এই নকশা; অল্প thread-এ অনেক সংযোগ, কিন্তু ভেতরে ব্লকিং ডাক দিলে সব থেমে যায়।যেখানে শিখবেন: পর্ব ৪৩
Eventual consistencyইভেনচুয়াল কনসিস্টেন্সি
ছড়ানো ডেটাবেসের একটি নিশ্চয়তা: নতুন লেখা সঙ্গে সঙ্গে সব কপিতে না পৌঁছালেও, নতুন বদল না এলে কিছুক্ষণ পর সব কপি একই মানে মিলবে।যেখানে শিখবেন: পর্ব ৪৯
Exceptionএক্সেপশন
প্রোগ্রাম চলার সময় ঘটা অস্বাভাবিক ঘটনার বার্তা-object, যেমন শূন্য দিয়ে ভাগে ArithmeticException. কেউ না সামলালে প্রোগ্রাম থেমে গিয়ে stack trace দেখায়।যেখানে শিখবেন: পর্ব ০৪পর্ব ০৮পর্ব ০৯
Exception chainingএক্সেপশন চেইনিং
নতুন exception বানানোর সময় আসল কারণটিকে cause হিসেবে ভেতরে রেখে দেওয়া, যেমন new X("msg", e). stack trace-এ তখন Caused by অংশে আসল কারণও দেখা যায়।যেখানে শিখবেন: পর্ব ২৯পর্ব ৪৯
Executable jar (fat jar)এক্সিকিউটেবল জার
নিজের কোড, সব লাইব্রেরি আর embedded server একটি jar ফাইলে, যা শুধু java -jar দিয়েই চালানো যায়; আলাদা সার্ভার ইনস্টল লাগে না।যেখানে শিখবেন: পর্ব ৫০পর্ব ৫১
ExecutionExceptionএক্সিকিউশন এক্সেপশন
Future.get()-এর checked exception: কাজটি চলার সময় যে exception ছুড়েছিল, তাকে মুড়ে আনে; আসল কারণ পাওয়া যায় getCause()-এযেখানে শিখবেন: পর্ব ৪১
Executorএক্সিকিউটর
java.util.concurrent-এর সবচেয়ে ছোট interface, একটিমাত্র method execute(Runnable); কাজটি কোন thread-এ কখন চলবে, সেই সিদ্ধান্ত কাজ জমা দেওয়ার কোড থেকে আলাদা করেযেখানে শিখবেন: পর্ব ৪১
Executors (utility class)এক্সিকিউটরস ক্লাস
তৈরি করা pool দেওয়ার static factory method-এর class: newFixedThreadPool, newSingleThreadExecutor, newCachedThreadPool, newScheduledThreadPool, newVirtualThreadPerTaskExecutorযেখানে শিখবেন: পর্ব ৪১
ExecutorServiceএক্সিকিউটর সার্ভিস
java.util.concurrent-এর interface, যাকে কাজ (Runnable বা Callable) জমা দিলে সে নিজের thread-এ চালায় আর ফলের জন্য একটি Future দেয়; Executors class-এর factory method দিয়ে তৈরি হয়। Java 19 থেকে AutoCloseableযেখানে শিখবেন: পর্ব ৪১পর্ব ৪২পর্ব ৫৭
Exhaustivenessএগজস্টিভনেস
switch সব সম্ভাব্য মান ঢেকেছে কি না, সেই নিয়ম। switch expression-এ (আর pattern ব্যবহার করা switch-এ) compiler এটি বাধ্যতামূলক করে; না হলে compile error দেয়।যেখানে শিখবেন: পর্ব ১০পর্ব ২৪পর্ব ২৬
Exponential backoffএক্সপোনেনশিয়াল ব্যাকঅফ
ব্যর্থ অনুরোধ আবার চেষ্টার আগে অপেক্ষা প্রতিবার দ্বিগুণ (বা কয়েক গুণ) করা, একটি সর্বোচ্চ সীমা আর সর্বোচ্চ চেষ্টার সংখ্যাসহ; ব্যস্ত সার্ভারকে সেরে ওঠার সময় দেয়।যেখানে শিখবেন: পর্ব ৪৩
Expressionএক্সপ্রেশন
মান, ভ্যারিয়েবল, অপারেটর আর method কল মিলে তৈরি অংশ, যা হিসাব করলে একটি মান দেয়; প্রতিটি expression-এর একটি টাইপ থাকেযেখানে শিখবেন: পর্ব ০৭পর্ব ১০
Expression Problemএক্সপ্রেশন প্রবলেম
Philip Wadler ১৯৯৮ সালে নাম দেওয়া একটি নকশা-সমস্যা: নতুন টাইপ যোগ করা আর নতুন operation যোগ করা — দুটোই পুরোনো কোড না বদলে, টাইপ-নিরাপদভাবে করা কঠিন।যেখানে শিখবেন: পর্ব ২০পর্ব ২৬
extendsএক্সটেন্ডস
Java-র keyword, যা দিয়ে বলা হয় একটি class আরেকটি class-এর subclass; একটি class একটিমাত্র class-কেই extends করতে পারেযেখানে শিখবেন: পর্ব ১৯
External iterationএক্সটার্নাল ইটারেশন
লুপ চালানোর দায়িত্ব আপনার কোডের হাতে — for, for-each বা Iterator দিয়ে আপনি নিজে পরের উপাদান চান, আর কখন থামবেন তা নিজে ঠিক করেনযেখানে শিখবেন: পর্ব ৩৫
Extract Methodএক্সট্র্যাক্ট মেথড
একটি লম্বা method-এর একটি অংশকে নামওয়ালা নতুন method-এ সরিয়ে নেওয়ার refactoring, যাতে মূল method পড়তে সূচিপত্রের মতো লাগে।যেখানে শিখবেন: পর্ব ৪৮

F

Facade patternফাসাড প্যাটার্ন
কয়েকটি জটিল subsystem-এর সামনে একটি সরল class, যার কয়েকটি method পুরো কাজ ঠিক ক্রমে করে দেয় — যেমন একটি CheckoutService.যেখানে শিখবেন: পর্ব ৪৮
Factory Method patternফ্যাক্টরি মেথড প্যাটার্ন
parent class একটি overridable method দিয়ে object বানায়, আর কোন concrete class-এর object হবে তা subclass ঠিক করে। GoF-এর creational pattern; static factory method থেকে আলাদা।যেখানে শিখবেন: পর্ব ৪৮
Fail-fastফেইল-ফাস্ট
ভুল ধরা পড়ামাত্র সেখানেই থেমে স্পষ্ট error দেওয়ার নীতি, যাতে ভুল মান চুপচাপ প্রোগ্রামের গভীরে ছড়িয়ে না পড়ে।যেখানে শিখবেন: পর্ব ১৬পর্ব ২৯পর্ব ৩০
Fakeফেক
interface-এর সত্যিকারের কিন্তু সরল implementation, যেমন SMS পাঠানোর বদলে List-এ জমা রাখা বা ডেটাবেসের বদলে Map; টেস্ট পরে তার অবস্থা দেখে যাচাই করেযেখানে শিখবেন: পর্ব ৪৭পর্ব ৫৫
Fall-throughফল-থ্রু
পুরোনো colon-রূপের switch-এ break না থাকলে একটি case-এর কাজ শেষে পরের case-এর কোডও চলতে থাকা। কখনো ইচ্ছাকৃত, কিন্তু বেশিরভাগ সময় বাগ।যেখানে শিখবেন: পর্ব ১০পর্ব ৫৭
Fan-out / fan-inফ্যান-আউট ফ্যান-ইন
একটি কাজকে কয়েকটি স্বাধীন কলে একসাথে ছড়িয়ে দেওয়া (fan-out), তারপর সব ফল এক জায়গায় জোড়া দেওয়া (fan-in); মোট সময় হয় ধীরতম কলের সমানযেখানে শিখবেন: পর্ব ৪১
Fat JAR (uber JAR)ফ্যাট জার
নিজের class-এর সাথে সব runtime dependency একটি JAR-এ ভরা প্রোগ্রাম, যা শুধু java -jar দিয়ে চালানো যায়; Maven Shade বা Gradle Shadow plugin দিয়ে বানানো হয়, আর Spring Boot-এ spring-boot-maven-plugin-ও এটি বানায়।যেখানে শিখবেন: পর্ব ৪৬পর্ব ৫৫
Feature envyফিচার এনভি
যে method নিজের class-এর চেয়ে অন্য class-এর ডেটা ও getter বেশি ব্যবহার করে; সাধারণ ওষুধ হলো method-টিকে সেই class-এ সরানো।যেখানে শিখবেন: পর্ব ৪৮
Fetch typeফেচ টাইপ
সম্পর্কিত entity কখন আনা হবে: LAZY (দরকার পড়লে) না EAGER (মালিকের সাথেই)। JPA-র ডিফল্টে @ManyToOne ও @OneToOne EAGER, @OneToMany ও @ManyToMany LAZY.যেখানে শিখবেন: পর্ব ৫২পর্ব ৫৭
Fieldফিল্ড
class-এর ভেতরে ঘোষণা করা ভ্যারিয়েবল, যেখানে প্রতিটি object নিজের তথ্য রাখে। যেমন long balanceযেখানে শিখবেন: পর্ব ০২পর্ব ০৬পর্ব ১৫
Field hidingফিল্ড হাইডিং
Subclass-এ superclass-এর মতো একই নামের field ঘোষণা করা। এটি override নয় — কোন field পড়া হবে তা ঠিক করে ভ্যারিয়েবলের static type, তাই এড়িয়ে চলাই ভালো।যেখানে শিখবেন: পর্ব ২০পর্ব ৫৬পর্ব ৫৮
Field injectionফিল্ড ইনজেকশন
@Autowired দিয়ে reflection-এর মাধ্যমে সরাসরি private field-এ নির্ভরতা বসানো; field final হয় না, নির্ভরতা লুকানো থাকে আর Spring ছাড়া টেস্টে field null থাকে।যেখানে শিখবেন: পর্ব ৫০
FIFO (First In, First Out)ফিফো
যে আগে ঢুকেছে সে আগে বের হবে — ব্যাংকের টোকেন লাইনের নিয়ম। Queue এই নিয়মে চলেযেখানে শিখবেন: পর্ব ৩২
File attributesফাইল অ্যাট্রিবিউট
ফাইলের বিষয়বস্তু নয়, তার সম্পর্কে তথ্য: আকার, শেষ বদলের সময়, মালিক, পড়া-লেখার অনুমতি (POSIX permission, যেমন rw-r-----); Files.readAttributes দিয়ে পড়া যায়।যেখানে শিখবেন: পর্ব ৩৭
File handle (file descriptor)ফাইল হ্যান্ডেল
খোলা ফাইলের জন্য অপারেটিং সিস্টেমের দেওয়া একটি টিকিট; সংখ্যা সীমিত, তাই কাজ শেষে close করে ফেরত দিতে হয়, নইলে একসময় Too many open files ব্যর্থতা আসে।যেখানে শিখবেন: পর্ব ৩৭
FileAlreadyExistsExceptionফাইল অলরেডি এক্সিস্টস এক্সেপশন
নতুন ফাইল বানাতে, কপি বা সরাতে গিয়ে গন্তব্যে আগেই একটি ফাইল থাকলে যে IOException আসে; কপি-সরানোয় REPLACE_EXISTING দিলে আসে না।যেখানে শিখবেন: পর্ব ৩৭
FileChannelফাইল চ্যানেল
Java 1.4-এর NIO-র অংশ: ফাইলের যেকোনো জায়গা থেকে ByteBuffer-এ পড়া-লেখা, ফাইল lock, memory map আর transferTo দিয়ে দ্রুত কপির নিচু-স্তরের পথ।যেখানে শিখবেন: পর্ব ৩৭
Files (class)ফাইলস ক্লাস
java.nio.file-এর utility class, যার static method দিয়ে ফাইল পড়া, লেখা, কপি, সরানো, মোছা আর ফোল্ডারের তালিকা দেখার কাজ হয়; প্রতিটি method একটি Path নেয়।যেখানে শিখবেন: পর্ব ৩৭
FilterChainProxyফিল্টার চেইন প্রক্সি
Spring Security-র কেন্দ্রীয় bean; request-এর পথ দেখে প্রথম মানানসই SecurityFilterChain বেছে তার filter-গুলো ক্রমে চালায়।যেখানে শিখবেন: পর্ব ৫৩
finalফাইনাল
Java-র keyword: final ভ্যারিয়েবলে একবার মান বসলে আর নতুন মান বসানো যায় না; reference হলে শুধু reference স্থির থাকে, object-এর ভেতরের মান বদলানো যায়। constant-এর নাম রীতি অনুযায়ী সব বড় হাতে লেখা হয়, যেমন MAX_MARKS.যেখানে শিখবেন: পর্ব ০৬পর্ব ১৬পর্ব ১৭
final classফাইনাল ক্লাস
final দিয়ে ঘোষিত class, যাকে কেউ extends করতে পারে না, যেমন String আর Integer; চেষ্টা করলে compile error cannot inherit from finalযেখানে শিখবেন: পর্ব ১৮পর্ব ১৯পর্ব ২৪
final methodফাইনাল মেথড
final দিয়ে ঘোষিত method, যাকে কোনো subclass override করতে পারে না; class-এর গুরুত্বপূর্ণ নিয়ম বা নিরাপত্তা-যাচাই বদলানো আটকাতে ব্যবহার হয়যেখানে শিখবেন: পর্ব ১৮পর্ব ১৯
finalize()ফাইনালাইজ
Object-এর পুরোনো method, যা GC object সরানোর আগে হয়তো ডাকত; কখন বা আদৌ চলবে তার নিশ্চয়তা ছিল না, Java 9-এ deprecated আর Java 18-এ JEP 421 দিয়ে deprecated for removal.যেখানে শিখবেন: পর্ব ১৬পর্ব ২৩
finally blockফাইনালি ব্লক
try-এর পরের যে block সবসময় চলে — exception হোক বা না হোক, try থেকে return হলেও। পরিষ্কারের কাজ, যেমন সম্পদ ছেড়ে দেওয়া, এখানে রাখা হতো।যেখানে শিখবেন: পর্ব ২৯পর্ব ৫৬
Finite automatonফাইনাইট অটোমেটন
সীমিত কয়েকটি অবস্থা আর প্রতিটি অক্ষর পড়ে কোন অবস্থায় যাবে তার নিয়ম দিয়ে তৈরি একটি গাণিতিক যন্ত্র; বিশুদ্ধ regular expression আর এই যন্ত্রের ক্ষমতা সমান।যেখানে শিখবেন: পর্ব ১৪
First-level cacheফার্স্ট-লেভেল ক্যাশ
persistence context-এর ভেতরের identity map: একই transaction-এ একই id দ্বিতীয়বার চাইলে SQL না চালিয়ে আগের object-টিই ফেরত দেয়। context বন্ধ হলে এটাও শেষ।যেখানে শিখবেন: পর্ব ৫২
Flaky testফ্লেকি টেস্ট
কোড না বদলেও যে টেস্ট কখনো পাস আর কখনো ফেল করে — সাধারণত আসল ঘড়ি, seed ছাড়া Random, thread-এর সময়ক্রম বা ভাগ করা অবস্থার কারণেযেখানে শিখবেন: পর্ব ৪৭
flatMapফ্ল্যাট-ম্যাপ
stream-এর যে ধাপ প্রতিটি উপাদানকে একটি করে ছোট stream-এ বদলায় আর সেগুলো জোড়া দিয়ে একটি সমতল stream বানায় — যেমন তালিকার তালিকা থেকে সব উপাদানের একটি তালিকা, বা লাইনগুলো থেকে সব শব্দযেখানে শিখবেন: পর্ব ৩৫পর্ব ৩৬পর্ব ৫৮
Floating-pointফ্লোটিং পয়েন্ট
float ও double-এর মতো দশমিক সংখ্যা রাখার পদ্ধতি (IEEE 754); binary-তে রাখা হয় বলে 0.1-এর মতো অনেক মান হুবহু রাখা যায় নাযেখানে শিখবেন: পর্ব ০৬পর্ব ০৭পর্ব ৩৯
Fluent interfaceফ্লুয়েন্ট ইন্টারফেস
এমনভাবে নকশা করা API, যেখানে method chaining দিয়ে কোড প্রায় একটি বাক্যের মতো পড়া যায়, যেমন StringBuilder বা builder.যেখানে শিখবেন: পর্ব ১৬পর্ব ৪৮
flush()ফ্লাশ
buffer-এ জমে থাকা ডেটা এখনই নিচের স্তরে (ফাইল বা অপারেটিং সিস্টেমে) পাঠানোর নির্দেশ; close() নিজেই আগে flush করে।যেখানে শিখবেন: পর্ব ৩৭পর্ব ৫২
Flywayফ্লাইওয়ে
Java-র জনপ্রিয় database migration টুল: V1__..., V2__... নামের SQL ফাইল ক্রমানুসারে চালায় আর কোনটা চলেছে তা ডেটাবেসের নিজস্ব একটি টেবিলে লিখে রাখে। বিকল্প Liquibase.যেখানে শিখবেন: পর্ব ৪৯পর্ব ৫২
Follow-up questionফলো-আপ কোয়েশ্চেন
আগের উত্তর থেকে জন্মানো পরের প্রশ্ন, যা একই বিষয়ে আরও গভীরে যায়। ভাইভা আর ইন্টারভিউতে বোঝার গভীরতা যাচাইয়ের প্রধান উপায়।যেখানে শিখবেন: পর্ব ৫৮পর্ব ৫৯
for loopফর লুপ
for (init; condition; update) গঠনের লুপ। init একবার চলে, প্রতিটি ঘোরার আগে শর্ত যাচাই হয়, শেষে update চলে। কতবার ঘুরবে আগে জানা থাকলে সবচেয়ে উপযোগী।যেখানে শিখবেন: পর্ব ১১
for-each loopফর-ইচ লুপ
for (int x : arr) রূপের লুপ, যা array বা collection-এর প্রতিটি উপাদান একে একে দেয় — index লাগে না, তাই সীমা ভুলের সুযোগও নেই।যেখানে শিখবেন: পর্ব ১১পর্ব ১৩
Foreign keyফরেন কি
এক টেবিলের কলাম, যা অন্য টেবিলের primary key-র দিকে নির্দেশ করে — যেমন orders.customer_id থেকে customers.id. ডেটাবেস নিশ্চিত করে যে নির্দেশিত সারিটি সত্যিই আছে।যেখানে শিখবেন: পর্ব ৪৯পর্ব ৫২
Fork/Join frameworkফর্ক-জয়েন ফ্রেমওয়ার্ক
Java 7-এ আসা java.util.concurrent-এর কাঠামো (ForkJoinPool, RecursiveTask): বড় কাজকে বারবার ভেঙে (fork) ছোট টুকরো থ্রেডগুলোতে চালায় আর ফলগুলো জোড়ে (join); Doug Lea-র নকশা, parallel stream এর ওপর চলেযেখানে শিখবেন: পর্ব ৩৫পর্ব ৪১পর্ব ৪২
ForkJoinPool.commonPool()কমন পুল
পুরো JVM-এর ভাগাভাগি করা একটি pool, আকার সাধারণত core সংখ্যার চেয়ে একটি কম; executor ছাড়া supplyAsync আর parallel stream এখানে চলে, তাই এতে blocking I/O দেওয়া বিপজ্জনকযেখানে শিখবেন: পর্ব ৪১
Form loginফর্ম লগইন
ব্রাউজারে একটি লগইন পাতার ফর্ম দিয়ে পাসওয়ার্ড পাঠানো; সফল হলে সার্ভার একটি session বানিয়ে তার id cookie-তে দেয়। Spring-এ http.formLogin(...)যেখানে শিখবেন: পর্ব ৫৩
Format specifierফরম্যাট স্পেসিফায়ার
format string-এর একটি ফাঁকা ঘরের বর্ণনা, গঠন %[flag][width][.precision]conversion; যেমন %-10s, %,10.2f, %05d.যেখানে শিখবেন: পর্ব ০৯
Format stringফরম্যাট স্ট্রিং
printf বা String.format-এর প্রথম argument: সাধারণ লেখার মাঝে % দিয়ে শুরু হওয়া ফাঁকা ঘর, যেখানে বাকি argument-গুলো ক্রমানুসারে বসে।যেখানে শিখবেন: পর্ব ০৯
Forwarding methodফরওয়ার্ডিং মেথড
composition-এ বাইরের class-এর যে method শুধু ভেতরের field-এর একই method-কে ডেকে কাজটা পাঠিয়ে দেয়, যেমন add(s) ভেতরে set.add(s) ডাকেযেখানে শিখবেন: পর্ব ১৯
Fragile base class problemফ্র্যাজাইল বেস ক্লাস প্রবলেম
parent class-এর ভেতরের এমন বদল, যা তার নিজের জন্য নিরাপদ, কিন্তু subclass ভেঙে দেয় — কারণ subclass parent-এর ভেতরের কাজের ধরনের ওপর নির্ভর করছিলযেখানে শিখবেন: পর্ব ১৯পর্ব ৫৮
Frameworkফ্রেমওয়ার্ক
একটি পুরো কাঠামো, যা প্রোগ্রামের মূল প্রবাহ নিজে চালায় আর নির্দিষ্ট সময়ে আপনার লেখা কোডকে ডাকে; যেমন Spring Boot.যেখানে শিখবেন: পর্ব ০১পর্ব ১৭পর্ব ৪৫
Frequency countফ্রিকোয়েন্সি কাউন্ট
প্রতিটি আলাদা মান কতবার এসেছে তা গোনা; Java-তে সাধারণত মান → সংখ্যার একটি Map আর merge(x, 1, Integer::sum) দিয়ে, বা Stream-এ groupingBy আর counting দিয়েযেখানে শিখবেন: পর্ব ৩১পর্ব ৫৮
Full GCফুল জি-সি
প্রোগ্রাম থামিয়ে young ও old মিলিয়ে পুরো heap পরিষ্কার করা GC; সবচেয়ে লম্বা pause, তাই ঘন ঘন হওয়া সমস্যার লক্ষণযেখানে শিখবেন: পর্ব ৪৪
Full-duplexফুল-ডুপ্লেক্স
একই সংযোগে দুই দিকেই একসাথে ডেটা যেতে পারে — ফোনালাপের মতো, ওয়াকি-টকির মতো পালা করে নয়।যেখানে শিখবেন: পর্ব ৪৩
Fully qualified nameফুলি কোয়ালিফাইড নেম
package-সহ একটি class-এর পুরো নাম, যেমন java.util.Scanner বা com.abcltech.bank.Wallet; import ছাড়াই এই নামে class ব্যবহার করা যায়।যেখানে শিখবেন: পর্ব ১৭
Function compositionফাংশন কম্পোজিশন
ছোট ছোট function বা শর্ত জুড়ে নতুন একটি বানানো, যেমন f.andThen(g) বা isCheap.and(inStock); নতুন lambda না লিখেই বড় নিয়ম তৈরি হয়।যেখানে শিখবেন: পর্ব ৩৪
Function typeফাংশন টাইপ
কিছু ভাষায় আলাদা টাইপ, যা শুধু ইনপুট আর আউটপুট দিয়ে function বর্ণনা করে, যেমন Kotlin-এর (Int) -> Boolean. Java-তে এমন টাইপ নেই; তার জায়গায় functional interface ব্যবহার হয়।যেখানে শিখবেন: পর্ব ৩৪
functional interfaceফাংশনাল ইন্টারফেস
ঠিক একটি abstract method-ওয়ালা interface, যেমন Runnable বা Comparator; এর object একটি lambda দিয়েই বানানো যায়।যেখানে শিখবেন: পর্ব ২১পর্ব ২৪পর্ব ২৭
Functional programmingফাংশনাল প্রোগ্রামিং
প্রোগ্রাম লেখার একটি ধারা, যার কেন্দ্রে pure function, অপরিবর্তনীয় ডেটা আর function-কে মান হিসেবে পাঠানো ও জোড়া; Java 8 থেকে Java এর অনেক সরঞ্জাম গ্রহণ করেছে।যেখানে শিখবেন: পর্ব ৩৪
Futureফিউচার
এখনো শেষ না হওয়া একটি কাজের ভবিষ্যৎ ফলের প্রতিনিধি; get() ফল না আসা পর্যন্ত অপেক্ষা করে, isDone() বলে কাজ শেষ কি নাযেখানে শিখবেন: পর্ব ৪১পর্ব ৪২

G

G1 (Garbage-First) GCজি-ওয়ান জি-সি
heap-কে অনেক ছোট অঞ্চলে ভাগ করে সবচেয়ে বেশি garbage-ওয়ালা অঞ্চল আগে পরিষ্কার করে, একটি pause-লক্ষ্য মেনে চলে। Java 9 থেকে HotSpot-এর ডিফল্ট collectorযেখানে শিখবেন: পর্ব ০৫পর্ব ০৮পর্ব ৪৪
G1 regionজি-ওয়ান রিজিয়ন
G1 collector heap-কে যে সমান আকারের ছোট ছোট অংশে ভাগ করে; প্রতিটি region যেকোনো সময় eden, survivor, old বা humongous-এর ভূমিকা নিতে পারেযেখানে শিখবেন: পর্ব ৪৪
Gadget chainগ্যাজেট চেইন
classpath-এ থাকা নিরীহ class-গুলোর object এমনভাবে সাজানো, যাতে deserialization-এর সময় একটির স্বয়ংক্রিয় method আরেকটিকে ডাকে আর শেষে ক্ষতিকর কাজ ঘটে। অবিশ্বস্ত ডেটা Java serialization দিয়ে পড়ার প্রধান বিপদ।যেখানে শিখবেন: পর্ব ৩৯
Gang of Four (GoF)গ্যাং অফ ফোর
Erich Gamma, Richard Helm, Ralph Johnson আর John Vlissides — ১৯৯৪ সালের Design Patterns বইয়ের চার লেখক, যাঁরা ২৩টি pattern তিন পরিবারে সাজান।যেখানে শিখবেন: পর্ব ৪৮
Garbage collection (GC)গারবেজ কালেকশন
স্বয়ংক্রিয় মেমরি ব্যবস্থাপনা: কোনো GC root থেকে আর পৌঁছানো যায় না এমন object JVM নিজেই খুঁজে তার মেমরি খালি করে; প্রোগ্রামারকে হাতে free করতে হয় না।যেখানে শিখবেন: পর্ব ০১পর্ব ০৫পর্ব ০৮
GC rootজি-সি রুট
যেখান থেকে garbage collector জীবিত object খোঁজা শুরু করে — যেমন চলমান thread-এর stack-এর local ভ্যারিয়েবল আর class-এর static ভ্যারিয়েবলযেখানে শিখবেন: পর্ব ০৫পর্ব ১৫পর্ব ১৮
Generated keyজেনারেটেড কি
INSERT-এর সময় ডেটাবেস নিজে যে মান বানায়, সাধারণত নতুন সারির id. JDBC-তে Statement.RETURN_GENERATED_KEYS দিয়ে চেয়ে getGeneratedKeys() দিয়ে পড়া হয়।যেখানে শিখবেন: পর্ব ৪৯
Generational hypothesisজেনারেশনাল হাইপোথিসিস
পর্যবেক্ষণ যে বেশিরভাগ object খুব অল্প বয়সেই মারা যায়; এর ওপর ভিত্তি করে heap-কে young ও old অংশে ভাগ করা হয়যেখানে শিখবেন: পর্ব ৪৪পর্ব ৫৮
Generic classজেনেরিক ক্লাস
এক বা একাধিক type parameter-যুক্ত class, যেমন Box of T বা Map of K, V; একবার লিখে অনেক টাইপের জন্য নিরাপদে ব্যবহার করা যায়যেখানে শিখবেন: পর্ব ২৮
Generic methodজেনেরিক মেথড
যে method নিজের type parameter ঘোষণা করে, return টাইপের আগে কৌণিক বন্ধনীতে (যেমন static of T, T first(...)); প্রতিটি ডাকে compiler সাধারণত টাইপটি নিজেই অনুমান করেযেখানে শিখবেন: পর্ব ২৮
Genericsজেনেরিক্স
Java 5 (২০০৪) থেকে আসা ব্যবস্থা, যাতে class, interface বা method-এ টাইপকে parameter হিসেবে রাখা যায় (যেমন List of String); compiler টাইপ যাচাই করে, তাই cast লাগে না আর ভুল টাইপ compile-এর সময়েই ধরা পড়েযেখানে শিখবেন: পর্ব ২৮পর্ব ৩০পর্ব ৩৩
getClass()গেট-ক্লাস
Object-এর final method, যা চলার সময় object-এর আসল class ফেরত দেয়; equals-এ getClass() != o.getClass() লিখলে subclass-এর object কখনো parent-এর সমান হয় নাযেখানে শিখবেন: পর্ব ২৩
Getter / setterগেটার / সেটার
private field-এর মান পড়ার (getX বা isX) আর বসানোর (setX) method. যাচাই, read-only বা হিসাব করা মানের জন্য কাজের; প্রতিটি field-এ অন্ধভাবে বসালে encapsulation নষ্ট হয়।যেখানে শিখবেন: পর্ব ১৭
Glob patternগ্লব প্যাটার্ন
ফাইলের নাম মেলানোর সহজ নকশা: * মানে যেকোনো কয়েকটি অক্ষর (ফোল্ডার পার হয় না), ** ফোল্ডার পার হয়ে, ? একটি অক্ষর, {csv,txt} যেকোনো একটি; যেমন *.csv.যেখানে শিখবেন: পর্ব ৩৭
Global stateগ্লোবাল স্টেট
প্রোগ্রামের যেকোনো জায়গা থেকে পড়া ও বদলানো যায় এমন ডেটা, Java-তে সাধারণত বদলানো যায় এমন public static field; কে কখন বদলাল বোঝা কঠিন, তাই bug আর টেস্টের ঝামেলা বাড়ায়।যেখানে শিখবেন: পর্ব ১৮পর্ব ৪০পর্ব ৪৭
God classগড ক্লাস
যে class প্রায় সব দায়িত্ব একাই নেয় — অনেক অসম্পর্কিত কাজ, অনেক method; বোঝা, পরীক্ষা করা আর বদলানো কঠিনযেখানে শিখবেন: পর্ব ০২পর্ব ১৫পর্ব ২২
Goroutineগোরুটিন
Go ভাষার হালকা কাজের ধারা, যা go keyword দিয়ে শুরু হয়; ছোট stack নিয়ে শুরু হয়ে দরকার মতো বাড়ে, আর Go রানটাইম লাখো goroutine-কে অল্প কয়েকটি OS thread-এ চালায়যেখানে শিখবেন: পর্ব ৪২
GraalVMগ্রাল-ভি-এম
Oracle-এর একটি JDK বিতরণ, যার native-image টুল Java অ্যাপকে আগেভাগে একটি স্বতন্ত্র চালানো যায় এমন ফাইলে compile করে — মিলিসেকেন্ডে চালু হয়, মেমরিও কম নেয়যেখানে শিখবেন: পর্ব ০৫পর্ব ২২
GraalVM native-imageনেটিভ ইমেজ
GraalVM-এর একটি টুল, যা Java অ্যাপ্লিকেশনকে আগেভাগে compile করে আলাদা JVM ছাড়া চলা একটি native executable বানায়; শুরু হয় দ্রুত, তবে reflection-এর মতো কাজে আগাম কনফিগারেশন লাগে।যেখানে শিখবেন: পর্ব ২২পর্ব ৪৫পর্ব ৫০
Gradleগ্রেডল
Java ও Android-এর জনপ্রিয় build tool. build.gradle বা build.gradle.kts ফাইলে লেখা নির্দেশ মেনে dependency নামায়, compile ও টেস্ট করে।যেখানে শিখবেন: পর্ব ০১পর্ব ০৩পর্ব ৪৬
Gradle configurationগ্রেডল কনফিগারেশন
Gradle-এ dependency-র দল, যা ঠিক করে সেটা কোন classpath-এ যাবে: implementation, api, compileOnly, runtimeOnly, testImplementation ইত্যাদি; Maven-এর scope-এর মতো।যেখানে শিখবেন: পর্ব ৪৬
Gradle taskগ্রেডল টাস্ক
Gradle-এর কাজের একক, যেমন compileJava, test, jar; প্রতিটি task-এর ইনপুট, আউটপুট আর অন্য task-এর ওপর নির্ভরতা থাকে।যেখানে শিখবেন: পর্ব ৪৬
GrantedAuthorityগ্রান্টেড অথরিটি
ব্যবহারকারীর একটি অনুমতি, একটি নাম হিসেবে — যেমন ROLE_ADMIN বা SCOPE_orders:read. hasRole আর hasAuthority এগুলোই পরীক্ষা করে।যেখানে শিখবেন: পর্ব ৫৩
Graphগ্রাফ
কিছু বিন্দু (node বা vertex) আর তাদের মধ্যে সংযোগের (edge) সমষ্টি — যেমন শহর আর রাস্তা, মানুষ আর বন্ধুত্ব, ওয়েব পাতা আর লিংকযেখানে শিখবেন: পর্ব ৩২পর্ব ৫৪
Grapheme clusterগ্রাফিম ক্লাস্টার
চোখে একটি অক্ষর মনে হয় এমন এক বা একাধিক code point-এর দল, যার নিয়ম Unicode বেঁধে দেয়; যেমন কা (ক + া)। যুক্তাক্ষর (ক্ষ) একটি দল কি না, তা Unicode সংস্করণের ওপর নির্ভর করে।যেখানে শিখবেন: পর্ব ০৮পর্ব ১৪
GraphQLগ্রাফকিউএল
Facebook-এর তৈরি API-ধরন, যেখানে client একটি query-তে ঠিক কোন field আর সম্পর্কিত ডেটা চায় তা লিখে পাঠায়, সাধারণত একটি endpoint-এ।যেখানে শিখবেন: পর্ব ৫১
Greedy algorithmগ্রিডি অ্যালগরিদম
প্রতিটি ধাপে সেই মুহূর্তের সবচেয়ে ভালো দেখানো সিদ্ধান্ত নিয়ে আর কখনো ফিরে না দেখা পদ্ধতি; দ্রুত, কিন্তু সব সমস্যায় সেরা উত্তর দেয় না — প্রমাণ বা পাল্টা-উদাহরণ খুঁজতে হয়যেখানে শিখবেন: পর্ব ৫৪পর্ব ৫৯
Greedy quantifierগ্রিডি কোয়ান্টিফায়ার
ডিফল্ট quantifier (*, +, ?, {n,m}), যা প্রথমে যত বেশি সম্ভব অক্ষর খায়, তারপর বাকি নকশা না মিললে একটি একটি করে ফেরত দেয়।যেখানে শিখবেন: পর্ব ১৪
Green threadগ্রিন থ্রেড
Java-র প্রথম দিকের (১৯৯০-এর দশক) JVM-নিয়ন্ত্রিত thread, যেগুলো সব একটিমাত্র OS thread-এ চলত (M:1); একাধিক CPU ব্যবহার করতে না পারায় আর ব্লকিং-এ সব আটকে যাওয়ায় বাদ পড়েযেখানে শিখবেন: পর্ব ৪২
GROUP BYগ্রুপ বাই
SQL-এ একই মানের সারিগুলোকে এক দলে এনে প্রতিটি দলের জন্য aggregate function চালানো, যেমন জেলাভিত্তিক মোট বিক্রি।যেখানে শিখবেন: পর্ব ৪৯
gRPCজি-আর-পি-সি
Google-এর open source দূরবর্তী method call ব্যবস্থা — Protocol Buffers আর HTTP/2-এর ওপর, কঠোর টাইপ আর streaming-সহ; প্রায়ই microservice-এর ভেতরের যোগাযোগে।যেখানে শিখবেন: পর্ব ৫১
Gsonজি-সন
Google-এর তৈরি Java JSON লাইব্রেরি, Android-এ জনপ্রিয়। toJson দিয়ে object থেকে JSON আর fromJson দিয়ে JSON থেকে object; ডিফল্টে null field বাদ দেয় আর অজানা key উপেক্ষা করে।যেখানে শিখবেন: পর্ব ৩৯
Guard (when)গার্ড — হোয়েন
pattern case-এর সাথে যুক্ত অতিরিক্ত boolean শর্ত — যেমন case Integer i when i > 100 -> লেখায় when-এর পরের অংশ। pattern মিললেও শর্ত মিথ্যা হলে case-টি বাদ পড়ে।যেখানে শিখবেন: পর্ব ১০পর্ব ২৬
Guard clauseগার্ড ক্লজ
method-এর শুরুতেই অবৈধ বা বিশেষ অবস্থা যাচাই করে সাথে সাথে return বা throw করা, যাতে মূল কাজের কোড গভীর nesting ছাড়া সোজাসুজি লেখা যায়।যেখানে শিখবেন: পর্ব ১০পর্ব ৪৮

H

H2এইচ-টু
Java-তে লেখা হালকা relational ডেটাবেস, যা একটি JAR হিসেবে অ্যাপের ভেতরেই চলতে পারে আর in-memory মোড দেয়; টেস্ট আর ছোট প্রজেক্টে জনপ্রিয়।যেখানে শিখবেন: পর্ব ৪৯
Half-close (shutdownOutput)হাফ-ক্লোজ
TCP সংযোগের শুধু পাঠানোর দিক বন্ধ করা, পড়ার দিক খোলা রেখে; Java-তে socket.shutdownOutput() — অন্য প্রান্ত স্রোতের শেষ দেখে, কিন্তু উত্তর পাঠাতে পারে।যেখানে শিখবেন: পর্ব ৪৩
Happens-beforeহ্যাপেনস-বিফোর
JMM-এর মূল সম্পর্ক: কাজ X যদি Y-এর আগে happens-before হয়, তবে X-এর সব লেখা Y দেখবে। তালা ছাড়া ও নেওয়া, volatile লেখা ও পড়া, start() আর join() এমন সম্পর্ক তৈরি করে।যেখানে শিখবেন: পর্ব ৪০পর্ব ৫৮
Happy pathহ্যাপি পাথ
সব কিছু ঠিকঠাক চলার স্বাভাবিক পথ — বৈধ ইনপুট, কোনো ভুল নেই; শুধু এটুকু টেস্ট করলে কিনারার bug অধরা থাকেযেখানে শিখবেন: পর্ব ৪৭
has-a relationshipহ্যাজ-এ সম্পর্ক
একটি object আরেকটিকে নিজের অংশ হিসেবে রাখে বা চেনে, যেমন Trip-এর একজন Driver আছেন; Java-তে সাধারণত একটি field দিয়ে প্রকাশ পায়যেখানে শিখবেন: পর্ব ০২পর্ব ১৯পর্ব ২২
Hash bucketহ্যাশ বাকেট
HashMap বা HashSet-এর ভেতরের টেবিলের একটি ঘর; key-এর hashCode থেকে হিসাব করে ঠিক হয় কোন ঘরে সে থাকবে, আর একই ঘরে একাধিক key থাকতে পারেযেখানে শিখবেন: পর্ব ২৩পর্ব ৩১পর্ব ৫৮
Hash collisionহ্যাশ কলিশন
দুটি আলাদা key-এর hashCode সমান হওয়া বা একই bucket-এ পড়া; এটা স্বাভাবিক ও বৈধ, তখন equals দিয়ে আসল key খুঁজে নেওয়া হয়, তবে বেশি হলে খোঁজা ধীর হয়ে যায়যেখানে শিখবেন: পর্ব ২৩পর্ব ৩১পর্ব ৫৮
Hash floodingহ্যাশ ফ্লাডিং
এক ধরনের denial-of-service আক্রমণ, যেখানে আক্রমণকারী ইচ্ছা করে একই hashCode-এর হাজারো key পাঠায়, যাতে সার্ভারের HashMap-এর একটি bucket বিশাল হয়ে খোঁজা খুব ধীর হয়ে যায়যেখানে শিখবেন: পর্ব ২৩পর্ব ৩১পর্ব ৫৪
Hash tableহ্যাশ টেবিল
key-এর hash থেকে একটি array-এর ঘর হিসাব করে সেখানে ডেটা রাখার কাঠামো; গড়ে প্রায় এক ধাপে যোগ, খোঁজা আর মোছা যায়। HashMap আর HashSet-এর ভেতরের কাঠামো এটাইযেখানে শিখবেন: পর্ব ৩১পর্ব ৫৮
hashCode()হ্যাশকোড
একটি object থেকে হিসাব করে পাওয়া একটি int, যা দিয়ে HashMap-এর মতো কাঠামো দ্রুত ঘর খুঁজে পায়। সমান (equals) দুটি object-এর hashCode সমান হতেই হবে।যেখানে শিখবেন: পর্ব ০৮পর্ব ১৫পর্ব ২৩
HashMapহ্যাশম্যাপ
key দিয়ে মান খুঁজে পাওয়ার Java collection, যা key-এর hashCode আর equals ব্যবহার করে। String সবচেয়ে প্রচলিত key, কারণ এটি immutable.যেখানে শিখবেন: পর্ব ০৮পর্ব ২৩পর্ব ২৪
HashSetহ্যাশসেট
একই উপাদান দুবার না রাখা Java collection; ভেতরে একটি HashMap ব্যবহার করে, তাই উপাদানের hashCode দিয়ে ঘর বেছে নেয় আর equals দিয়ে মিল নিশ্চিত করে। উপাদানের ক্রমের কোনো নিশ্চয়তা নেইযেখানে শিখবেন: পর্ব ২৩পর্ব ৩১পর্ব ৫৬
Heapহিপ
JVM-এর যে মেমরি-অংশে new দিয়ে তৈরি সব object থাকে; সব thread এটি ভাগ করে নেয়, আর অব্যবহৃত object মুছে দেয় garbage collectorযেখানে শিখবেন: পর্ব ০৫পর্ব ০৮পর্ব ১২
Heap dumpহিপ ডাম্প
কোনো মুহূর্তে heap-এর সব object আর তাদের reference-এর ছবি, একটি .hprof ফাইলে। Eclipse MAT বা VisualVM দিয়ে leak-এর উৎস খোঁজা হয়যেখানে শিখবেন: পর্ব ৪৪
Heap pollutionহিপ পলিউশন
এমন অবস্থা যেখানে একটি generic টাইপের ভ্যারিয়েবল (যেমন List of String) আসলে ভুল টাইপের জিনিসযুক্ত object দেখায়; raw type বা generic varargs থেকে আসে, আর পরে লুকানো cast-এ ClassCastException দেয়যেখানে শিখবেন: পর্ব ২৮
Heapifyহিপিফাই
একটি এলোমেলো array-কে একসাথে heap বানানো: নিচের স্তর থেকে ওপরে প্রতিটি অভিভাবকে sift-down চালানো। Robert Floyd-এর এই পদ্ধতিতে মোট কাজ O(n); new PriorityQueue(collection) এটাই করেযেখানে শিখবেন: পর্ব ৩২
Heapsortহিপসর্ট
সব জিনিস একটি heap-এ রেখে বারবার শিকড় বের করে সাজানোর অ্যালগরিদম; সবসময় O(n log n) আর বাড়তি মেমরি লাগে না। J. W. J. Williams ১৯৬৪ সালে প্রকাশ করেনযেখানে শিখবেন: পর্ব ৩২
Hexagonal architecture (Ports and Adapters)হেক্সাগোনাল আর্কিটেকচার
Alistair Cockburn-এর নকশা: ব্যবসার নিয়ম framework-মুক্ত core-এ থাকে, আর database, web বা বাইরের সেবা যুক্ত হয় port (interface) আর adapter দিয়ে।যেখানে শিখবেন: পর্ব ৫৫
Hibernateহাইবারনেট
Java-র সবচেয়ে প্রচলিত ORM, ২০০১ সালে Gavin King-এর শুরু করা; JPA মানদণ্ডের প্রধান implementation, Spring Boot-এ ডিফল্ট।যেখানে শিখবেন: পর্ব ৪৯পর্ব ৫২
Higher-order functionহায়ার-অর্ডার ফাংশন
যে method বা function আরেকটি আচরণ (lambda) parameter হিসেবে নেয় বা ফেরত দেয়, যেমন removeIf বা নিজের লেখা retry(Supplier, times).যেখানে শিখবেন: পর্ব ৩৩পর্ব ৩৪
HikariCPহিকারি-সিপি
Java-র একটি দ্রুত ও জনপ্রিয় connection pool লাইব্রেরি, Spring Boot 2.0 থেকে ডিফল্ট; HikariDataSource একটি DataSource.যেখানে শিখবেন: পর্ব ৪৯
HMACএইচ-ম্যাক
গোপন key আর একটি hash ফাংশন (যেমন SHA-256) মিলিয়ে বার্তার স্বাক্ষর বানানোর মানক পদ্ধতি; একই key ছাড়া সঠিক স্বাক্ষর বানানো যায় না। Java-তে javax.crypto.Mac, HS256 JWT-এর ভিত্তি।যেখানে শিখবেন: পর্ব ৫৩
HotSpotহটস্পট
OpenJDK-র প্রধান JVM, যা প্রায় সব জনপ্রিয় JDK-তে থাকে। প্রোগ্রামের বারবার চলা অংশ (hot spot) খুঁজে JIT দিয়ে compile করে বলে এই নামযেখানে শিখবেন: পর্ব ০৫
HSTS (HTTP Strict Transport Security)এইচ-এস-টি-এস
Strict-Transport-Security header — ব্রাউজারকে বলে নির্দিষ্ট সময় ধরে এই সাইটে শুধু HTTPS-এ আসতে; HTTP-তে নামিয়ে আনার চেষ্টা ঠেকায়।যেখানে শিখবেন: পর্ব ৫৩
HTTP (HyperText Transfer Protocol)এইচ-টি-টি-পি
ওয়েবের প্রশ্ন-উত্তরের প্রোটোকল: client একটি request (method, URL, header, body) পাঠায়, সার্ভার status code-সহ একটি response ফেরত দেয়।যেখানে শিখবেন: পর্ব ৪৩পর্ব ৫১
HTTP Basic authenticationএইচটিটিপি বেসিক
প্রতিটি request-এ Authorization: Basic header-এ Base64-এ লেখা নাম:পাসওয়ার্ড পাঠানোর সরল পদ্ধতি; Base64 এনক্রিপশন নয়, তাই শুধু HTTPS-এ।যেখানে শিখবেন: পর্ব ৫৩
HTTP headerহেডার
request বা response-এর সাথে যাওয়া “নাম: মান” জোড়া, যেমন Content-Type বা Authorization; body-র বাইরের বাড়তি তথ্য বহন করে।যেখানে শিখবেন: পর্ব ৪৩পর্ব ৫১
HTTP methodএইচ-টি-টি-পি মেথড
request-এর কাজের ধরন: GET পড়া, POST তৈরি, PUT পুরো বদল, PATCH আংশিক বদল, DELETE মোছা।যেখানে শিখবেন: পর্ব ৫১
HTTP sessionএইচটিটিপি সেশন
সার্ভারে রাখা একজন ব্যবহারকারীর অবস্থা (যেমন লগইন পরিচয়), যার id একটি cookie-তে ব্রাউজারে থাকে আর প্রতিটি request-এ ফেরত আসে।যেখানে শিখবেন: পর্ব ৫৩
HTTP status codeস্ট্যাটাস কোড
response-এর তিন অঙ্কের সংখ্যা, যা বলে কী ঘটেছে: 2xx সফল, 3xx অন্যত্র যান, 4xx client-এর ভুল, 5xx সার্ভারের ভুল — যেমন 201, 404, 409যেখানে শিখবেন: পর্ব ৪৩পর্ব ৫১পর্ব ৫৫
HTTP upgradeএইচটিটিপি আপগ্রেড
একটি HTTP request-এ Upgrade header দিয়ে অন্য protocol-এ যাওয়ার অনুরোধ; সার্ভার 101 Switching Protocols দিলে একই সংযোগ নতুন protocol-এ চলে, যেমন WebSocket.যেখানে শিখবেন: পর্ব ৪৩
HttpClient (java.net.http)এইচটিটিপি ক্লায়েন্ট
Java 11 থেকে স্থায়ী JDK-র HTTP client: send দিয়ে ব্লকিং, sendAsync দিয়ে CompletableFuture-এ উত্তর; ডিফল্টে HTTP/2 চায়, redirect অনুসরণ করে না, timeout নিজে দিতে হয়।যেখানে শিখবেন: পর্ব ৪৩
HttpRequestএইচটিটিপি রিকোয়েস্ট
java.net.http-এর immutable request object — URI, method, header, body আর timeout; HttpRequest.newBuilder() দিয়ে বানানো হয়।যেখানে শিখবেন: পর্ব ৪৩
HTTPSএইচ-টি-টি-পি-এস
TLS এনক্রিপশনের ভেতর দিয়ে চলা HTTP; পথে কেউ token, পাসওয়ার্ড বা ডেটা পড়তে বা বদলাতে পারে না।যেখানে শিখবেন: পর্ব ৪৩পর্ব ৫১পর্ব ৫৩

I

I/O-boundআই-ও বাউন্ড
যে কাজের বেশিরভাগ সময় যায় ইনপুট-আউটপুটের অপেক্ষায় (নেটওয়ার্ক, ডেটাবেস, ডিস্ক), CPU-র হিসাবে নয়; এমন অনেক কাজ একসাথে চালালে বড় লাভযেখানে শিখবেন: পর্ব ৪১পর্ব ৪২
IANA time zone database (tzdb)আইএএনএ টাইম জোন ডেটাবেস
পৃথিবীর সব টাইম জোনের ইতিহাস ও নিয়মের যৌথ ডেটাবেস, যা Olson database নামেও পরিচিত; Linux, ব্রাউজার আর JDK এটি ব্যবহার করে, আর বছরে কয়েকবার হালনাগাদ হয়যেখানে শিখবেন: পর্ব ৩৮
IDE (Integrated Development Environment)আই-ডি-ই
কোড লেখা, চালানো, debug আর প্রজেক্ট সামলানোর সব সুবিধা এক জায়গায় দেওয়া সফটওয়্যার, যেমন IntelliJ IDEA বা Eclipse. ভেতরে এটি JDK-র টুলগুলোকেই ডাকে।যেখানে শিখবেন: পর্ব ০৩
Idempotencyআইডেমপোটেন্সি
একই request একবার বা বহুবার পাঠালে সার্ভারের শেষ অবস্থা একই থাকার গুণ। GET, PUT, DELETE idempotent; POST নয়, তাই আবার পাঠালে দ্বিগুণ অর্ডার হতে পারে।যেখানে শিখবেন: পর্ব ৪৩পর্ব ৫১পর্ব ৫৫
Identity hash codeআইডেন্টিটি হ্যাশ কোড
Object থেকে পাওয়া ডিফল্ট hashCode, যা object-এর পরিচয় ধরে তৈরি — মান ধরে নয়; System.identityHashCode দিয়েও পাওয়া যায়, আর প্রতিবার প্রোগ্রাম চালালে আলাদা হতে পারেযেখানে শিখবেন: পর্ব ২৩
Identity valueআইডেন্টিটি ভ্যালু
reduce-এর শুরুর মান, যা কোনো উপাদানের সাথে জুড়লে সেই উপাদানই ফেরত দেয় — যোগের জন্য 0, গুণের জন্য 1; stream খালি হলে reduce এই মানটিই ফেরত দেয়যেখানে শিখবেন: পর্ব ৩৫
if statementইফ স্টেটমেন্ট
শর্ত সত্য হলে একটি block চালায়, মিথ্যা হলে (else থাকলে) অন্য block চালায় — প্রোগ্রামে পথ বেছে নেওয়ার সবচেয়ে মৌলিক উপায়।যেখানে শিখবেন: পর্ব ১০
IllegalArgumentExceptionইলিগ্যাল আর্গুমেন্ট এক্সেপশন
method বা constructor-এ অবৈধ argument (যেমন ঋণাত্মক দাম) এলে ছোড়ার জন্য Java-র প্রচলিত unchecked exception.যেখানে শিখবেন: পর্ব ১৬পর্ব ২২পর্ব ২৪
IllegalStateExceptionইলিগ্যাল স্টেট এক্সেপশন
argument ঠিক আছে, কিন্তু object এখন এমন অবস্থায় যে কাজটি করা যায় না (যেমন বন্ধ wallet থেকে টাকা তোলা) — তখন ছোড়ার জন্য প্রচলিত unchecked exception.যেখানে শিখবেন: পর্ব ২৯পর্ব ৩৫পর্ব ৫৫
Immutableইমিউটেবল
তৈরি হওয়ার পর যার ভেতরের মান আর বদলানো যায় না এমন object. Java-র String immutable — বদলানোর মতো দেখতে প্রতিটি method আসলে একটি নতুন String ফেরত দেয়।যেখানে শিখবেন: পর্ব ০৮পর্ব ১২পর্ব ১৪
implementsইমপ্লিমেন্টস
Java keyword, যা দিয়ে একটি class ঘোষণা করে যে সে এক বা একাধিক interface-এর চুক্তি মানে, যেমন class SmsSender implements MessageSender.যেখানে শিখবেন: পর্ব ২১পর্ব ২৪
importইমপোর্ট
ফাইলের শুরুতে লেখা নির্দেশ, যা compiler-কে জানায় অন্য package-এর কোন class ব্যবহার হবে, যেমন import java.util.Scanner; তাহলে পুরো নাম না লিখে শুধু Scanner লেখা যায়।যেখানে শিখবেন: পর্ব ০৯পর্ব ১৭
In-memory databaseইন-মেমরি ডেটাবেস
ডিস্কে নয়, শুধু মেমরিতে চলা ডেটাবেস, যা প্রোগ্রাম বা টেস্ট শেষে মুছে যায়; দ্রুত টেস্টের জন্য উপযোগী, যেমন jdbc:h2:mem:test.যেখানে শিখবেন: পর্ব ৪৯
InaccessibleObjectExceptionইনঅ্যাক্সেসিবল অবজেক্ট এক্সেপশন
setAccessible(true) ব্যর্থ হলে আসা unchecked exception, যখন member-টির module তার package reflection-এর জন্য open করেনি; Java 16 থেকে JDK-র ভেতরের class-এ এটা ডিফল্ট আচরণ।যেখানে শিখবেন: পর্ব ৪৫
Increment / decrement operatorইনক্রিমেন্ট অপারেটর
++ আর -- অপারেটর, যা ভ্যারিয়েবলকে ১ বাড়ায় বা কমায়। i++ পুরোনো মান দেয়, ++i নতুন মান দেয়যেখানে শিখবেন: পর্ব ০৭পর্ব ৪০
Incremental buildইনক্রিমেন্টাল বিল্ড
যে build শুধু বদলে যাওয়া অংশ আর তার ওপর নির্ভরশীল অংশ আবার বানায়; Gradle-এ যে task-এর ইনপুট বদলায়নি তা UP-TO-DATE হয়ে বাদ পড়ে।যেখানে শিখবেন: পর্ব ৪৬
Indexইনডেক্স
array বা String-এর কোনো ঘরের ক্রমিক নম্বর — শুরু থেকে কত ঘর দূরে। Java-তে প্রথম ঘরের index ০, শেষ ঘরের length − ১।যেখানে শিখবেন: পর্ব ১৩
Index (database)ইনডেক্স
ডেটাবেসের একটি সহায়ক কাঠামো (সাধারণত B-tree), যা কোনো কলামের মান দিয়ে পুরো টেবিল না পড়েই দ্রুত সারি খুঁজে দেয়; বিনিময়ে লেখা একটু ধীর হয় আর জায়গা লাগে।যেখানে শিখবেন: পর্ব ৪৯পর্ব ৫৫
IndexOutOfBoundsExceptionইনডেক্স আউট অফ বাউন্ডস এক্সেপশন
List বা String-এর সীমার বাইরের index চাইলে আসা unchecked exception. ArrayIndexOutOfBoundsException আর StringIndexOutOfBoundsException এর subclass.যেখানে শিখবেন: পর্ব ২৯পর্ব ৩০
InetAddressইনেট অ্যাড্রেস
java.net-এর class, যা একটি IP ঠিকানা (IPv4 বা IPv6) প্রকাশ করে; getByName() দিয়ে DNS-এ নাম খোঁজে, না পেলে UnknownHostException দেয়।যেখানে শিখবেন: পর্ব ৪৩
Infinite loopইনফিনিট লুপ
যে লুপের শর্ত কখনো মিথ্যা হয় না, তাই কখনো থামে না। ইচ্ছাকৃত হলে (while (true), for (;;)) ভেতরে break বা return থাকে; অনিচ্ছাকৃত হলে প্রোগ্রাম ঝুলে যায়।যেখানে শিখবেন: পর্ব ১১
Information disclosureইনফরমেশন ডিসক্লোজার
error উত্তর, log বা API-র মাধ্যমে ভেতরের তথ্য (stack trace, পাসওয়ার্ড, token, কোন অ্যাকাউন্ট আছে) বাইরের মানুষের কাছে চলে যাওয়া।যেখানে শিখবেন: পর্ব ৫৩
Information hidingইনফরমেশন হাইডিং
একটি class বা module-এর ভেতরের নকশা-সিদ্ধান্ত (ডেটা কীভাবে রাখা, হিসাব কীভাবে হয়) বাইরে থেকে লুকিয়ে রাখা, যাতে ভেতরটা বদলালেও বাইরের কোড না ভাঙে; David Parnas ১৯৭২ সালে ধারণাটি দেন।যেখানে শিখবেন: পর্ব ১৭
Inheritanceইনহেরিট্যান্স
একটি class (subclass) আরেকটি class-এর field ও method পেয়ে যায় এবং চাইলে কিছু আচরণ বদলায়; Java-তে extends দিয়ে লেখা হয়যেখানে শিখবেন: পর্ব ০২পর্ব ১৮পর্ব ১৯
Initializationইনিশিয়ালাইজেশন
ভ্যারিয়েবলে প্রথমবার মান বসানো। ঘোষণার সাথেই করা যায় (int roll = 42;) অথবা পরে আলাদা লাইনে।যেখানে শিখবেন: পর্ব ০৬
Inline cacheইনলাইন ক্যাশ
JIT-এর একটি কৌশল: কোনো virtual call-এর জায়গায় আগের বার কোন class এসেছিল আর কোন method চলেছিল, তা মনে রাখা, যাতে পরের বার একই class এলে টেবিল না খুঁজেই সরাসরি চলে যাওয়া যায়।যেখানে শিখবেন: পর্ব ২০
Inner classইনার ক্লাস
static ছাড়া আরেকটি class-এর ভেতরে ঘোষিত class; এর প্রতিটি object একটি বাইরের object-এর সাথে বাঁধা থাকে আর Outer.this দিয়ে তাকে ব্যবহার করতে পারে। বাইরে থেকে বানাতে লিখতে হয় outer.new Inner().যেখানে শিখবেন: পর্ব ২৭পর্ব ৪৪পর্ব ৫৮
Input bufferইনপুট বাফার
নল থেকে আসা কিন্তু এখনো না পড়া লেখা যেখানে জমা থাকে; প্রতিটি next…() ডাক এর সামনের অংশ কেটে নেয়, আর না পড়া অংশ (যেমন একটি বাড়তি newline) পরের ডাকের জন্য থেকে যায়।যেখানে শিখবেন: পর্ব ০৯
InputMismatchExceptionইনপুট মিসম্যাচ এক্সেপশন
Scanner যখন যে টাইপ চাওয়া হয়েছে সেই টাইপের token পায় না (যেমন nextInt-এ লেখা bish), তখন ছোড়া unchecked exception; java.util package-এর।যেখানে শিখবেন: পর্ব ০৯
Instanceইনস্ট্যান্স
একটি class থেকে তৈরি একটি নির্দিষ্ট object; যেমন রিনার অ্যাকাউন্ট হলো BankAccount class-এর একটি instanceযেখানে শিখবেন: পর্ব ১৫
Instance field (instance variable)ইনস্ট্যান্স ফিল্ড
static ছাড়া ঘোষিত field; প্রতিটি object-এর ভেতরে এর আলাদা কপি থাকে, তাই একটি object-এর মান বদলালে অন্যগুলো বদলায় না, যেমন প্রতিটি Student-এর নিজের name.যেখানে শিখবেন: পর্ব ১৮
Instance initializer blockইনস্ট্যান্স ইনিশিয়ালাইজার ব্লক
class-এর ভেতরে নামহীন { … } block, যা প্রতিটি object তৈরির সময় constructor-এর শরীরের আগে, field initializer-এর সাথে লেখার ক্রমে চলে।যেখানে শিখবেন: পর্ব ১৬
Instance methodইনস্ট্যান্স মেথড
static ছাড়া লেখা method, যা কোনো একটি নির্দিষ্ট object-এর ওপর ডাকা হয় আর সেই object-এর field নিয়ে কাজ করে; ভেতরে this সেই object-কে দেখায়যেখানে শিখবেন: পর্ব ১৫
instanceofইনস্ট্যান্স-অফ
Java-র operator, যা পরীক্ষা করে একটি object কোনো নির্দিষ্ট টাইপের (বা তার subclass-এর) কি না, আর true/false দেয়। null হলে সবসময় false.যেখানে শিখবেন: পর্ব ২০পর্ব ২৬
Instantইনস্ট্যান্ট
সময়রেখার একটি নির্দিষ্ট মুহূর্ত, UTC-তে মাপা (epoch থেকে সেকেন্ড আর ন্যানোসেকেন্ড); পেমেন্ট, লগ বা অডিটের সময় সংরক্ষণের জন্য সবচেয়ে নিরাপদ টাইপযেখানে শিখবেন: পর্ব ৩৮
Integer cacheইন্টিজার ক্যাশ
Integer.valueOf (আর autoboxing) −128 থেকে 127 পর্যন্ত সংখ্যার জন্য আগে থেকে বানানো object ফেরত দেয়। তাই এই সীমায় দুটি Integer-এর == সত্য হয়, সীমার বাইরে সাধারণত মিথ্যা; তুলনায় তাই equals লাগে।যেখানে শিখবেন: পর্ব ০৬পর্ব ২৮পর্ব ৪৪
Integer divisionইন্টিজার ডিভিশন
দুটি পূর্ণসংখ্যার ভাগ, যেখানে ভাগফলের দশমিক অংশ শূন্যের দিকে কেটে ফেলা হয়: 7 / 2 হয় 3যেখানে শিখবেন: পর্ব ০৬পর্ব ০৭
Integer overflowইন্টিজার ওভারফ্লো
হিসাবের ফল টাইপের সীমা পেরিয়ে গেলে মান ঘুরে উল্টো প্রান্তে চলে যাওয়া, যেমন Integer.MAX_VALUE + 1 হয় সবচেয়ে ছোট int. Java কোনো error দেয় নাযেখানে শিখবেন: পর্ব ০৬পর্ব ০৭পর্ব ২৩
Integer.parseIntইন্টিজার ডট পার্স-ইন্ট
একটি String-কে int-এ বদলানোর static method; লেখাটি বৈধ পূর্ণসংখ্যা না হলে NumberFormatException দেয়। দশমিকের জন্য Double.parseDouble.যেখানে শিখবেন: পর্ব ০৯পর্ব ২২
Integration testইন্টিগ্রেশন টেস্ট
কয়েকটি অংশ একসাথে, প্রায়ই আসল ডেটাবেস বা ফাইলসহ, ঠিকমতো জোড়া লেগে কাজ করে কি না তা যাচাইয়ের টেস্ট; unit test-এর চেয়ে ধীরযেখানে শিখবেন: পর্ব ৪৭
Interfaceইন্টারফেস
Java-র একটি টাইপ, যা বলে দেয় কোন কোন method থাকতে হবে, কিন্তু (সাধারণত) কীভাবে তা নয়। Class implements লিখে সেই চুক্তি পূরণ করে।যেখানে শিখবেন: পর্ব ১৯পর্ব ২০পর্ব ২১
Interface Segregation Principle (ISP)ইন্টারফেস সেগ্রিগেশন প্রিন্সিপল
কোনো class-কে এমন method-এর ওপর নির্ভর করতে বা implement করতে বাধ্য করা যাবে না, যা সে ব্যবহার করে না; তাই একটি মোটা interface-এর বদলে কয়েকটি ছোট, নির্দিষ্ট interface.যেখানে শিখবেন: পর্ব ৪৮
Intermediate operationইন্টারমিডিয়েট অপারেশন
filter, map, sorted, limit-এর মতো stream-এর মাঝের ধাপ; এটি নতুন একটি Stream ফেরত দেয় আর শুধু কাজের বর্ণনা জমা রাখে, terminal operation না আসা পর্যন্ত কিছুই চালায় নাযেখানে শিখবেন: পর্ব ৩৫পর্ব ৫৬পর্ব ৫৭
Internal iterationইন্টারনাল ইটারেশন
লুপ চালানোর দায়িত্ব library-র হাতে — আপনি শুধু বলেন প্রতিটি উপাদানের সাথে কী করতে হবে (forEach, stream); library নিজে ঠিক করে ক্রম, অলসতা বা একাধিক threadযেখানে শিখবেন: পর্ব ৩৫
Interning (intern())ইন্টার্নিং
একটি String-এর সমান লেখার object string pool থেকে খুঁজে আনা, না থাকলে pool-এ রেখে দেওয়া। s.intern() সবসময় pool-এর object ফেরত দেয়।যেখানে শিখবেন: পর্ব ০৮পর্ব ৫৬
Interpreterইন্টারপ্রেটার
যে প্রোগ্রাম নির্দেশ একটি একটি করে পড়ে সঙ্গে সঙ্গে চালায়, আগে পুরোটা অনুবাদ না করে। JVM শুরুতে bytecode এভাবেই চালায়যেখানে শিখবেন: পর্ব ০৫
interrupt()ইন্টারাপ্ট
একটি thread-কে থামতে বলার Java-র নিজস্ব সংকেত — শুধু একটি flag বসায়, জোর করে থামায় না। অপেক্ষারত thread-কে জাগিয়ে InterruptedException দেয়; সহযোগিতামূলক বাতিল।যেখানে শিখবেন: পর্ব ৪০
InterruptedExceptionইন্টারাপ্টেড এক্সেপশন
একটি checked exception — sleep, wait বা join-এ অপেক্ষারত thread-কে interrupt করলে ছোড়া হয়। এর মানে কেউ thread-টিকে থামতে অনুরোধ করেছে; চুপচাপ গিলে ফেলা উচিত নয়।যেখানে শিখবেন: পর্ব ৪০
Intrinsic lock (monitor)ইনট্রিনসিক লক
Java-র প্রতিটি object-এর সাথে থাকা জন্মগত তালা, যাকে monitor-ও বলে। synchronized এই তালা নেয় আর ছাড়ে; এটি reentrant, অর্থাৎ একই thread আবার নিতে পারে।যেখানে শিখবেন: পর্ব ৪০
Introduce Parameter Objectইন্ট্রোডিউস প্যারামিটার অবজেক্ট
একসাথে চলাফেরা করা কয়েকটি parameter-কে একটি object-এ (Java-তে প্রায়ই record) জড়ো করার refactoring.যেখানে শিখবেন: পর্ব ৪৮
InvalidClassExceptionইনভ্যালিড ক্লাস এক্সেপশন
java.io-র exception, যা deserialization-এ class নিয়ে সমস্যা হলে আসে — যেমন serialVersionUID না মিললে, বা ObjectInputFilter class-টি নিষেধ করলে।যেখানে শিখবেন: পর্ব ৩৯
Invarianceইনভ্যারিয়েন্স
Java generics-এর নিয়ম: type argument আলাদা হলে দুটি generic টাইপ সম্পর্কহীন — Integer একটি Number হলেও List of Integer কোনো List of Number নয়, যাতে ভুল টাইপ ঢুকতে না পারেযেখানে শিখবেন: পর্ব ২৮পর্ব ৫৭
Invariantইনভ্যারিয়েন্ট
যে নিয়ম একটি object-এর জন্য সবসময় সত্য থাকতে হবে, যেমন ব্যালান্স কখনো ঋণাত্মক নয়যেখানে শিখবেন: পর্ব ০২পর্ব ১৬পর্ব ১৭
Inversion of Control (IoC)ইনভার্শন অব কন্ট্রোল
object বানানো, জোড়া দেওয়া আর কখন কোন কোড চলবে — এই নিয়ন্ত্রণ নিজের কোডের বদলে framework-এর হাতে দেওয়ার নীতি; framework দরকারের সময় আপনার কোড ডাকে।যেখানে শিখবেন: পর্ব ৫০
InvocationHandlerইনভোকেশন হ্যান্ডলার
dynamic proxy-র পেছনের interface, যার একমাত্র method invoke(proxy, method, args); proxy-র প্রতিটি method ডাক এখানে আসে, আর এখান থেকেই আসল object-এ পাঠানো হয়।যেখানে শিখবেন: পর্ব ৪৫
InvocationTargetExceptionইনভোকেশন টার্গেট এক্সেপশন
Method.invoke বা Constructor.newInstance দিয়ে ডাকা কোড নিজে exception ছুড়লে reflection যে মোড়ক-exception দেয়; আসল exception পাওয়া যায় getCause() দিয়ে, আর এর নিজের message সাধারণত null.যেখানে শিখবেন: পর্ব ৪৫
invokeAllইনভোক-অল
ExecutorService-এর method: সব Callable জমা দেয়, সবগুলো শেষ হওয়া পর্যন্ত অপেক্ষা করে, আর কাজের তালিকার একই ক্রমে Future-এর তালিকা দেয়যেখানে শিখবেন: পর্ব ৪১
invokeAnyইনভোক-এনি
ExecutorService-এর method: সব Callable জমা দেয়, যেটি প্রথম সফলভাবে শেষ হয় তার ফল দেয়, আর বাকিগুলো বাতিল করেযেখানে শিখবেন: পর্ব ৪১
invokedynamicইনভোক-ডায়নামিক
JVM-এর একটি bytecode নির্দেশ (Java 7), যেখানে কোন কোড চলবে তা প্রথমবার চলার সময় ঠিক হয়; Java 8-এর lambda আর Java 9 থেকে String-এর + জোড়া এই পথে চলে।যেখানে শিখবেন: পর্ব ০৮পর্ব ২৭পর্ব ৩৪
IoC containerআইওসি কন্টেইনার
যে যন্ত্র class-গুলোর নির্ভরতা বুঝে সঠিক ক্রমে object তৈরি করে, একে অপরের সাথে জুড়ে দেয় আর তাদের জীবনকাল সামলায়; Spring-এ এটি ApplicationContext নামে পরিচিত।যেখানে শিখবেন: পর্ব ৫০
IOExceptionআইও এক্সেপশন
ফাইল, নেটওয়ার্ক বা অন্য ইনপুট-আউটপুটে ব্যর্থতার checked exception, যেমন ফাইল না পাওয়া বা সংযোগ কেটে যাওয়া।যেখানে শিখবেন: পর্ব ২৯পর্ব ৩৭পর্ব ৪৩
IP addressআইপি অ্যাড্রেস
নেটওয়ার্কে একটি যন্ত্রের সংখ্যাভিত্তিক ঠিকানা, যা দিয়ে packet সঠিক মেশিনে পৌঁছায়; যেমন 192.168.0.10 বা 2001:db8::1.যেখানে শিখবেন: পর্ব ৪৩
IPv4আইপি ভি-ফোর
৩২ bit-এর IP ঠিকানা, চারটি ০-২৫৫ সংখ্যায় লেখা (যেমন 127.0.0.1); মোট প্রায় ৪৩০ কোটি ঠিকানা, যা এখন কম পড়ে গেছে।যেখানে শিখবেন: পর্ব ৪৩
IPv6আইপি ভি-সিক্স
১২৮ bit-এর নতুন IP ঠিকানা, হেক্সাডেসিমাল দলে লেখা (যেমন ::1); ঠিকানার অভাব মেটাতে তৈরি, IPv4-এর পাশাপাশি চলছে।যেখানে শিখবেন: পর্ব ৪৩
is-a relationshipইজ-এ সম্পর্ক
একটি class আরেকটির বিশেষ ধরন, যেমন MerchantWallet এক ধরনের Wallet; Java-তে extends দিয়ে inheritance হিসেবে লেখা হয়যেখানে শিখবেন: পর্ব ০২পর্ব ১৯পর্ব ২০
ISO-8601আইএসও এইট্টি সিক্স জিরো ওয়ান
তারিখ-সময় লেখার আন্তর্জাতিক মান: বছর-মাস-দিন, তারপর T আর সময়, যেমন 2026-02-21T09:15; ব্যবধান লেখা হয় P1Y2M বা PT1H30M রূপে। java.time-এর toString আর parse ডিফল্টভাবে এই রূপ মানেযেখানে শিখবেন: পর্ব ৩৮পর্ব ৩৯
Isolation levelআইসোলেশন লেভেল
একসাথে চলা transaction-গুলো একে অপরের বদল কতটা দেখবে তার মাত্রা — READ COMMITTED, REPEATABLE READ, SERIALIZABLE ইত্যাদি; কঠোর হলে নিরাপদ কিন্তু ধীর।যেখানে শিখবেন: পর্ব ৪৯
Iterableইটারেবল
java.lang-এর একটি interface, যার iterator() method একটি Iterator দেয়। যে class এটি মানে, তার ওপর for-each লুপ চালানো যায়; List, Set, Queue-এর মতো সব collection এটি মানে (Map বাদে)।যেখানে শিখবেন: পর্ব ১১পর্ব ২১পর্ব ৩০
Iterationইটারেশন
লুপের body একবার চলা — লুপের একটি ঘোরা। ১০ বার চলা লুপে ১০টি iteration.যেখানে শিখবেন: পর্ব ১১
Iteratorইটারেটর
একটি collection-এর জিনিসগুলো একে একে দেওয়ার object; hasNext() জানায় আর কিছু আছে কি না, next() পরেরটি দেয়, remove() নিরাপদে শেষ পাওয়া জিনিসটি মোছে।যেখানে শিখবেন: পর্ব ১১পর্ব ২৭পর্ব ৩০

J

Jacksonজ্যাকসন
Java-র একটি জনপ্রিয় JSON লাইব্রেরি, যা reflection দিয়ে object বা record-এর field পড়ে JSON বানায় আর উল্টোটাও করে; @JsonProperty দিয়ে JSON-এর নাম বদলানো যায়। JDK-র অংশ নয়।যেখানে শিখবেন: পর্ব ৩৯পর্ব ৪৫পর্ব ৫১
JaCoCoজাকোকো
Java-র প্রচলিত code coverage টুল; Maven বা Gradle plugin হিসেবে চলে আর কোন লাইন ও শাখা টেস্টে চলেছে তার রঙিন রিপোর্ট দেয়যেখানে শিখবেন: পর্ব ৪৭
Jagged arrayজ্যাগড অ্যারে
এমন 2D array যার সারিগুলোর দৈর্ঘ্য আলাদা। Java-তে প্রতিটি সারি আলাদা array object বলে এটি সম্ভব।যেখানে শিখবেন: পর্ব ১৩
Jakarta Bean Validationবিন ভ্যালিডেশন
field-এর ওপর @NotBlank, @Positive, @Pattern-এর মতো annotation দিয়ে ডেটার নিয়ম লেখার Java মান; Spring-এ @Valid লিখলে নিয়মগুলো পরীক্ষা হয়।যেখানে শিখবেন: পর্ব ৫১পর্ব ৫৫
Jakarta EEজাকার্তা ইই
Eclipse Foundation-এ যাওয়ার পরে Java EE-র নতুন নাম; Jakarta EE 9 (২০২০) থেকে এর package javax.* থেকে jakarta.* হয়েছে, আর Spring Boot 3 নতুন নাম ব্যবহার করে।যেখানে শিখবেন: পর্ব ৫০
JAR (Java ARchive)জার
অনেকগুলো .class ফাইল, resource আর একটি manifest একসাথে রাখা zip ফাইল; Java-র library আর প্রোগ্রাম এভাবেই বিতরণ হয়।যেখানে শিখবেন: পর্ব ৪৬
JAR hellজার হেল
classpath-এ JAR হারিয়ে যাওয়া বা একই library-র একাধিক version থাকার কারণে চলার সময় NoClassDefFoundError বা NoSuchMethodError-এর মতো সমস্যা, যা compile-এর সময় ধরা পড়ে না।যেখানে শিখবেন: পর্ব ৪৬
Java Collections Frameworkজাভা কালেকশনস ফ্রেমওয়ার্ক
java.util-এর interface আর class-এর একটি সাজানো পরিবার — Collection, List, Set, Queue, Map আর তাদের ArrayList, HashMap-এর মতো implementation; Joshua Bloch-এর নকশায় JDK 1.2 (১৯৯৮) থেকে আছেযেখানে শিখবেন: পর্ব ৩০পর্ব ৩১
Java Flight Recorder (JFR)জাভা ফ্লাইট রেকর্ডার
JVM-এর ভেতরে থাকা কম-খরচের রেকর্ডিং ব্যবস্থা, যা allocation, GC pause, lock, CPU ইত্যাদি সময়ের সাথে লিখে রাখে; JDK Mission Control দিয়ে দেখা হয়যেখানে শিখবেন: পর্ব ৪৪
Java Memory Model (JMM)জাভা মেমরি মডেল
Java Language Specification-এর অধ্যায় ১৭-এর নিয়ম, যা বলে এক thread-এর লেখা অন্য thread কখন দেখতে পাবে। Java 5-এ (JSR 133) নতুন করে লেখা হয়, কেন্দ্রে happens-before.যেখানে শিখবেন: পর্ব ৪০
java.io.Fileজাভা আইও ফাইল
Java 1.0-এর পুরোনো class, যা ঠিকানা আর ফাইলের কাজ দুটোই করত; ব্যর্থ হলে প্রায়ই শুধু false দেয়, কারণ জানায় না। নতুন কোডে Path আর Files ভালো; toPath() দিয়ে পুরোনো থেকে নতুনে যাওয়া যায়।যেখানে শিখবেন: পর্ব ৩৭
java.lang.Enumজাভা ল্যাং ইনাম
সব Java enum-এর সাধারণ parent class; name(), ordinal(), compareTo(), toString() এখান থেকেই আসে। enum লিখলে compiler নিজে এটি extends করায়, নিজে লেখা যায় না।যেখানে শিখবেন: পর্ব ২৪
java.lang.Objectঅবজেক্ট ক্লাস
Java-র সব class-এর মূল পূর্বপুরুষ; extends না লিখলে class সরাসরি Object-কে extends করে, তাই toString, equals, hashCode, getClass সব object-এই থাকেযেখানে শিখবেন: পর্ব ১৯পর্ব ২৩
java.nio.file (NIO.2)জাভা এনআইও ফাইল
Java 7-এ (JSR 203) আসা ফাইল-সিস্টেমের আধুনিক package; এর মূলে Path (ফাইলের ঠিকানা) আর Files (কাজের static method), সাথে স্পষ্ট exception আর ফাইলের বৈশিষ্ট্য পড়ার ব্যবস্থা।যেখানে শিখবেন: পর্ব ৩৭পর্ব ৫৬পর্ব ৫৭
java.timeজাভা ডট টাইম
Java 8 (২০১৪) থেকে আসা তারিখ-সময়ের আধুনিক package, JSR 310-এর ফল; তারিখ, ঘড়ির সময়, মুহূর্ত আর ব্যবধানের জন্য আলাদা immutable আর thread-safe টাইপ দেয়যেখানে শিখবেন: পর্ব ৩৮পর্ব ৫৭
java.util.Arraysঅ্যারেজ ক্লাস
array নিয়ে কাজের static method-ভরা একটি class — toString, sort, binarySearch, fill, equals, copyOf, deepToString ইত্যাদি।যেখানে শিখবেন: পর্ব ১৩
java.util.Collectionsকালেকশনস ক্লাস
collection নিয়ে কাজের static method-ভরা একটি utility class — sort, reverse, shuffle, max, min, frequency, unmodifiableList ইত্যাদি; Collection interface-এর সাথে গুলিয়ে ফেলবেন নাযেখানে শিখবেন: পর্ব ৩০
java.util.functionজাভা ইউটিল ফাংশন
Java 8-এ আসা package, যেখানে Supplier, Consumer, Function, Predicate-সহ চল্লিশটির বেশি তৈরি functional interface আছে; নিজে interface বানানোর আগে এখানে দেখা উচিত।যেখানে শিখবেন: পর্ব ৩৪
java.util.Objectsঅবজেক্টস ক্লাস
Java 7 থেকে থাকা একটি utility class (Object class নয়), যার static method যেমন Objects.equals(a, b), Objects.hash(...) আর Objects.requireNonNull null-নিরাপদভাবে equals ও hashCode লিখতে সাহায্য করেযেখানে শিখবেন: পর্ব ২৩
JAVA_HOMEজাভা হোম
একটি environment variable, যার মান JDK-র মূল ফোল্ডার (শেষে bin ছাড়া)। java বা javac নিজে এটি পড়ে না; Maven, Gradle, Tomcat ও অনেক IDE এটি দেখে JDK খুঁজে নেয়।যেখানে শিখবেন: পর্ব ০৩
JavaBeansজাভাবিনস
Sun-এর দেওয়া রীতি: খালি constructor আর getX/isX/setX নামের method. Jackson, Spring-এর মতো framework এই নাম দেখে property খুঁজে নেয়।যেখানে শিখবেন: পর্ব ১৭পর্ব ২৫পর্ব ৩৯
javacজাভাক
Java compiler: .java ফাইল পড়ে ব্যাকরণ ও টাইপ যাচাই করে, ভুল না থাকলে প্রতিটি class-এর জন্য bytecode-সহ একটি .class ফাইল লেখে। এটি শুধু JDK-তে থাকে।যেখানে শিখবেন: পর্ব ০১পর্ব ০৩পর্ব ০৪
Javadocজাভাডক
/** দিয়ে শুরু আর */ দিয়ে শেষ বিশেষ comment, যা class বা method-এর আনুষ্ঠানিক পরিচয় লেখে; javadoc টুল এ থেকে HTML ডকুমেন্টেশন বানায়।যেখানে শিখবেন: পর্ব ০৪পর্ব ১২
javapজাভাপ
JDK-র সাথে আসা টুল, যা .class ফাইল খুলে মানুষ পড়তে পারে এমনভাবে দেখায়; javap -c দিলে method-এর bytecode-ও দেখায়যেখানে শিখবেন: পর্ব ০৫পর্ব ২৭পর্ব ৫৬
jcmdজে-সিএমডি
JDK-র কমান্ড-লাইন টুল, যা চলমান JVM-কে নির্দেশ পাঠায়: heap-এর তথ্য, class histogram, heap dump, thread dump বা JFR রেকর্ডিংযেখানে শিখবেন: পর্ব ৪৪
JDBCজে-ডি-বি-সি
Java Database Connectivity — JDK-র java.sql package-এর interface-গুলো (Connection, PreparedStatement, ResultSet ইত্যাদি), যা দিয়ে Java যেকোনো relational ডেটাবেসের সাথে SQL পাঠিয়ে কথা বলে।যেখানে শিখবেন: পর্ব ৪৯পর্ব ৫৫
JDBC driverজেডিবিসি ড্রাইভার
একটি নির্দিষ্ট ডেটাবেসের জন্য JDBC interface-গুলোর implementation, সাধারণত একটি JAR ফাইল (যেমন PostgreSQL-এর জন্য org.postgresql:postgresql). classpath-এ না থাকলে No suitable driver found আসে।যেখানে শিখবেন: পর্ব ৪৯
JDBC URLজেডিবিসি ইউআরএল
কোন ডেটাবেসে, কোথায় যুক্ত হতে হবে তা বলা লেখা, যেমন jdbc:postgresql://localhost:5432/shop বা jdbc:h2:mem:shop. দ্বিতীয় অংশ দেখে driver বাছা হয়।যেখানে শিখবেন: পর্ব ৪৯
JdbcClientজেডিবিসি ক্লায়েন্ট
Spring Framework 6.1 (Spring Boot 3.2) থেকে আসা সরল API, যা দিয়ে সাবলীল ভঙ্গিতে সরাসরি SQL চালানো যায় আর ফল সরাসরি record বা class-এ নেওয়া যায় — ORM ছাড়া রিপোর্ট বা জটিল query-র জন্য সুবিধাজনক।যেখানে শিখবেন: পর্ব ৫২
JdbcTemplate / JdbcClientজেডিবিসি-টেমপ্লেট / জেডিবিসি-ক্লায়েন্ট
Spring-এর JDBC সহায়ক: connection খোলা-বন্ধ, exception অনুবাদ আর সারি থেকে object বানানোর boilerplate নিজে সামলায়; JdbcClient আসে Spring Framework 6.1-এ, আরও সংক্ষিপ্ত রূপে।যেখানে শিখবেন: পর্ব ৪৯
JDK (Java Development Kit)জে-ডি-কে
Java প্রোগ্রাম বানানো ও চালানোর পুরো প্যাকেজ: JVM, standard library আর javac, jshell, jar, javap-এর মতো টুল। প্রোগ্রামারের এটিই দরকার।যেখানে শিখবেন: পর্ব ০১পর্ব ০৩পর্ব ৫৭
JDK distributionজে-ডি-কে ডিস্ট্রিবিউশন
কোনো প্রতিষ্ঠানের OpenJDK সোর্স থেকে build করে বিতরণ করা JDK, যেমন Eclipse Temurin বা Amazon Corretto. ভেতরের Java একই, তফাত লাইসেন্স ও আপডেটের মেয়াদে।যেখানে শিখবেন: পর্ব ০৩
JEP (JDK Enhancement Proposal)জেপ
Java-য় নতুন বৈশিষ্ট্য আনার আনুষ্ঠানিক প্রস্তাব; প্রতিটির একটি নম্বর থাকে, যেমন switch expression এসেছিল JEP 361 প্রস্তাবের মাধ্যমে। প্রস্তাব, আলোচনা, preview, তারপর স্থায়ী — এই পথে বৈশিষ্ট্য আসে।যেখানে শিখবেন: পর্ব ১০পর্ব ১৮পর্ব ২৫
JIT (Just-In-Time) compilerজে-আই-টি
JVM-এর যে অংশ প্রোগ্রাম চলার সময় বারবার চলা bytecode-কে সেই কম্পিউটারের machine code-এ বদলে নেয়, যাতে পরের বার দ্রুত চলে।যেখানে শিখবেন: পর্ব ০১পর্ব ০৫পর্ব ৫৭
Jitter (retry jitter)জিটার
retry-এর অপেক্ষায় ইচ্ছা করে যোগ করা একটু এলোমেলো সময়, যাতে অনেক client একই মুহূর্তে একসাথে আবার চেষ্টা করে সার্ভারকে আবার ডুবিয়ে না দেয়।যেখানে শিখবেন: পর্ব ৪৩
JLS (Java Language Specification)জে-এল-এস
Java ভাষার সরকারি নিয়মগ্রন্থ, যা Oracle প্রতিটি Java সংস্করণের সাথে প্রকাশ করে। মূল্যায়নের ক্রম, overload বাছাই, class initialization-এর ধাপ — সব এখানে নির্দিষ্ট করা থাকে, যেমন §15.7 বা §12.4যেখানে শিখবেন: পর্ব ৫৬
Joda-Timeজোডা-টাইম
Stephen Colebourne-এর তৈরি ওপেন-সোর্স তারিখ-সময় লাইব্রেরি, যা Java 8-এর আগে কার্যত মানদণ্ড ছিল; এর অভিজ্ঞতা থেকে নতুন করে নকশা করা হয় java.timeযেখানে শিখবেন: পর্ব ৩৮
JOINজয়েন
SQL-এ দুটি টেবিলের সারি একটি শর্ত অনুযায়ী মিলিয়ে একসাথে আনা, যেমন অর্ডারের পাশে ক্রেতার নাম: JOIN customers c ON c.id = o.customer_id.যেখানে শিখবেন: পর্ব ৪৯
JOIN FETCHজয়েন ফেচ
JPQL-এর একটি রূপ, যা মূল entity-র সাথে একটি সম্পর্কও একই SQL JOIN-এ এনে ভরে দেয় — যেমন select o from Order o join fetch o.customer; N+1 সমস্যার সবচেয়ে সরাসরি প্রতিকার।যেখানে শিখবেন: পর্ব ৫২
Join tableজয়েন টেবিল
দুই টেবিলের many-to-many সম্পর্ক রাখার তৃতীয় টেবিল, যার প্রতিটি সারিতে দুই দিকের foreign key থাকে — যেমন product_category টেবিলে product_id আর category_id কলাম।যেখানে শিখবেন: পর্ব ৫২
jOOQজুক
Java লাইব্রেরি, যা ডেটাবেসের schema থেকে class তৈরি করে Java method দিয়ে type-safe SQL লিখতে দেয়; SQL-এর অনেক ভুল compile-এর সময়ই ধরা পড়ে।যেখানে শিখবেন: পর্ব ৪৯পর্ব ৫২
JPA (Jakarta Persistence)জে-পি-এ
Java object-কে ডেটাবেস টেবিলের সাথে মেলানোর মানক API; @Entity, @Id-এর মতো annotation দেখে কাজ করে, আর Hibernate এর সবচেয়ে প্রচলিত implementation.যেখানে শিখবেন: পর্ব ৪৫পর্ব ৪৯পর্ব ৫১
JPQLজে-পি-কিউ-এল
Jakarta Persistence Query Language — SQL-এর মতো দেখতে query ভাষা, কিন্তু টেবিল ও কলামের বদলে entity আর field-এর নাম ব্যবহার করে; ORM একে ডেটাবেসের SQL-এ বদলায়। Hibernate-এর নিজস্ব রূপ HQL.যেখানে শিখবেন: পর্ব ৫২
JRE (Java Runtime Environment)জে-আর-ই
JVM আর standard library — শুধু তৈরি প্রোগ্রাম চালানোর জন্য, এতে compiler নেই। Java 11 থেকে Oracle আলাদা JRE দেয় না।যেখানে শিখবেন: পর্ব ০১পর্ব ০৩পর্ব ৫৭
JShellজে-শেল
Java 9 থেকে JDK-র সাথে আসা Java-র REPL. class বা main ছাড়াই এক লাইন Java লিখে সঙ্গে সঙ্গে ফল দেখা যায়; /vars, /list, /exit-এর মতো নিজস্ব কমান্ড আছে।যেখানে শিখবেন: পর্ব ০৩পর্ব ৫৬পর্ব ৫৭
JSON (JavaScript Object Notation)জেসন
ডেটা আদান-প্রদানের লেখাভিত্তিক ফরম্যাট, যাতে আছে শুধু object, array, string, number, true/false আর null. ভাষা-নিরপেক্ষ, তাই আজকের ওয়েব ও মোবাইল API-র প্রধান ভাষা; মান RFC 8259 ও ECMA-404যেখানে শিখবেন: পর্ব ৩৯পর্ব ৫১
jstatজে-স্ট্যাট
JDK-র টুল, যা চলমান JVM-এর eden, survivor, old অংশ কত ভরা আর কতবার GC হলো, নির্দিষ্ট বিরতিতে দেখায়যেখানে শিখবেন: পর্ব ৪৪
JUnitজে-ইউনিট
Java-র সবচেয়ে প্রচলিত টেস্টিং framework (এখন JUnit 5); @Test লেখা method reflection দিয়ে খুঁজে চালায় আর পাস/ফেলের রিপোর্ট দেয়। JDK-র অংশ নয়।যেখানে শিখবেন: পর্ব ৪৫পর্ব ৪৭পর্ব ৪৯
JUnit Jupiterজে-ইউনিট জুপিটার
JUnit 5-এর যে অংশে টেস্ট লেখার annotation (@Test, @BeforeEach) আর assertion থাকে; JUnit 5 = Platform (চালানোর ইঞ্জিন) + Jupiter + Vintage (পুরোনো JUnit 4 টেস্টের জন্য)যেখানে শিখবেন: পর্ব ৪৭
JVM (Java Virtual Machine)জে-ভি-এম
যে প্রোগ্রাম .class ফাইলের bytecode লোড করে, যাচাই করে আর আপনার কম্পিউটারে চালায়; মেমরিও সামলায়। প্রতিটি OS-এর জন্য আলাদা JVM থাকে।যেখানে শিখবেন: পর্ব ০১পর্ব ০৩পর্ব ০৪
JWT (JSON Web Token)জে-ডব্লিউ-টি
header.payload.signature — তিন অংশের স্বাক্ষর করা token (RFC 7519, ২০১৫)। payload যে কেউ পড়তে পারে, কিন্তু key ছাড়া বদলালে স্বাক্ষর মেলে না।যেখানে শিখবেন: পর্ব ৫৩পর্ব ৫৭পর্ব ৫৮

K

Kadane's algorithmকাদানে অ্যালগরিদম
একবার পার হয়ে O(n) সময়ে সর্বোচ্চ যোগফলের টানা subarray খোঁজার পদ্ধতি; প্রতিটি ঘরে ঠিক করা হয় আগের অংশ টেনে নেব, নাকি এখান থেকে নতুন শুরু করবযেখানে শিখবেন: পর্ব ৫৯
Key derivation function (KDF)কি ডেরিভেশন ফাংশন
পাসওয়ার্ড আর salt থেকে ইচ্ছা করে ধীর, ব্যয়বহুল পদ্ধতিতে hash বা key বানানোর ফাংশন — যেমন bcrypt, Argon2, scrypt, PBKDF2.যেখানে শিখবেন: পর্ব ৫৩
Key extractorকি এক্সট্র্যাক্টর
যে function একটি object থেকে তুলনার মানটি বের করে দেয়, যেমন Student::gpa; Comparator.comparing এটা নিয়ে পুরো Comparator বানিয়ে দেয়যেখানে শিখবেন: পর্ব ৩৩
Key rotationকি রোটেশন
পুরোনো secret key বাতিল করে নতুন key বসানো — ফাঁস হলে সঙ্গে সঙ্গে, আর নিয়মিতও। JWT-এর key বদলালে পুরোনো সব token অবৈধ হয়ে যায়।যেখানে শিখবেন: পর্ব ৫৩
Keywordকিওয়ার্ড
Java-র নিজের জন্য সংরক্ষিত শব্দ, যেমন class, public, static, void, if — এগুলো দিয়ে variable বা class-এর নাম রাখা যায় না।যেখানে শিখবেন: পর্ব ০৪পর্ব ০৬
KISS (Keep It Simple)কিস
একই কাজের কয়েকটি সমাধানের মধ্যে সবচেয়ে সরল আর সহজে বোঝা যায় এমনটি বেছে নেওয়ার নীতি।যেখানে শিখবেন: পর্ব ৪৮
Kotlinকটলিন
JetBrains-এর তৈরি একটি static টাইপের ভাষা, যা JVM-এ চলে আর Java-র সাথে একই প্রজেক্টে মিলেমিশে কাজ করে; ২০১৯ থেকে Android-এর জন্য Google-এর প্রথম পছন্দ।যেখানে শিখবেন: পর্ব ০১পর্ব ৩৬পর্ব ৪৬

L

Labeled break / continueলেবেলড ব্রেক
লুপের আগে নাম ও কোলন (যেমন outer:) বসিয়ে break outer; বা continue outer; লেখা — ভেতরের লুপ থেকে সরাসরি নাম দেওয়া বাইরের লুপ থামানো বা তার পরের ঘোরায় যাওয়া।যেখানে শিখবেন: পর্ব ১১
Lambda calculusল্যাম্বডা ক্যালকুলাস
১৯৩০-এর দশকে Alonzo Church-এর তৈরি গণনার গাণিতিক মডেল, যেখানে শুধু ভ্যারিয়েবল, function তৈরি (λ) আর function প্রয়োগ দিয়ে যেকোনো গণনা প্রকাশ করা যায়; lambda নামটি এখান থেকেই।যেখানে শিখবেন: পর্ব ৩৪
lambda expressionল্যাম্বডা এক্সপ্রেশন
নামহীন ছোট একটি ফাংশনের মতো কোড, যেমন (a, b) -> a + b; Java 8 থেকে এটি একটি functional interface-এর object হিসেবে ব্যবহার হয়।যেখানে শিখবেন: পর্ব ১৮পর্ব ২১পর্ব ২৪
LambdaMetafactoryল্যাম্বডা-মেটাফ্যাক্টরি
java.lang.invoke-এর class, যাকে invokedynamic প্রথমবার চলার সময় ডাকে; সে চলার সময়েই lambda-র জন্য functional interface-এর implementation তৈরি করে দেয়, তাই lambda-র জন্য আলাদা .class ফাইল লাগে না।যেখানে শিখবেন: পর্ব ২৭পর্ব ৩৪
Latencyলেটেন্সি
একটি অনুরোধের উত্তর পেতে কত সময় লাগে; প্রায়ই p99 (৯৯% অনুরোধ এর মধ্যে) হিসেবে মাপা হয়। GC pause সরাসরি latency বাড়ায়যেখানে শিখবেন: পর্ব ৪৪
Layered architectureলেয়ারড আর্কিটেকচার
প্রোগ্রামকে দায়িত্ব অনুযায়ী স্তরে ভাগ করার নকশা — যেমন Controller (HTTP), Service (ব্যবসার নিয়ম), Repository (ডেটা); প্রতিটি স্তর শুধু নিচের স্তরকে ডাকে।যেখানে শিখবেন: পর্ব ৫১পর্ব ৫৫
Lazy evaluationলেজি ইভ্যালুয়েশন
দরকার না পড়া পর্যন্ত হিসাব না করা; Java stream-এ intermediate ধাপগুলো terminal operation আসার পরেই চলে, আর শুধু ততগুলো উপাদানের ওপর, যতগুলো ফলের জন্য লাগেযেখানে শিখবেন: পর্ব ৩৫পর্ব ৩৬পর্ব ৫৬
Lazy loadingলেজি লোডিং
সম্পর্কিত ডেটা প্রথমবার ছোঁয়া পর্যন্ত না আনা; Hibernate আসল object-এর জায়গায় একটি proxy বা খালি সংগ্রহ বসায়, যা প্রথম ব্যবহারে SELECT চালায়। খোলা persistence context লাগে।যেখানে শিখবেন: পর্ব ৫২
Leap secondলিপ সেকেন্ড
পৃথিবীর ঘূর্ণনের সাথে মেলাতে ১৯৭২ থেকে মাঝে মাঝে UTC-তে যোগ করা বাড়তি এক সেকেন্ড (২৩:৫৯:৬০); Java-র Instant এটি আলাদা দেখায় না, দিনের শেষে ছড়িয়ে দেওয়া মাপকাঠি ব্যবহার করেযেখানে শিখবেন: পর্ব ৩৮
Legacy date API (Date, Calendar)লিগ্যাসি ডেট এপিআই
java.util.Date, java.util.Calendar আর java.text.SimpleDateFormat — Java-র পুরোনো তারিখ-সময়ের class, যেগুলো mutable, Calendar-এ মাস ০ থেকে গোনা, আর SimpleDateFormat thread-safe নয়; নতুন কোডে java.time ব্যবহার করা হয়যেখানে শিখবেন: পর্ব ৩৮
Libraryলাইব্রেরি
অন্যের লেখা তৈরি কোডের সংগ্রহ, যা আপনি নিজের প্রোগ্রাম থেকে ডেকে ব্যবহার করেন; কখন ডাকবেন, সেটা আপনি ঠিক করেন।যেখানে শিখবেন: পর্ব ০১পর্ব ৩৯পর্ব ৪৬
LIFO (Last In, First Out)লিফো
যে সবশেষে ঢুকেছে সে সবার আগে বের হবে — থালার স্তূপ বা ব্রাউজারের Back বোতামের নিয়ম। Stack এই নিয়মে চলেযেখানে শিখবেন: পর্ব ৩২পর্ব ৫৯
Line separatorলাইন সেপারেটর
লাইন শেষ বোঝানোর অক্ষর: Windows-এ CR LF (\r\n), Linux ও Mac-এ LF (\n); printf-এর %n আর System.lineSeparator() চলতি অপারেটিং সিস্টেমেরটি দেয়।যেখানে শিখবেন: পর্ব ০৯পর্ব ৩৭
LinkedHashMapলিংকড হ্যাশম্যাপ
HashMap, যার entry-গুলো একটি দুই-দিকের linked list দিয়েও জোড়া; ঘোরালে ঢোকানোর ক্রম, অথবা constructor-এ accessOrder true দিলে ব্যবহারের ক্রম আসে। removeEldestEntry override করে LRU cache বানানো যায়যেখানে শিখবেন: পর্ব ৩১পর্ব ৫৮পর্ব ৫৯
LinkedHashSetলিংকড হ্যাশসেট
HashSet-এর মতোই দ্রুত (গড়ে O(1)), কিন্তু উপাদানগুলো একটি linked list দিয়েও জোড়া থাকে, তাই ঘোরালে প্রথম ঢোকানোর ক্রমে আসেযেখানে শিখবেন: পর্ব ৩১
LinkedListলিংকড লিস্ট
java.util-এর একটি List (আর Deque), যা প্রতিটি উপাদান আলাদা node-এ রাখে আর node-গুলো আগের ও পরের reference দিয়ে জোড়া; দুই প্রান্তে যোগ-বাদ দ্রুত, কিন্তু index ধরে get ধীরযেখানে শিখবেন: পর্ব ৩০পর্ব ৩২পর্ব ৫৮
Liquibaseলিকুইবেস
Flyway-র মতো একটি database migration টুল; schema-র বদল changelog ফাইলে (XML, YAML, JSON বা SQL) লেখা হয়, আর কোনটি চলেছে তা ডেটাবেসের একটি টেবিলে মনে রাখে।যেখানে শিখবেন: পর্ব ৫২
Liskov Substitution Principle (LSP)লিসকভ সাবস্টিটিউশন প্রিন্সিপল
যেখানে parent টাইপের object চলে, সেখানে যেকোনো subclass-এর object বসালেও প্রোগ্রাম ঠিকভাবে চলবে — subclass parent-এর প্রতিশ্রুতি ভাঙবে না; Barbara Liskov ১৯৮৭ সালে এই ধারণা দেনযেখানে শিখবেন: পর্ব ১৯পর্ব ২৩পর্ব ৪৮
Listলিস্ট
ক্রম মেনে অনেক জিনিস রাখার একটি collection; List of Integer লিখলে তাতে শুধু পূর্ণসংখ্যা রাখা যায়। List.of দিয়ে বানানো তালিকা বদলানো যায় না।যেখানে শিখবেন: পর্ব ০১পর্ব ১১পর্ব ২১
Literalলিটারাল
কোডে সরাসরি লেখা মান, যেমন 42, 10L, 3.5f, 'অ', true বা "ঢাকা". প্রতিটি literal-এর নিজস্ব টাইপ আছে: 42 হলো int, 3.5 হলো double.যেখানে শিখবেন: পর্ব ০৬
Little's lawলিটলস ল
L = λW: একটি স্থিতিশীল সিস্টেমে গড়ে কতজন আছে (L) = গড় আসার হার (λ) × প্রত্যেকের গড় থাকার সময় (W) — John D. C. Little ১৯৬১ সালে সাধারণ প্রমাণ দেনযেখানে শিখবেন: পর্ব ৩২পর্ব ৪১পর্ব ৪২
Load factorলোড ফ্যাক্টর
hash table কতটা ভরলে বড় করা হবে, তার অনুপাত; Java-র HashMap-এ ডিফল্ট ০.৭৫, অর্থাৎ entry-র সংখ্যা ঘরের সংখ্যা × ০.৭৫ ছাড়ালে টেবিল দ্বিগুণ হয়যেখানে শিখবেন: পর্ব ৩১পর্ব ৫৮পর্ব ৫৯
Local classলোকাল ক্লাস
একটি method বা block-এর ভেতরে নাম দিয়ে ঘোষিত class; শুধু সেই block-এর ভেতরেই ব্যবহার করা যায় আর সেখানকার final বা effectively final local variable পড়তে পারে।যেখানে শিখবেন: পর্ব ২৭
Local recordলোকাল রেকর্ড
একটি method-এর ভেতরে ঘোষিত record, যা শুধু সেই method-এর ভেতরে ব্যবহার করা যায়; Java 16 থেকে চলে। এটি নিজে থেকে static, তাই বাইরের method-এর local variable ব্যবহার করতে পারে না।যেখানে শিখবেন: পর্ব ২৫
Local repository (~/.m2)লোকাল রিপোজিটরি
আপনার কম্পিউটারের যে ফোল্ডারে Maven নামানো সব JAR আর pom জমা রাখে (ডিফল্টে ~/.m2/repository), যাতে পরের build-এ আবার নামাতে না হয়।যেখানে শিখবেন: পর্ব ৪৬
Local variableলোকাল ভ্যারিয়েবল
method বা block-এর ভেতরে ঘোষণা করা ভ্যারিয়েবল। শুধু সেই block-এর ভেতর থেকে দেখা যায়, আর মান না দিয়ে পড়তে গেলে compile error হয়।যেখানে শিখবেন: পর্ব ০৬পর্ব ১২
LocalDateলোকাল ডেট
java.time-এর immutable টাইপ, যা শুধু একটি ক্যালেন্ডার-তারিখ রাখে — ঘণ্টা-মিনিট বা টাইম জোন ছাড়া; জন্মদিন, পরীক্ষার দিন বা কিস্তির তারিখের জন্যযেখানে শিখবেন: পর্ব ৩৮পর্ব ৫৬
LocalDateTimeলোকাল ডেট টাইম
তারিখ আর সময় একসাথে, কিন্তু টাইম জোন ছাড়া; তাই একা কোনো নির্দিষ্ট মুহূর্ত বোঝায় না। বিশ্বব্যাপী ঘটনা রাখতে এটি ব্যবহার করা একটি সাধারণ ভুলযেখানে শিখবেন: পর্ব ৩৮
Localeলোকেল
ভাষা আর দেশের পরিচয় (যেমন Locale.US, bn-BD), যা ঠিক করে সংখ্যায় দশমিক ও হাজারের চিহ্ন, অঙ্কের রূপ, তারিখের ধরন; না দিলে অপারেটিং সিস্টেমের ডিফল্ট locale ব্যবহার হয়।যেখানে শিখবেন: পর্ব ০৯পর্ব ৩৩পর্ব ৩৮
LocalTimeলোকাল টাইম
শুধু দেয়ালঘড়ির সময় (যেমন 09:00) রাখার immutable টাইপ, কোনো তারিখ বা জোন ছাড়া; প্রতিদিনের নিয়ম যেমন অফিস খোলার সময় বোঝাতেযেখানে শিখবেন: পর্ব ৩৮
Lock orderingলক অর্ডারিং
একাধিক তালা লাগলে সব thread একই নির্দিষ্ট ক্রমে (যেমন ছোট id আগে) তালা নেবে — এই নিয়ম। চক্রাকার অপেক্ষা অসম্ভব করে deadlock ঠেকায়।যেখানে শিখবেন: পর্ব ৪০পর্ব ৫৮পর্ব ৫৯
Log levelলগ লেভেল
একটি log বার্তার গুরুত্ব: TRACE, DEBUG, INFO, WARN, ERROR; নির্দিষ্ট level-এর নিচের বার্তা ছাপা হয় না, তাই কনফিগারেশন দিয়ে কতটা বিস্তারিত দেখবেন তা ঠিক করা যায়।যেখানে শিখবেন: পর্ব ১৪পর্ব ৫০
Log4Shell (CVE-2021-44228)লগফোরশেল
২০২১ সালের ডিসেম্বরে Apache Log4j 2 লগিং library-তে প্রকাশিত গুরুতর দুর্বলতা; অনেক প্রজেক্টে এটা transitive dependency হিসেবে ছিল, তাই খুঁজে বের করা আর আপগ্রেড করা বড় চ্যালেঞ্জ হয়েছিল।যেখানে শিখবেন: পর্ব ৪৬পর্ব ৫৩
Loggingলগিং
চলমান প্রোগ্রামের ঘটনা — অর্ডার, error, সতর্কতা — সময় ও মাত্রাসহ লিখে রাখা, যাতে পরে ডেভেলপার সমস্যা খুঁজতে পারেন; Java-তে সাধারণত SLF4J আর Logback দিয়ে।যেখানে শিখবেন: পর্ব ৫৩পর্ব ৫৫
Logical operatorলজিক্যাল অপারেটর
boolean মান জোড়া বা উল্টানোর অপারেটর: && (এবং), || (অথবা), ! (না)যেখানে শিখবেন: পর্ব ০৭
Lombokলম্বক
একটি জনপ্রিয় তৃতীয় পক্ষের লাইব্রেরি, যা @Getter, @Setter, @Data-র মতো annotation দেখে compile-এর সময় getter, setter, equals, toString ইত্যাদি কোড তৈরি করে দেয়। JDK-র অংশ নয়।যেখানে শিখবেন: পর্ব ১৭পর্ব ২৩পর্ব ২৫
Long parameter listলং প্যারামিটার লিস্ট
একটি method-এ অনেকগুলো parameter (প্রায়ই পাঁচ-ছয়টির বেশি), যাতে ডাকার সময় ক্রম গুলিয়ে যায়; ওষুধ সাধারণত একটি parameter object.যেখানে শিখবেন: পর্ব ৪৮
LongAdderলং অ্যাডার
Java 8 থেকে আসা একটি counter class, যা ভেতরে কয়েকটি আলাদা ঘরে যোগ রাখে আর sum() ডাকলে সব যোগ করে। অনেক thread একসাথে বাড়ালে AtomicLong-এর চেয়ে দ্রুত।যেখানে শিখবেন: পর্ব ৪০পর্ব ৫৯
Lookahead / lookbehindলুকঅ্যাহেড / লুকবিহাইন্ড
বর্তমান অবস্থান থেকে সামনে (?=...) বা পেছনে (?<=...) কিছু আছে কি না দেখার শর্ত, যা কোনো অক্ষর খায় না; না-থাকা দেখতে (?!...) আর (?<!...).যেখানে শিখবেন: পর্ব ১৪
Loopলুপ
একটি শর্ত যতক্ষণ সত্য ততক্ষণ একই কোড বারবার চালানোর কাঠামো। Java-তে চার রকম: for, while, do-while আর for-each.যেখানে শিখবেন: পর্ব ১১
Loop unrollingলুপ আনরোলিং
compiler-এর অপ্টিমাইজেশন, যেখানে লুপের প্রতিটি ঘোরায় body কয়েকবার বসিয়ে মোট ঘোরা কমানো হয় — শর্ত যাচাই ও jump কমে, CPU একসাথে বেশি নির্দেশ চালাতে পারে।যেখানে শিখবেন: পর্ব ১১
Loop variableলুপ ভ্যারিয়েবল
লুপ কতদূর এগোল তা গোনার ভ্যারিয়েবল, যেমন for (int i = 0; ...)-এর i. for-এর init-এ তৈরি হলে শুধু লুপের ভেতরে ব্যবহার করা যায়।যেখানে শিখবেন: পর্ব ১১
Loopback address (localhost)লুপব্যাক অ্যাড্রেস
127.0.0.1 বা ::1, নাম localhost — “এই কম্পিউটারই”; এখানে পাঠানো ডেটা নেটওয়ার্ক কার্ডে না গিয়ে OS-এর ভেতরেই ফিরে আসে। Java-তে InetAddress.getLoopbackAddress().যেখানে শিখবেন: পর্ব ৪৩
Lost updateলস্ট আপডেট
দুই thread একই পুরোনো মান পড়ে নিজের নতুন মান লেখে, ফলে একজনের পরিবর্তন অন্যজনের লেখায় মুছে যায়। Race condition-এর সবচেয়ে প্রচলিত রূপ।যেখানে শিখবেন: পর্ব ৪০পর্ব ৪৯পর্ব ৫২
Lower-bounded wildcard (? super T)লোয়ার-বাউন্ডেড ওয়াইল্ডকার্ড
T বা তার যেকোনো supertype-এর তালিকা বোঝায়; তাতে T ঢোকানো সবসময় নিরাপদ, কিন্তু পড়লে শুধু Object পাওয়া যায় — consumer-এর জন্যযেখানে শিখবেন: পর্ব ২৮
LRU cacheএলআরইউ ক্যাশ
Least Recently Used — নির্দিষ্ট আকারের cache, যা জায়গা ফুরালে সবচেয়ে বেশি সময় ধরে ব্যবহার না হওয়া জিনিসটি ফেলে দেয়। Java-তে access order-এর LinkedHashMap আর removeEldestEntry দিয়ে সহজে বানানো যায়যেখানে শিখবেন: পর্ব ৩১পর্ব ৪৪
LTS (Long-Term Support)এল-টি-এস
যে Java version-এ বহু বছর নিরাপত্তা ও ত্রুটি-সংশোধনের আপডেট আসে, যেমন Java 17, 21, 25. কোম্পানিগুলো সাধারণত LTS version-এই থাকে।যেখানে শিখবেন: পর্ব ০১পর্ব ০৩

M

M:N schedulingএম-এন শিডিউলিং
অনেক (M) হালকা thread-কে অল্প কয়েকটি (N) OS thread-এর ওপর পালা দিয়ে চালানোর পদ্ধতি; Java virtual thread আর Go-র goroutine এভাবে চলেযেখানে শিখবেন: পর্ব ৪২
Machine codeমেশিন কোড
CPU সরাসরি যে 0/1-এর নির্দেশ বোঝে ও চালায়; প্রতিটি CPU পরিবারের (x86, ARM) machine code আলাদাযেখানে শিখবেন: পর্ব ০৫
Magic numberম্যাজিক নাম্বার
কোডের ভেতরে ব্যাখ্যা ছাড়া সরাসরি বসানো সংখ্যা, যেমন if (status == 2) — 2 মানে কী, পড়ে বোঝা যায় না; নামযুক্ত constant বা enum দিয়ে বদলানো উচিত।যেখানে শিখবেন: পর্ব ২৪পর্ব ৪৮
main methodমেইন মেথড
প্রচলিত রূপ public static void main(String[] args) — যে method খুঁজে JVM প্রোগ্রাম চালানো শুরু করে। নাম main আর String[] parameter থাকতেই হয়; Java 25-এ একটি সহজ রূপও চলে।যেখানে শিখবেন: পর্ব ০৪
MalformedInputExceptionম্যালফর্মড ইনপুট এক্সেপশন
ফাইলের byte যখন নির্দিষ্ট charset-এর নিয়মে বৈধ অক্ষর হয় না (যেমন UTF-8 ধরে অন্য encoding-এর ফাইল পড়া), তখন যে IOException আসে।যেখানে শিখবেন: পর্ব ৩৭
Manifest (MANIFEST.MF)ম্যানিফেস্ট
JAR-এর ভেতরের META-INF/MANIFEST.MF ফাইল, যেখানে JAR সম্পর্কে তথ্য থাকে; java -jar এখানে Main-Class খুঁজে সেই class-এর main চালায়।যেখানে শিখবেন: পর্ব ৪৬
Map (java.util.Map)ম্যাপ
key থেকে value-তে যাওয়ার interface — প্রতিটি key একবারই থাকে, প্রতিটির সাথে একটি value. Map, Collection interface-এর অংশ নয়; প্রধান implementation HashMap, LinkedHashMap আর TreeMapযেখানে শিখবেন: পর্ব ৩১
Map.Entryম্যাপ এন্ট্রি
Map-এর একটি key-value জোড়া; getKey() আর getValue() দিয়ে দুটি অংশ পাওয়া যায়। entrySet() ঘোরালে প্রতিটি উপাদান একটি Map.Entry, আর Map.entry(k, v) দিয়ে নতুন একটি বানানো যায়যেখানে শিখবেন: পর্ব ৩১
Mark wordমার্ক ওয়ার্ড
Object header-এর ৮ বাইটের অংশ, যাতে identity hash, GC-র দেওয়া বয়স আর lock-এর অবস্থা রাখা হয়যেখানে শিখবেন: পর্ব ৪৪
Mark-compactমার্ক-কমপ্যাক্ট
GC অ্যালগরিদম: জীবিত object চিহ্নিত করার পর তাদের heap-এর এক প্রান্তে সরিয়ে গুছিয়ে রাখে আর সব reference নতুন ঠিকানায় বদলায়যেখানে শিখবেন: পর্ব ৪৪
Mark-sweepমার্ক-সুইপ
GC অ্যালগরিদম: আগে root থেকে জীবিত object চিহ্নিত করে, তারপর heap ঘুরে অচিহ্নিত জায়গাগুলো খালি তালিকায় ফেরত দেয়। object সরায় না, তাই fragmentation হয়যেখানে শিখবেন: পর্ব ৪৪
marker interfaceমার্কার ইন্টারফেস
একটিও method ছাড়া interface, যা শুধু একটি চিহ্ন হিসেবে কাজ করে, যেমন Serializable বা Cloneable.যেখানে শিখবেন: পর্ব ২১পর্ব ৩৯পর্ব ৪৫
Matcher (java.util.regex.Matcher)ম্যাচার
একটি Pattern-কে একটি নির্দিষ্ট লেখার ওপর চালানোর object; pattern.matcher(text) দিয়ে পাওয়া যায়, আর matches(), find(), group(), start(), end() দেয়। এটি thread-safe নয়।যেখানে শিখবেন: পর্ব ১৪
MatchExceptionম্যাচ এক্সেপশন
Java 21-এর একটি runtime exception: compiler যে pattern switch-কে সম্পূর্ণ বলে মেনেছিল, চলার সময় কোনো case না মিললে (যেমন switch আবার compile না করে নতুন উপ-টাইপ যোগ হলে) এটি ছোড়া হয়।যেখানে শিখবেন: পর্ব ২৬
Mavenমেভেন
Java-র জনপ্রিয় build tool. pom.xml ফাইলে লেখা বর্ণনা দেখে library নামায়, compile করে, টেস্ট চালায় আর .jar বানায়।যেখানে শিখবেন: পর্ব ০১পর্ব ০৩পর্ব ৩৯
Maven Centralমেভেন সেন্ট্রাল
Java জগতের সবচেয়ে বড় উন্মুক্ত library-ভান্ডার; Maven বা Gradle এখান থেকে নাম ও version দেখে library নামিয়ে প্রজেক্টে জুড়ে দেয়।যেখানে শিখবেন: পর্ব ০১পর্ব ৪৬
Maven coordinates (GAV)মেভেন কোঅর্ডিনেটস
groupId:artifactId:version — Maven জগতে প্রতিটি প্রজেক্ট বা library-র অনন্য ঠিকানা; যেমন com.fasterxml.jackson.core:jackson-databind:2.17.2.যেখানে শিখবেন: পর্ব ৪৬
Maven plugin ও goalমেভেন প্লাগইন
Maven-এর আসল কাজ করা অংশ; প্রতিটি plugin-এর এক বা একাধিক goal থাকে (যেমন compiler:compile), যা কোনো lifecycle phase-এ বাঁধা থাকে বা সরাসরি চালানো যায়।যেখানে শিখবেন: পর্ব ৪৬
Maven Surefireশিওরফায়ার
mvn test-এর সময় unit test চালানো Maven plugin; ডিফল্টে Test দিয়ে শুরু বা Test, Tests, TestCase দিয়ে শেষ হওয়া class খোঁজে আর Tests run, Failures, Errors, Skipped রিপোর্ট দেয়যেখানে শিখবেন: পর্ব ৪৭
Max-heapম্যাক্স-হিপ
যে heap-এ প্রতিটি অভিভাবক তার সন্তানদের চেয়ে বড় বা সমান, তাই সবচেয়ে বড় জিনিস শিকড়ে। Java-তে new PriorityQueue(Comparator.reverseOrder()) দিয়ে পাওয়া যায়যেখানে শিখবেন: পর্ব ৩২
MCQ (Multiple Choice Question)এম-সি-কিউ
বহুনির্বাচনী প্রশ্ন — কয়েকটি অপশন দেওয়া থাকে, সাধারণত চারটি, যার মধ্যে একটি সঠিক উত্তর বেছে নিতে হয়।যেখানে শিখবেন: পর্ব ৫৭
Memoizationমেমোইজেশন
একটি function-এর প্রতিটি ইনপুটের ফল প্রথমবার হিসাব করে একটি টেবিল বা Map-এ লিখে রাখা, আর পরের বার আবার হিসাব না করে সেখান থেকে পড়া; top-down DP-র মূল কৌশলযেখানে শিখবেন: পর্ব ৫৪পর্ব ৫৮পর্ব ৫৯
Memory leakমেমরি লিক
আর দরকার নেই এমন object-কে ভুল করে ধরে রাখা, যাতে garbage collector সেগুলো সরাতে পারে না আর মেমরি ধীরে ধীরে ফুরায়; Java-তে প্রায়ই static collection-এ শুধু যোগ করে কখনো না মোছার ফলে হয়।যেখানে শিখবেন: পর্ব ১৮পর্ব ২৭পর্ব ৪৪
Memory-mapped fileমেমরি ম্যাপড ফাইল
অপারেটিং সিস্টেম ফাইলের একটি অংশকে প্রোগ্রামের মেমরির ঠিকানায় বসিয়ে দেয়, ফলে ফাইল পড়া-লেখা array-র মতো মেমরি ছোঁয়া হয়ে যায়; Java-তে FileChannel.map.যেখানে শিখবেন: পর্ব ৩৭
merge() (Map)মার্জ
Map-এর method (Java 8 থেকে): merge(key, value, f) — key না থাকলে value বসায়, থাকলে f(পুরোনো মান, value)-এর ফল বসায়; f null দিলে key মুছে যায়। গোনার জন্য merge(w, 1, Integer::sum)যেখানে শিখবেন: পর্ব ৩১পর্ব ৪০পর্ব ৫৪
Message framingমেসেজ ফ্রেমিং
byte-স্রোতের মধ্যে একটি message কোথায় শুরু আর কোথায় শেষ, তা চেনার নিয়ম — যেমন প্রতিটির শেষে newline, বা আগে দৈর্ঘ্য পাঠানো, যাকে বলে length prefix.যেখানে শিখবেন: পর্ব ৪৩
Message passingমেসেজ পাসিং
একটি object আরেকটি object-কে কাজের অনুরোধ পাঠায় আর গ্রহণকারী নিজেই ঠিক করে কীভাবে সাড়া দেবে; Java-তে এটা method call, যেমন wallet.pay(500)যেখানে শিখবেন: পর্ব ০২পর্ব ১৫
Meta-annotationমেটা-অ্যানোটেশন
যে annotation অন্য annotation-এর গায়ে বসে তার আচরণ ঠিক করে, যেমন @Retention, @Target, @Inherited, @Repeatable আর @Documented.যেখানে শিখবেন: পর্ব ৪৫
Metacharacterমেটাক্যারেক্টার
regex-এ যে অক্ষরের বিশেষ মানে আছে, যেমন . * + ? ^ $ | ( ) [ ] { } আর backslash; হুবহু অর্থে চাইলে সামনে backslash দিয়ে escape করতে হয়।যেখানে শিখবেন: পর্ব ১৪
Metaspaceমেটাস্পেস
Java 8 থেকে JVM যেখানে লোড হওয়া class-এর তথ্য রাখে — heap-এর বাইরে, OS-এর কাছ থেকে নেওয়া মেমরিতে; পুরোনো PermGen-এর জায়গা নিয়েছেযেখানে শিখবেন: পর্ব ০৫পর্ব ০৮পর্ব ১৮
Methodমেথড
class-এর ভেতরে লেখা নামযুক্ত কোডের অংশ, যা ডাকলে একটি কাজ করে; অন্য ভাষার ফাংশনের মতো, তবে Java-তে সবসময় কোনো class-এর সদস্যযেখানে শিখবেন: পর্ব ০২পর্ব ০৪পর্ব ১২
Method chainingমেথড চেইনিং
একটি method-এর ফেরত দেওয়া object-এর ওপর সরাসরি পরের method ডাকা, যেমন a.b().c(); সাধারণত method নিজে return this করে বলে সম্ভব হয়।যেখানে শিখবেন: পর্ব ১৬
Method hidingমেথড হাইডিং
Subclass-এ superclass-এর একই signature-এর static method লেখা। Static method object-এর নয়, class-এর, তাই কোনটি চলবে তা compile-এর সময় static type দেখে ঠিক হয় — polymorphism হয় না।যেখানে শিখবেন: পর্ব ১৮পর্ব ১৯পর্ব ২০
Method overloadingমেথড ওভারলোডিং
একই class-এ একই নামের একাধিক method, যাদের parameter-তালিকা আলাদা। কোনটা চলবে, compiler তা argument দেখে compile-এর সময়েই ঠিক করে।যেখানে শিখবেন: পর্ব ১২পর্ব ২০পর্ব ২৩
Method overridingমেথড ওভাররাইডিং
Subclass-এ superclass-এর একটি instance method হুবহু একই signature-এ নতুন করে লেখা। কোন সংস্করণ চলবে, তা চলার সময় object-এর টাইপ দেখে ঠিক হয়।যেখানে শিখবেন: পর্ব ১৮পর্ব ১৯পর্ব ২০
Method referenceমেথড রেফারেন্স
একটি বিদ্যমান method বা constructor-কে :: দিয়ে নির্দেশ করে lambda-র সংক্ষিপ্ত রূপ, যেমন Integer::parseInt বা ArrayList::new. চার ধরন: static, bound, unbound আর constructor.যেখানে শিখবেন: পর্ব ৩৩পর্ব ৩৪পর্ব ৩৫
Method securityমেথড সিকিউরিটি
@EnableMethodSecurity দিয়ে চালু করা, method-এর ওপর @PreAuthorize("hasRole('ADMIN')")-এর মতো নিয়ম; Spring AOP proxy দিয়ে method চলার আগে পরীক্ষা করে।যেখানে শিখবেন: পর্ব ৫৩
Method signatureমেথড সিগনেচার
Java-তে method-এর নাম আর parameter-গুলোর টাইপের ক্রম, যেমন addVat(double, double). Return type আর parameter-এর নাম signature-এর অংশ নয়।যেখানে শিখবেন: পর্ব ১২পর্ব ১৯
MethodHandleমেথড হ্যান্ডল
java.lang.invoke-এর (Java 7 থেকে) একটি সরাসরি, টাইপ-নির্দিষ্ট “হাতল” যা দিয়ে একটি method বা field ডাকা যায়; খোঁজার সময়েই access যাচাই হয়, আর JIT একে ভালোভাবে অপ্টিমাইজ করতে পারে।যেখানে শিখবেন: পর্ব ৪৫
MFA (Multi-factor authentication)এম-এফ-এ
পাসওয়ার্ডের সাথে আরেকটি স্বাধীন প্রমাণ চাওয়া — OTP, authenticator অ্যাপের কোড বা নিরাপত্তা-চাবি — যাতে শুধু পাসওয়ার্ড চুরি হলে অ্যাকাউন্টে ঢোকা না যায়।যেখানে শিখবেন: পর্ব ৫৩
Microserviceমাইক্রোসার্ভিস
একটি বড় সিস্টেমকে ছোট ছোট স্বাধীন সার্ভিসে ভাগ করার নকশা, যেখানে প্রতিটি সার্ভিস আলাদাভাবে চলে আর নেটওয়ার্কে একে অপরের সাথে কথা বলে।যেখানে শিখবেন: পর্ব ০১পর্ব ৫০পর্ব ৫১
Min-heapমিন-হিপ
যে heap-এ প্রতিটি অভিভাবক তার সন্তানদের চেয়ে ছোট বা সমান, তাই সবচেয়ে ছোট জিনিস সবসময় শিকড়ে; Java-র PriorityQueue ডিফল্টে min-heapযেখানে শিখবেন: পর্ব ৩২পর্ব ৫৯
Minor GC (young GC)মাইনর জি-সি
শুধু young generation পরিষ্কার করা GC; জীবিতদের কপি করে, তাই ছোট ও দ্রুত, আর খুব ঘন ঘন হয়যেখানে শিখবেন: পর্ব ৪৪
mockমক
টেস্টের জন্য বানানো নকল object, যা আসল নির্ভরতার (যেমন SMS পাঠানো) জায়গায় বসে আর কী ডাকা হলো তা মনে রাখে বা যাচাই করে।যেখানে শিখবেন: পর্ব ২১পর্ব ৩৮পর্ব ৪৭
Mock interviewমক ইন্টারভিউ
আসল ইন্টারভিউর মতো সময় ও নিয়ম মেনে বন্ধু, মেন্টর বা AI-এর সাথে অনুশীলনের ইন্টারভিউ, যার পরে মূল্যায়ন আর উন্নতির পরামর্শ নেওয়া হয়যেখানে শিখবেন: পর্ব ৫৯
Mockitoমকিটো
Java-র সবচেয়ে প্রচলিত mocking library: mock() দিয়ে নকল বানানো, when(...).thenReturn(...) দিয়ে উত্তর ঠিক করা, verify(...) দিয়ে ডাক যাচাইযেখানে শিখবেন: পর্ব ৪৭
MockMvcমক-এমভিসি
Spring-এর টেস্ট টুল, যা আসল সার্ভার না চালিয়েই controller-এ HTTP request-এর অনুকরণ পাঠায় আর status ও JSON যাচাই করতে দেয়।যেখানে শিখবেন: পর্ব ৫১পর্ব ৫৩
modCountমড কাউন্ট
ArrayList, LinkedList-এর ভেতরের একটি গণনা, যা প্রতিটি কাঠামোগত বদলে (add, remove, clear) এক বাড়ে; iterator নিজের জানা মানের সাথে না মিললে ConcurrentModificationException ছোড়েযেখানে শিখবেন: পর্ব ৩০পর্ব ৫৭
Module (JPMS)মডিউল
Java 9 থেকে package-এর ওপরের স্তরের দল; module-info.java ফাইলে বলা থাকে কোন package বাইরে exports হবে আর কোন module requires; export না করা package-এর public class-ও বাইরে অদৃশ্য।যেখানে শিখবেন: পর্ব ১৭পর্ব ২৬পর্ব ৪৫
Modulo / remainder (%)মডুলো
ভাগশেষ দেওয়া অপারেটর। Java-তে ফলের চিহ্ন বাঁ দিকের operand-এর মতো, তাই -7 % 2 হয় -1যেখানে শিখবেন: পর্ব ০৭
Mojibakeমোজিবাকে
এক encoding-এ লেখা byte অন্য encoding ধরে পড়লে যে অর্থহীন হিজিবিজি অক্ষর দেখা যায়, যেমন আমার-এর বদলে আমার; শব্দটি জাপানি, অর্থ অক্ষরের রূপান্তর।যেখানে শিখবেন: পর্ব ৩৭
Monolithমনোলিথ
পুরো অ্যাপ্লিকেশন একটি deploy করা যায় এমন একক (যেমন একটি JAR) হিসেবে বানানো; ভেতরে module-এ ভাগ থাকলে তাকে modular monolith বলে।যেখানে শিখবেন: পর্ব ৫৫
Multi-catchমাল্টি-ক্যাচ
Java 7 থেকে একটি catch-এ একাধিক exception টাইপ ধরার রূপ: catch (A | B e). টাইপগুলোর একটি অন্যটির subclass হলে চলে না।যেখানে শিখবেন: পর্ব ২৯
Multi-module projectমাল্টি-মডিউল প্রজেক্ট
একটি অভিভাবক build-এর নিচে কয়েকটি আলাদা module (আলাদা ফোল্ডার, আলাদা JAR), যারা একে অপরের ওপর নির্ভর করতে পারে আর build tool সঠিক ক্রমে বানায়।যেখানে শিখবেন: পর্ব ৪৬
Multimap (Map of List)মাল্টিম্যাপ
একটি key-এর সাথে একাধিক value রাখার কাঠামো; Java-র standard library-তে আলাদা class নেই, তাই সাধারণত এমন একটি Map, যার প্রতিটি value একটি List, আর computeIfAbsent দিয়ে বানানো হয়যেখানে শিখবেন: পর্ব ৩১
multiple inheritanceমাল্টিপল ইনহেরিট্যান্স
একাধিক parent থেকে উত্তরাধিকার পাওয়া। Java-তে class-এর parent class একটিই, তবে একটি class অনেক interface implement করে টাইপের multiple inheritance পায়।যেখানে শিখবেন: পর্ব ১৯পর্ব ২১
Mutableমিউটেবল
তৈরি হওয়ার পরেও যার ভেতরের মান বদলানো যায় এমন object, যেমন array, ArrayList বা StringBuilder; immutable-এর উল্টো।যেখানে শিখবেন: পর্ব ১৭পর্ব ২৩পর্ব ৩৮
Mutation testingমিউটেশন টেস্টিং
টেস্টের মান মাপার পদ্ধতি: কোডে ইচ্ছা করে ছোট ভুল (mutant) ঢুকিয়ে দেখা টেস্ট সেগুলো ধরে কি না; Java-তে প্রচলিত টুল PITযেখানে শিখবেন: পর্ব ৪৭
Mutual exclusionমিউচুয়াল এক্সক্লুশন
পারস্পরিক বর্জন — এক সময়ে একটিমাত্র thread একটি critical section-এ থাকতে পারবে, এই নিশ্চয়তা। তালা (lock, mutex) এটি দেয়।যেখানে শিখবেন: পর্ব ৪০
MVP (Minimum Viable Product)এম-ভি-পি
একটি পণ্যের সবচেয়ে ছোট কিন্তু সম্পূর্ণ, চালিয়ে ব্যবহার করা যায় এমন প্রথম সংস্করণ, যাতে শুধু অপরিহার্য feature থাকে।যেখানে শিখবেন: পর্ব ২২

N

N+1 query problemএন প্লাস ওয়ান সমস্যা
একটি তালিকা আনতে ১টি query, তারপর তালিকার প্রতিটি উপাদানের জন্য আরও ১টি করে query চালানোর অদক্ষতা; সমাধান JOIN বা WHERE id IN (...).যেখানে শিখবেন: পর্ব ৪৯পর্ব ৫১পর্ব ৫২
Named groupনেমড গ্রুপ
(?<name>...) লিখে নাম দেওয়া capturing group; group("name") দিয়ে পাওয়া যায় আর replaceAll-এ ${name} দিয়ে লেখা যায়। Java 7 থেকে আছে।যেখানে শিখবেন: পর্ব ১৪
Narrowing conversionন্যারোয়িং কনভার্শন
বড় টাইপ থেকে ছোট টাইপে রূপান্তর, যেমন double থেকে int বা int থেকে byte. এতে দশমিক অংশ বা বাড়তি bit হারায়, তাই স্পষ্ট cast লাগে।যেখানে শিখবেন: পর্ব ০৬
Native queryনেটিভ কোয়েরি
JPQL নয়, ডেটাবেসের নিজের SQL-এ লেখা query; Spring Data-তে nativeQuery = true দিয়ে চিহ্নিত হয়। ডেটাবেসের বিশেষ সুবিধা পাওয়া যায়, কিন্তু অন্য ডেটাবেসে না-ও চলতে পারে।যেখানে শিখবেন: পর্ব ৫২
Natural orderingন্যাচারাল অর্ডারিং
একটি class-এর নিজের compareTo method যে ক্রম দেয়, যেমন সংখ্যার ছোট থেকে বড় বা String-এর অভিধানের ক্রম; Comparator না দিলে sort এই ক্রমই ব্যবহার করেযেখানে শিখবেন: পর্ব ২৩পর্ব ৩০পর্ব ৩২
NavigableMapনেভিগেবল ম্যাপ
সাজানো Map-এর interface, যা কাছাকাছি key খোঁজার method দেয় — floorKey, ceilingKey, floorEntry, lowerKey, higherKey, headMap, tailMap, descendingMap. TreeMap এটি implement করে; কিছু না পেলে এরা null দেয়যেখানে শিখবেন: পর্ব ৩১
NavigableSetনেভিগেবল সেট
সাজানো Set-এর interface, যা কাছাকাছি মান খোঁজার method দেয় — floor, ceiling, lower, higher, headSet, tailSet, descendingSet. TreeSet এটি implement করেযেখানে শিখবেন: পর্ব ৩১
Negative markingনেগেটিভ মার্কিং
যে পরীক্ষায় ভুল উত্তরের জন্য নম্বর কাটা হয়; তখন না জেনে আন্দাজ করা লাভ না ক্ষতি, তা হিসাব করে ঠিক করতে হয়।যেখানে শিখবেন: পর্ব ৫৭
Nest-based access control (nestmates)নেস্ট-বেসড অ্যাকসেস কন্ট্রোল
Java 11-এর JEP 181: একটি top-level class আর তার সব nested class একটি nest গঠন করে, আর JVM নিজেই তাদের একে অন্যের private member ব্যবহার করতে দেয়; synthetic accessor আর লাগে না।যেখানে শিখবেন: পর্ব ২৭
Nested classনেস্টেড ক্লাস
আরেকটি class-এর ভেতরে ঘোষিত যেকোনো class. Java-তে চার ধরন: static nested, inner (member), local আর anonymous class.যেখানে শিখবেন: পর্ব ২৭
Nested ifনেস্টেড ইফ
একটি if-এর ভেতরে আরেকটি if রাখা। বেশি স্তর হলে কোড ডানদিকে সরে যায় আর পড়া কঠিন হয়।যেখানে শিখবেন: পর্ব ১০
Nested loopনেস্টেড লুপ
একটি লুপের body-র ভেতরে আরেকটি লুপ। বাইরের লুপের প্রতিটি ঘোরায় ভেতরের লুপ পুরোটা চলে; নামতার ছক বা প্যাটার্ন ছাপায় ব্যবহার হয়।যেখানে শিখবেন: পর্ব ১১পর্ব ৩১
Nettyনেটি
Java NIO-র ওপর বানানো একটি জনপ্রিয় open source নেটওয়ার্ক framework, event loop আর handler-এর pipeline দিয়ে উচ্চ-ক্ষমতার সার্ভার ও client বানাতে; JDK-র অংশ নয়।যেখানে শিখবেন: পর্ব ৪৩
newনিউ
object তৈরির keyword: heap-এ জায়গা নেয়, field-গুলোতে default মান বসায়, constructor চালায় আর নতুন object-এর reference ফেরত দেয়যেখানে শিখবেন: পর্ব ১৫
Nodeনোড
linked list বা tree-এর একটি ঘর — একটি ছোট object, যাতে একটি মান আর পাশের এক বা একাধিক node-এর reference থাকেযেখানে শিখবেন: পর্ব ৩০
Non-capturing groupনন-ক্যাপচারিং গ্রুপ
(?:...) — কয়েকটি জিনিসকে একক বানায় যাতে quantifier বা | পুরোটার ওপর খাটে, কিন্তু মিলের টুকরো মনে রাখে না আর group নম্বরও নেয় না।যেখানে শিখবেন: পর্ব ১৪
non-sealedনন-সিলড
sealed টাইপের অনুমোদিত উপ-টাইপের একটি modifier, যা ওই শাখাটিকে আবার সবার জন্য খুলে দেয় — তখন যেকোনো class তাকে extend করতে পারে। অনুমোদিত প্রতিটি উপ-টাইপকে final, sealed বা non-sealed — এই তিনের একটি হতেই হয়।যেখানে শিখবেন: পর্ব ২৬পর্ব ৫৮
Normalization (path)নরমালাইজেশন
Path থেকে অপ্রয়োজনীয় . (এই ফোল্ডার) আর ফোল্ডার..-এর জোড়া বাদ দিয়ে ছোট সমতুল্য রূপ বানানো; Java-তে normalize(). এটি শুধু লেখার ওপর কাজ করে, ডিস্ক দেখে না।যেখানে শিখবেন: পর্ব ৩৭
NoSQLনো-এসকিউএল
relational টেবিল আর SQL-এর বাইরের ডেটাবেসের সাধারণ নাম — document (MongoDB), key-value (Redis), wide-column (Cassandra) ইত্যাদি; প্রায়ই বিশাল মাপে ছড়ানোর জন্য কিছু ACID নিশ্চয়তা ছাড়ে।যেখানে শিখবেন: পর্ব ৪৯
NoSuchElementExceptionনো সাচ এলিমেন্ট এক্সেপশন
java.util-এর একটি unchecked exception, যা ছোড়া হয় যখন চাওয়া জিনিসটি নেই — যেমন খালি queue-এ remove(), element() বা খালি Deque-এ pop(), অথবা শেষ হয়ে যাওয়া Iterator-এ next()যেখানে শিখবেন: পর্ব ৩২পর্ব ৩৬
NoSuchFileExceptionনো সাচ ফাইল এক্সেপশন
java.nio.file-এর IOException, যা আসে যখন যে ফাইল বা ফোল্ডার নিয়ে কাজ করতে বলা হয়েছে সেটি নেই; বার্তায় শুধু path থাকে।যেখানে শিখবেন: পর্ব ৩৭
Noun/verb analysisনাউন-ভার্ব অ্যানালাইসিস
সমস্যার বিবরণ থেকে বিশেষ্য দাগিয়ে সম্ভাব্য class আর ক্রিয়া দাগিয়ে সম্ভাব্য method খোঁজার শুরুর কৌশলযেখানে শিখবেন: পর্ব ০২পর্ব ১৫পর্ব ২২
nullনাল
Reference-এর বিশেষ মান, যার অর্থ “কোনো object দেখায় না”। null reference দিয়ে method বা field ব্যবহার করলে NullPointerException হয়যেখানে শিখবেন: পর্ব ০৫পর্ব ০৭পর্ব ০৮
Null Object patternনাল অবজেক্ট প্যাটার্ন
null-এর বদলে একটি নিরীহ আসল object রাখার design pattern, যার method-গুলো কিছুই করে না বা নিরপেক্ষ মান দেয় — যেমন ছাড় না থাকলে ০% ছাড়ের একটি NoDiscount object, তাই ডাকার কোডকে null যাচাই করতে হয় নাযেখানে শিখবেন: পর্ব ৩৬পর্ব ৪৮
Nullability annotation (@Nullable, @NonNull)নালেবল অ্যানোটেশন
কোনো field, parameter বা ফেরত-মান null হতে পারে কি না তা জানানোর annotation; compiler নিজে যাচাই করে না, IDE আর static analysis টুল পড়ে সতর্ক করে। JSpecify প্রজেক্ট এগুলোর একটি অভিন্ন মান তৈরি করেছে (1.0 প্রকাশিত ২০২৪ সালে)যেখানে শিখবেন: পর্ব ৩৬
NullPointerExceptionনাল পয়েন্টার এক্সেপশন
null reference-এর ওপর কোনো method ডাকলে বা ভেতরে ঢুকতে চাইলে যে exception আসে। null থাকা wrapper-কে primitive-এ unbox করলেও এটি আসে।যেখানে শিখবেন: পর্ব ০৬পর্ব ১০পর্ব ১৫
NumberFormatExceptionনাম্বার-ফরম্যাট এক্সেপশন
Integer.parseInt-এর মতো method লেখাকে সংখ্যায় রূপ দিতে না পারলে যে exception ছোড়ে, যেমন "12a" বা ফাঁকা লেখা দিলে।যেখানে শিখবেন: পর্ব ০৮পর্ব ২২পর্ব ২৯
Numeric promotionনিউমেরিক প্রোমোশন
হিসাবের আগে ছোট টাইপকে বড় টাইপে তুলে নেওয়ার নিয়ম: byte, short, char হিসাবের আগে int হয়; একটি operand double হলে পুরো হিসাব double-এযেখানে শিখবেন: পর্ব ০৭পর্ব ৫৬পর্ব ৫৭

O

OAuth 2.0ও-অথ টু
অনুমতি দেওয়ার মানক কাঠামো (RFC 6749, ২০১২) — একটি অ্যাপ ব্যবহারকারীর পাসওয়ার্ড না জেনেই authorization server থেকে token নিয়ে সীমিত কাজের অনুমতি পায়।যেখানে শিখবেন: পর্ব ৫৩
OAuth2 Resource Serverরিসোর্স সার্ভার
যে API token নিয়ে আসা request গ্রহণ করে আর token যাচাই করে। Spring-এ spring-boot-starter-oauth2-resource-server আর http.oauth2ResourceServer(...)যেখানে শিখবেন: পর্ব ৫৩
Objectঅবজেক্ট
একটি class-এর নকশা থেকে new দিয়ে তৈরি আসল জিনিস, যার নিজের state (field-এর মান) আর behaviour (method) আছে। যেমন রিনার ওয়ালেটযেখানে শিখবেন: পর্ব ০২পর্ব ০৫পর্ব ০৬
Object graphঅবজেক্ট গ্রাফ
একটি object আর reference ধরে ধরে তার থেকে পৌঁছানো যায় এমন সব object-এর জাল — যেমন একটি Order, তার List আর List-এর Item-গুলো। serialization এই পুরো জাল হেঁটে লেখে।যেখানে শিখবেন: পর্ব ৩৯
Object headerঅবজেক্ট হেডার
প্রতিটি heap object-এর শুরুর অংশ, যাতে থাকে mark word আর class pointer. সাধারণ ৬৪-bit HotSpot-এ প্রায় ১২ বাইটযেখানে শিখবেন: পর্ব ৪৪
Object-relational impedance mismatchইম্পিড্যান্স মিসম্যাচ
object-এর গ্রাফ (reference, inheritance, collection) আর relational টেবিলের (সারি, foreign key, JOIN) মডেলের মৌলিক অমিল, যা দুইয়ের মধ্যে অনুবাদকে জটিল করে।যেখানে শিখবেন: পর্ব ৪৯
ObjectInputFilterঅবজেক্ট ইনপুট ফিল্টার
Java 9-এ (JEP 290) আসা ব্যবস্থা, যা deserialization-এর সময় প্রতিটি class object তৈরির আগে যাচাই করে মেনে নেয় বা বাতিল করে। নিরাপদ নিয়ম allow-list: শুধু চেনা class, বাকি সব নিষেধযেখানে শিখবেন: পর্ব ৩৯
ObjectOutputStream / ObjectInputStreamঅবজেক্ট আউটপুট স্ট্রিম
java.io-র দুটি class, যা Java-র নিজস্ব binary serialization করে: writeObject দিয়ে Serializable object graph-কে byte-এ লেখে, readObject দিয়ে আবার object বানায়। অবিশ্বস্ত ডেটায় readObject বিপজ্জনক।যেখানে শিখবেন: পর্ব ৩৯
Objects.requireNonNullঅবজেক্টস রিকোয়ার-নন-নাল
java.util.Objects-এর method, যা মান null হলে সাথে সাথে নিজের দেওয়া বার্তাসহ NullPointerException ছোড়ে আর না হলে মানটিই ফেরত দেয় — fail-fast যাচাইয়ের জন্য।যেখানে শিখবেন: পর্ব ২৯পর্ব ৩৬
Observer patternঅবজার্ভার প্যাটার্ন
শ্রোতারা একটি প্রকাশকের কাছে নাম লেখায়, আর ঘটনা ঘটলে প্রকাশক তালিকার সবাইকে জানায়; প্রকাশক জানে না শ্রোতারা খবর নিয়ে কী করে।যেখানে শিখবেন: পর্ব ৪৮
Off-by-one errorঅফ-বাই-ওয়ান এরর
লুপ এক বার বেশি বা এক বার কম চলার ভুল, সাধারণত শর্তে “ছোট” আর “ছোট বা সমান” গুলিয়ে ফেলা বা index 0 থেকে শুরু হয় ভুলে যাওয়া থেকে।যেখানে শিখবেন: পর্ব ১১
OffsetDateTimeঅফসেট ডেট টাইম
তারিখ, সময় আর UTC থেকে একটি নির্দিষ্ট পার্থক্য (যেমন +06:00), কিন্তু জোনের নিয়ম ছাড়া; API বা ডেটাবেসে দ্ব্যর্থহীন সময় আদান-প্রদানে কাজেরযেখানে শিখবেন: পর্ব ৩৮
Old generation (tenured)ওল্ড জেনারেশন
Heap-এর যে অংশে কয়েকটি GC পেরিয়ে বেঁচে যাওয়া দীর্ঘজীবী object থাকে। কদাচিৎ পরিষ্কার হয়, আর তার পরিষ্কারে pause তুলনামূলক লম্বাযেখানে শিখবেন: পর্ব ৪৪
Online compilerঅনলাইন কম্পাইলার
ব্রাউজার থেকে কোড পাঠিয়ে দূরের সার্ভারে compile করে চালানোর সেবা, যেমন Wandbox. নিজের কম্পিউটারে JDK না থাকলেও ছোট প্রোগ্রামের আসল আউটপুট দেখা যায়যেখানে শিখবেন: পর্ব ৫৬
Online judgeঅনলাইন জাজ
যে ওয়েবসাইট জমা দেওয়া কোড গোপন টেস্ট ইনপুটে চালিয়ে সময়, মেমরি আর উত্তর মিলিয়ে স্বয়ংক্রিয় রায় দেয় — যেমন AC, WA, TLEযেখানে শিখবেন: পর্ব ৫৪পর্ব ৫৯
Open/Closed Principleওপেন-ক্লোজড প্রিন্সিপল
নকশার নীতি: সফটওয়্যার নতুন আচরণ যোগ করার জন্য খোলা থাকবে, কিন্তু সেজন্য পুরোনো, পরীক্ষিত কোড বদলাতে হবে না। Bertrand Meyer ১৯৮৮ সালে নামটি দেন; SOLID-এর “O”.যেখানে শিখবেন: পর্ব ২০পর্ব ২২পর্ব ৪৮
OpenAPIওপেন-এপিআই
REST API-র endpoint, ইনপুট আর উত্তর বর্ণনার মানক ফরম্যাট; Swagger UI এই বর্ণনা থেকে ব্রাউজারে চেষ্টা করার পাতা বানায়। Spring-এ springdoc দিয়ে নিজে তৈরি হয়।যেখানে শিখবেন: পর্ব ৫১
OpenID Connect (OIDC)ওপেনআইডি কানেক্ট
OAuth 2.0-এর ওপর পরিচয়ের স্তর (২০১৪); একটি ID token দেয়, যা বলে ব্যবহারকারী কে — “Google দিয়ে লগইন”-এর পেছনের মান।যেখানে শিখবেন: পর্ব ৫৩
OpenJDKওপেন-জে-ডি-কে
Java প্ল্যাটফর্মের ওপেন-সোর্স মূল প্রজেক্ট (GPL লাইসেন্স)। Temurin, Corretto, Oracle JDK-সহ প্রায় সব JDK এই সোর্স থেকেই তৈরি।যেখানে শিখবেন: পর্ব ০১পর্ব ০৩
Operandঅপারেন্ড
যে মানের ওপর অপারেটর কাজ করে। a + b-তে a আর b দুটি operandযেখানে শিখবেন: পর্ব ০৭
Operand stackঅপারেন্ড স্ট্যাক
প্রতিটি method কলের frame-এর ভেতরের একটি স্তূপ, যেখানে JVM হিসাবের মান রাখে ও তোলে। যেমন iadd ওপরের দুটি int তুলে যোগফল রাখেযেখানে শিখবেন: পর্ব ০৫
Operatorঅপারেটর
এক বা একাধিক মান নিয়ে নতুন মান তৈরি করে এমন চিহ্ন, যেমন + , == , && বা >>যেখানে শিখবেন: পর্ব ০৭
Operator precedenceঅপারেটর প্রিসিডেন্স
একটি expression-এ কোন অপারেটর আগে তার operand ধরবে, তার নিয়ম; যেমন * আর /, + এর আগেযেখানে শিখবেন: পর্ব ০৭পর্ব ৫৬
Optimistic lockingঅপটিমিস্টিক লকিং
সারি আগে না আটকে লেখার সময় যাচাই: সারির version কলাম পড়ার পর বদলায়নি তবেই লেখা হয়; না মিললে কাজটি ব্যর্থ হয়ে আবার চেষ্টা করতে হয়।যেখানে শিখবেন: পর্ব ৫২পর্ব ৫৫পর্ব ৫৬
OptimisticLockExceptionঅপটিমিস্টিক লক এক্সেপশন
@Version-যুক্ত entity লেখার সময় সারির version বদলে গেছে দেখলে (অন্য কেউ মাঝখানে লিখেছে) JPA যে exception দেয়; Spring সাধারণত একে ObjectOptimisticLockingFailureException-এ মুড়ে দেয়।যেখানে শিখবেন: পর্ব ৫২
Optionalঅপশনাল
Java 8 থেকে আসা java.util.Optional — একটি বাক্স, যাতে একটি মান থাকতেও পারে, না-ও পারে। null ফেরত দেওয়ার বদলে “মান নেই” স্পষ্ট করে বোঝাতে ব্যবহার হয়।যেখানে শিখবেন: পর্ব ২৯পর্ব ৩৫পর্ব ৩৬
OptionalInt, OptionalLong, OptionalDoubleঅপশনাল ইন্ট
int, long বা double-এর জন্য Optional-এর primitive রূপ, যাতে boxing লাগে না; IntStream-এর max, min আর average এগুলো ফেরত দেয়, আর মান বের করতে getAsInt বা getAsDouble ব্যবহার হয়যেখানে শিখবেন: পর্ব ৩৬
ordinal()অর্ডিনাল
enum constant-এর ঘোষণায় অবস্থান, ০ থেকে গোনা; ক্রম বদলালে বা মাঝে নতুন constant ঢোকালে বদলে যায়, তাই ডেটাবেসে বা হিসাবে ব্যবহার করা উচিত নয়।যেখানে শিখবেন: পর্ব ২৪
ORMও-আর-এম
Object-Relational Mapping — ডেটাবেসের টেবিলকে class আর সারিকে object হিসেবে ব্যবহার করার পদ্ধতি, যাতে বেশিরভাগ SQL টুল নিজে লেখে। Java-তে JPA আর Hibernate.যেখানে শিখবেন: পর্ব ৪৯পর্ব ৫২
orphanRemovalঅরফান রিমুভাল
@OneToMany-র একটি বিকল্প: মালিকের সংগ্রহ থেকে সরিয়ে দেওয়া সন্তান entity ডেটাবেস থেকে মুছে ফেলা হবে — যার আলাদা অস্তিত্বের অর্থ নেই, যেমন অর্ডার-আইটেম।যেখানে শিখবেন: পর্ব ৫২
OS threadও-এস থ্রেড
অপারেটিং সিস্টেমের kernel যে thread চেনে আর CPU-তে পালা দিয়ে চালায়; তৈরি ও পালা বদলে খরচ আছে, আর প্রতিটির নিজের বড় stack লাগেযেখানে শিখবেন: পর্ব ৪২
OutOfMemoryErrorআউট অফ মেমরি এরর
JVM প্রয়োজনীয় মেমরি (heap, metaspace, native thread ইত্যাদি) দিতে না পারলে যে Error ছোড়ে; বার্তার শেষ অংশ বলে কোন ঘর ভরেছে।যেখানে শিখবেন: পর্ব ২৯পর্ব ৪২পর্ব ৪৪
Over-engineeringওভার-ইঞ্জিনিয়ারিং
সমস্যার তুলনায় অনেক বেশি স্তর, class আর pattern বানিয়ে ফেলা, যা বোঝা, বদলানো ও পরীক্ষা করা কঠিন করে তোলে।যেখানে শিখবেন: পর্ব ৪৮
Overload resolutionওভারলোড রেজোলিউশন
একই নামের কয়েকটি method থেকে একটি ডাকের জন্য সবচেয়ে উপযুক্তটি বেছে নেওয়ার নিয়ম। Java ধাপে ধাপে খোঁজে: আগে widening, তারপর boxing, শেষে varargs.যেখানে শিখবেন: পর্ব ১২পর্ব ৫৬পর্ব ৫৭
OWASP Top 10ওয়াস্প টপ টেন
অলাভজনক সংগঠন OWASP-এর প্রকাশিত ওয়েব অ্যাপের সবচেয়ে গুরুতর দশটি নিরাপত্তা-ঝুঁকির তালিকা, প্রথম ২০০৩ সালে; injection বহু সংস্করণে প্রথম তিনের মধ্যে ছিল।যেখানে শিখবেন: পর্ব ৪৯পর্ব ৫৩
Owning sideওনিং সাইড
দুই দিকের সম্পর্কে যে দিকের field ডেটাবেসের foreign key কলাম নিয়ন্ত্রণ করে — সাধারণত @ManyToOne-এর দিক। অন্য দিক mappedBy দিয়ে চিহ্নিত inverse side, যা দেখে ORM কলাম লেখে না।যেখানে শিখবেন: পর্ব ৫২

P

P vs NPপি ভার্সাস এনপি
কম্পিউটার বিজ্ঞানের অমীমাংসিত প্রশ্ন: যে সমস্যার প্রস্তাবিত উত্তর polynomial সময়ে যাচাই করা যায় (NP), সেটা কি সবসময় polynomial সময়ে সমাধানও করা যায় (P)? বেশিরভাগ গবেষকের ধারণা, যায় নাযেখানে শিখবেন: পর্ব ৫৪
Packageপ্যাকেজ
সম্পর্কিত class-গুলোকে এক নামে গুছিয়ে রাখার ব্যবস্থা, অনেকটা ফোল্ডারের মতো — যেমন java.util. একই নামের দুটি class আলাদা package-এ থাকতে পারে।যেখানে শিখবেন: পর্ব ০৪পর্ব ১৫পর্ব ১৭
Package-private (default access)প্যাকেজ-প্রাইভেট
কোনো access modifier না লিখলে যে access পাওয়া যায়: শুধু একই package-এর class-গুলো ব্যবহার করতে পারে, অন্য package-এর subclass-ও নয়।যেখানে শিখবেন: পর্ব ১৭পর্ব ৫৭পর্ব ৫৮
Packetপ্যাকেট
নেটওয়ার্কে একবারে পাঠানো ডেটার ছোট টুকরো, যার সামনে header-এ উৎস ও গন্তব্যের ঠিকানার মতো তথ্য থাকে; বড় ডেটা অনেক packet-এ ভাগ হয়ে যায়।যেখানে শিখবেন: পর্ব ৪৩
Paginationপেজিনেশন
বড় তালিকা একবারে না পাঠিয়ে পাতা ধরে পাঠানো, যেমন ?page=0&size=20; Spring Data-তে Pageable আর Page দিয়ে করা হয়।যেখানে শিখবেন: পর্ব ৫১পর্ব ৫৫
Pair programmingপেয়ার প্রোগ্রামিং
দুজন মিলে একটি কোডে কাজ করার পদ্ধতি: একজন লেখেন (driver), অন্যজন পাশে বসে রিভিউ ও দিকনির্দেশ দেন (navigator) — দুজনের দায়িত্ব মাঝে মাঝে বদলায়।যেখানে শিখবেন: পর্ব ২২
Palindromeপ্যালিনড্রোম
যে শব্দ, সংখ্যা বা বাক্য সামনে থেকে আর পেছন থেকে পড়লে একই — যেমন madam বা 12321. প্রোগ্রামিং পরীক্ষার একটি প্রচলিত অনুশীলন।যেখানে শিখবেন: পর্ব ৫৮
Parallel GCপ্যারালাল জি-সি
অনেক thread মিলে প্রোগ্রাম থামিয়ে কাজ করা collector, সর্বোচ্চ throughput-এর লক্ষ্যে; Java 8-এ সাধারণ সার্ভারের ডিফল্ট ছিল। flag: -XX:+UseParallelGCযেখানে শিখবেন: পর্ব ৪৪
Parallel streamপ্যারালাল স্ট্রিম
parallelStream() বা parallel() দিয়ে তৈরি stream, যার কাজ উৎসকে টুকরো করে একাধিক thread-এ (সাধারণত ForkJoinPool-এর common pool-এ) একসাথে চলে; বড় ডেটা আর স্বাধীন কাজে দ্রুত হতে পারে, ছোট ডেটায় প্রায়ই ধীরযেখানে শিখবেন: পর্ব ৩৫
Parallelismপ্যারালেলিজম
আক্ষরিক অর্থে একই মুহূর্তে একাধিক কাজ চলা, যার জন্য একাধিক CPU core লাগে। Concurrency-র একটি বিশেষ রূপ।যেখানে শিখবেন: পর্ব ৪০
Parameterপ্যারামিটার
method-এর বন্ধনীর ভেতরে ঘোষণা করা নাম, যার মাধ্যমে method ডাকার সময় তথ্য পাঠানো হয় — যেমন main-এর String[] args.যেখানে শিখবেন: পর্ব ০৪পর্ব ১২
Parameterized constructorপ্যারামিটারাইজড কনস্ট্রাক্টর
যে constructor parameter নেয়, যাতে object তৈরির সময়েই প্রয়োজনীয় মানগুলো দিয়ে দেওয়া যায়।যেখানে শিখবেন: পর্ব ১৬
Parameterized queryপ্যারামিটারাইজড কোয়েরি
SQL-এ মান সরাসরি না জুড়ে ? চিহ্নের জায়গায় আলাদা করে পাঠানো। SQL-এর কাঠামো স্থির থাকে, তাই ইনপুট কখনো নির্দেশ হয়ে যায় না।যেখানে শিখবেন: পর্ব ৪৯
Parameterized testপ্যারামিটারাইজড টেস্ট
একটি টেস্ট method, যা বিভিন্ন ইনপুটের তালিকা বা টেবিল (@ValueSource, @CsvSource) দিয়ে বারবার চলে; প্রতিটি সারি আলাদা টেস্ট হিসেবে পাস বা ফেল হয়যেখানে শিখবেন: পর্ব ৪৭
Parametric polymorphismপ্যারামেট্রিক পলিমরফিজম
একটিই কোড, যা টাইপ না জেনেই যেকোনো টাইপের সাথে একইভাবে কাজ করে, যেমন Java-র generics: List of T. Christopher Strachey ১৯৬৭ সালে নামটি দেন।যেখানে শিখবেন: পর্ব ২০পর্ব ২৮
parse (পার্স)পার্স
লেখা (String) পড়ে তার ভেতরের মানকে নির্দিষ্ট টাইপে রূপ দেওয়া, যেমন Integer.parseInt("42") লেখা "42" থেকে int 42 বানায়; লেখা ঠিক না হলে NumberFormatException হয়।যেখানে শিখবেন: পর্ব ০৯পর্ব ২২
Parserপার্সার
যে প্রোগ্রাম বা library একটি গঠনযুক্ত লেখা (JSON, HTML, XML, প্রোগ্রামিং ভাষা) তার ব্যাকরণ মেনে পড়ে ভেতরের গাছের মতো গঠন বের করে; নেস্টিং-এর কাজে regex-এর বদলে এটিই ব্যবহার করা উচিত।যেখানে শিখবেন: পর্ব ১৪
Parsingপার্সিং
compiler-এর প্রথম দিকের ধাপ, যেখানে কোডের লেখা পড়ে ব্যাকরণ ঠিক আছে কি না যাচাই হয়; এখানে ভুল থাকলে নাম বা টাইপ যাচাইয়ের ধাপে পৌঁছায় না।যেখানে শিখবেন: পর্ব ০৪
Pass by referenceপাস বাই রেফারেন্স
এমন নিয়ম যেখানে parameter হয় caller-এর ভ্যারিয়েবলেরই আরেক নাম, তাই parameter-এ নতুন মান বসালে caller-এর ভ্যারিয়েবলও বদলায় (যেমন C++-এর reference parameter দিয়ে)। Java-তে এটি নেই।যেখানে শিখবেন: পর্ব ১২
Pass-by-valueপাস বাই ভ্যালু
method ডাকার সময় argument-এর মানের একটি কপি parameter-এ যাওয়া। Java-তে সবসময় তাই হয় — object বা array হলে কপি হয় reference-টি, object নয়।যেখানে শিখবেন: পর্ব ১২পর্ব ১৩পর্ব ১৫
PasswordEncoderপাসওয়ার্ড এনকোডার
Spring Security-র interface — encode সাইন-আপে পাসওয়ার্ডের ধীর hash বানায়, matches লগইনে মেলায়। DelegatingPasswordEncoder {bcrypt}-এর মতো উপসর্গ দেখে ঠিক অ্যালগরিদম বাছে।যেখানে শিখবেন: পর্ব ৫৩
PATHপাথ
একটি environment variable, যেখানে ফোল্ডারের তালিকা থাকে। terminal-এ কোনো কমান্ড লিখলে কম্পিউটার এই তালিকা ধরে ক্রমানুসারে প্রোগ্রামটি খোঁজে এবং প্রথম মিলটি চালায়।যেখানে শিখবেন: পর্ব ০৩
Pathপাথ
java.nio.file-এর interface, যা একটি ফাইল বা ফোল্ডারের ঠিকানা বোঝায়, যেমন reports/jan.csv. Path শুধু ঠিকানা; ফাইলটি সত্যিই আছে কি না তা Path বলে না।যেখানে শিখবেন: পর্ব ৩৭
Path parameterপাথ প্যারামিটার
URL-এর পথের ভেতরের পরিবর্তনশীল অংশ, যা কোন resource তা বলে — /products/7-এর 7. Spring-এ @PathVariable দিয়ে পড়া হয়।যেখানে শিখবেন: পর্ব ৫১
Path traversalপাথ ট্রাভার্সাল
নিরাপত্তা-ত্রুটি, যেখানে ব্যবহারকারীর দেওয়া নামে ../ বা পূর্ণ path ঢুকিয়ে অনুমোদিত ফোল্ডারের বাইরের ফাইল পড়া বা লেখা হয়; প্রতিরোধ: resolve, normalize, তারপর startsWith(base) যাচাই।যেখানে শিখবেন: পর্ব ৩৭
PathMatcherপাথ ম্যাচার
একটি glob বা regex নকশা দিয়ে বানানো object, যার matches(path) বলে Path-টি নকশার সাথে মেলে কি না; FileSystems.getDefault().getPathMatcher("glob:*.csv") দিয়ে পাওয়া যায়।যেখানে শিখবেন: পর্ব ৩৭
Pattern (java.util.regex.Pattern)প্যাটার্ন
একটি regex-এর compile করা রূপ; Pattern.compile("...") দিয়ে তৈরি হয়। immutable আর thread-safe, তাই সাধারণত static final রেখে বারবার ব্যবহার করা হয়।যেখানে শিখবেন: পর্ব ১৪
Pattern dominanceপ্যাটার্ন ডমিন্যান্স
switch-এ আগের কোনো case যদি পরের case-এর সব মান আগেই ধরে ফেলে, তাহলে পরেরটি কখনো চলতে পারে না। Java এমন অবস্থাকে compile error দেয় — তাই নির্দিষ্ট case আগে, সাধারণ case পরে লিখতে হয়।যেখানে শিখবেন: পর্ব ২৬
Pattern matchingপ্যাটার্ন ম্যাচিং
একটি মানের টাইপ বা গঠন যাচাই করে একই সাথে তার অংশ নতুন ভ্যারিয়েবলে বের করে আনা — যেমন case Integer i -> লেখা অংশ। switch-এ এটি Java 21-এ স্থায়ী হয়েছে।যেখানে শিখবেন: পর্ব ১০পর্ব ২০পর্ব ২৩
PatternSyntaxExceptionপ্যাটার্ন সিনট্যাক্স এক্সেপশন
regex-এর ব্যাকরণ ভুল হলে চলার সময় যে unchecked exception আসে, যেমন বন্ধ না করা [ বা (; বার্তায় সমস্যার বিবরণ, index আর ^ চিহ্ন দিয়ে জায়গাটি দেখানো থাকে।যেখানে শিখবেন: পর্ব ১৪
PBKDF2পি-বি-কে-ডি-এফ টু
Password-Based Key Derivation Function 2 — HMAC-কে হাজার-লক্ষবার চালিয়ে ধীর hash বানায়। JDK-তে SecretKeyFactory-র PBKDF2WithHmacSHA256 নামে আছে।যেখানে শিখবেন: পর্ব ৫৩
PECS (Producer Extends, Consumer Super)পেকস
wildcard বেছে নেওয়ার স্মৃতিসূত্র: যে parameter থেকে শুধু পড়বেন সেখানে ? extends T, যেখানে শুধু লিখবেন সেখানে ? super T, দুটোই করলে ঠিক T; Joshua Bloch-এর Effective Java বইয়ে জনপ্রিয়যেখানে শিখবেন: পর্ব ২৮পর্ব ৫৮
Periodপিরিয়ড
বছর, মাস আর দিনে মাপা ক্যালেন্ডারের ব্যবধান, যেমন P22Y2M3D; বয়স, ঋণের মেয়াদ বা দুটি LocalDate-এর ব্যবধান বোঝাতেযেখানে শিখবেন: পর্ব ৩৮পর্ব ৫৭
PermGenপার্মজেন
Java 7 পর্যন্ত JVM-এর আলাদা একটি নির্দিষ্ট মাপের মেমরি এলাকা, যেখানে class-এর তথ্য রাখা হতো। Java 8-এ এটি সরিয়ে Metaspace আনা হয়।যেখানে শিখবেন: পর্ব ০৮
permits clauseপারমিটস ক্লজ
sealed class বা interface-এর ঘোষণায় permits-এর পরে লেখা তালিকা, যেখানে বলা থাকে কোন কোন class সরাসরি তাকে extend বা implement করতে পারবে। সব উপ-টাইপ একই ফাইলে থাকলে তালিকাটি বাদ দেওয়া যায়, তখন compiler নিজেই সেটা বের করে।যেখানে শিখবেন: পর্ব ২৬
Persistenceপারসিস্টেন্স
প্রোগ্রাম বন্ধ হলে বা কম্পিউটার বন্ধ হলেও ডেটা টিকে থাকা; ফাইল বা ডেটাবেসে লিখে রাখলে তবেই ডেটা persistent হয়, RAM-এর ভ্যারিয়েবল হয় না।যেখানে শিখবেন: পর্ব ৩৭পর্ব ৪৯
Persistence contextপারসিস্টেন্স কনটেক্সট
JPA-তে একটি transaction-এর managed entity-গুলোর খাতা: প্রতিটি id-এর জন্য একটিই Java object রাখে আর আনার সময়ের মানের কপি রেখে পরে বদল খুঁজে বের করে। Hibernate-এ এর বাস্তব রূপ Session.যেখানে শিখবেন: পর্ব ৫২পর্ব ৫৮
Pessimistic lockingপেসিমিস্টিক লকিং
পড়ার সময়ই সারি আটকে রাখা (যেমন SELECT ... FOR UPDATE), যাতে transaction শেষ না হওয়া পর্যন্ত অন্য কেউ সেটি বদলাতে না পারে; অন্যদের অপেক্ষা করতে হয়।যেখানে শিখবেন: পর্ব ৫২পর্ব ৫৫
PhantomReferenceফ্যান্টম রেফারেন্স
সবচেয়ে দুর্বল reference, যা দিয়ে object পাওয়াই যায় না; শুধু object unreachable হয়েছে এই খবর পেয়ে পরিষ্কারের কাজ করতে ব্যবহার হয়যেখানে শিখবেন: পর্ব ৪৪
picocliপিকোসিএলআই
Java-র একটি জনপ্রিয় open-source লাইব্রেরি, যা annotation দেখে command-line option আর argument পার্স করে এবং help বার্তা তৈরি করে দেয়।যেখানে শিখবেন: পর্ব ২২পর্ব ৪৫
Pinningপিনিং
যে অবস্থায় একটি virtual thread ব্লক করার সময় carrier থেকে নামতে পারে না, ফলে carrier-ও আটকে থাকে; Java 21-এ synchronized-এর ভেতরে বা native ফ্রেমে ঘটে। Java 24-এর JEP 491 synchronized-এর ক্ষেত্রটি প্রায় দূর করেছেযেখানে শিখবেন: পর্ব ৪২পর্ব ৫৮
Pipe ( | )পাইপ
shell-এর একটি ব্যবস্থা, যেখানে একটি প্রোগ্রামের আউটপুট সরাসরি পরের প্রোগ্রামের ইনপুট হয়; ১৯৭৩ সালে Unix-এ যোগ হয়।যেখানে শিখবেন: পর্ব ২২পর্ব ৩৫
PKCEপিক্সি
Proof Key for Code Exchange — OAuth-এর লগইনে অ্যাপ একটি গোপন মান বানিয়ে রাখে, যাতে পথে কেউ ক্ষণস্থায়ী code ধরে ফেললেও token নিতে না পারে। মোবাইল আর ব্রাউজার অ্যাপে আবশ্যিক ধরা হয়।যেখানে শিখবেন: পর্ব ৫৩
Platform threadপ্ল্যাটফর্ম থ্রেড
Java-র সাধারণ thread, যা একটি OS thread-এর পাতলা মোড়ক — এক Java thread, এক OS thread; Java 21-এ virtual thread থেকে আলাদা করতে এই নাম দেওয়া হয়যেখানে শিখবেন: পর্ব ৪১পর্ব ৪২পর্ব ৫৮
Pollingপোলিং
নতুন খবর আছে কি না জানতে client-এর নির্দিষ্ট বিরতিতে বারবার request পাঠানো; সহজ, কিন্তু বেশিরভাগ উত্তর খালি আর খবর দেরিতে পৌঁছায়।যেখানে শিখবেন: পর্ব ৪৩
Polymorphismপলিমরফিজম
গ্রিক শব্দ, মানে “বহু রূপ”। একই কোড (যেমন p.fee(1000)) ভিন্ন ভিন্ন টাইপের object-এর সাথে কাজ করে, আর প্রতিটি object নিজের মতো করে সাড়া দেয়।যেখানে শিখবেন: পর্ব ১৯পর্ব ২০পর্ব ২২
pom.xml (Project Object Model)পম এক্সএমএল
Maven প্রজেক্টের মূল ফাইল; XML-এ লেখা থাকে প্রজেক্টের coordinates, packaging, properties, dependency আর plugin.যেখানে শিখবেন: পর্ব ৪৬
Portপোর্ট
Hexagonal নকশায় core-এর নিজের লেখা interface, যা বলে core বাইরের দুনিয়া থেকে কী চায় (যেমন ProductRepository, PaymentGateway); কীভাবে হবে, তা বলে না।যেখানে শিখবেন: পর্ব ৫৫
Portপোর্ট
০ থেকে ৬৫,৫৩৫-এর একটি সংখ্যা, যা একটি মেশিনের ভেতরে কোন প্রোগ্রাম ডেটা পাবে তা ঠিক করে; যেমন HTTP 80, HTTPS 443.যেখানে শিখবেন: পর্ব ৪৩
Possessive quantifierপজেসিভ কোয়ান্টিফায়ার
পেছনে + যোগ করা quantifier (*+, ++), যা যত বেশি সম্ভব খায় আর কখনো ফেরত দেয় না; অপ্রয়োজনীয় backtracking বন্ধ করতে কাজে লাগে।যেখানে শিখবেন: পর্ব ১৪
Predicate<T>প্রেডিকেট
একটি T নিয়ে true বা false দেয় এমন functional interface; method হলো test(t). and, or, negate দিয়ে একাধিক শর্ত জোড়া যায়।যেখানে শিখবেন: পর্ব ৩৪
Prefix sumপ্রিফিক্স সাম
চলমান যোগফলের তালিকা: pre[i] = প্রথম i টি মানের যোগফল; একবার O(n)-এ বানালে যেকোনো রেঞ্জ l..r-এর যোগফল pre[r] - pre[l-1], অর্থাৎ O(1)যেখানে শিখবেন: পর্ব ৫৪
PreparedStatementপ্রিপেয়ার্ড-স্টেটমেন্ট
JDBC-র interface: একটি SQL, যার মানগুলোর জায়গায় ? থাকে আর setString, setLong ইত্যাদি দিয়ে আলাদাভাবে বসানো হয়। SQL injection ঠেকায় আর একই SQL বারবার চালাতে দক্ষ।যেখানে শিখবেন: পর্ব ৪৯পর্ব ৫৭পর্ব ৫৮
Preview featureপ্রিভিউ ফিচার
Java-র পরীক্ষামূলক নতুন বৈশিষ্ট্য, যা --enable-preview flag ছাড়া চলে না; মতামতের ভিত্তিতে পরের সংস্করণে বদলাতে, স্থায়ী হতে বা বাদও পড়তে পারে।যেখানে শিখবেন: পর্ব ০৪পর্ব ১০পর্ব ১৫
Primary keyপ্রাইমারি কি
টেবিলের যে কলাম (বা কলামের জোড়া) প্রতিটি সারিকে আলাদাভাবে চেনায়; দুটি সারিতে একই হতে পারে না আর কখনো NULL নয়। সাধারণত একটি id সংখ্যা।যেখানে শিখবেন: পর্ব ৪৯
Primitive obsessionপ্রিমিটিভ অবসেশন
ফোন নম্বর, টাকা বা ডেলিভারির ধরনের মতো ধারণাকে নিজস্ব টাইপ না দিয়ে String বা int দিয়ে প্রকাশ করা; ওষুধ record, enum বা ছোট value class.যেখানে শিখবেন: পর্ব ৪৮
Primitive specializationপ্রিমিটিভ স্পেশালাইজেশন
int, long বা double সরাসরি নেয় বা দেয় এমন functional interface, যেমন IntPredicate, IntUnaryOperator, ToIntFunction; এতে প্রতি ডাকে boxing আর বাড়তি object তৈরি এড়ানো যায়।যেখানে শিখবেন: পর্ব ৩৪
Primitive stream (IntStream, LongStream, DoubleStream)প্রিমিটিভ স্ট্রিম
int, long বা double সরাসরি বহনকারী stream, যাতে boxing-এর খরচ নেই আর sum, average, max, summaryStatistics-এর মতো সংখ্যার method আছে; mapToInt দিয়ে তৈরি হয়, boxed দিয়ে আবার Stream হয়যেখানে শিখবেন: পর্ব ৩৫
Primitive typeপ্রিমিটিভ টাইপ
Java-র ৮টি মৌলিক টাইপ: byte, short, int, long, float, double, char আর boolean. এদের ভ্যারিয়েবলের ঘরে মানটাই সরাসরি থাকে, এরা object নয় আর null হতে পারে না।যেখানে শিখবেন: পর্ব ০৬পর্ব ১৫পর্ব ২৮
Principalপ্রিন্সিপাল
Authentication object-এর “কে” অংশ — সাধারণত username, ফোন নম্বর বা UserDetails object; auth.getName() দিয়ে নাম পাওয়া যায়।যেখানে শিখবেন: পর্ব ৫৩
Principle of least privilegeলিস্ট প্রিভিলেজ
প্রতিটি প্রোগ্রাম বা ডেটাবেস ব্যবহারকারীকে কাজের জন্য ঠিক যতটুকু অনুমতি দরকার ততটুকুই দেওয়ার নীতি — যেমন অ্যাপের ব্যবহারকারী টেবিল DROP করতে পারবে না।যেখানে শিখবেন: পর্ব ৪৯পর্ব ৫৩পর্ব ৫৫
printfপ্রিন্ট-এফ
ছাঁচ মেনে লেখা ছাপার method; ছাঁচের %d জায়গায় পূর্ণসংখ্যা, %.2f জায়গায় দুই দশমিকের সংখ্যা আর %n জায়গায় নতুন লাইন বসে।যেখানে শিখবেন: পর্ব ০১পর্ব ০৯
PrintWriterপ্রিন্ট রাইটার
java.io-এর লেখার class, যাতে print, println, printf আছে; BufferedWriter-এর ওপর বসালে লেখা জমিয়ে রাখে, আর flush() ডাকলে একবারে পাঠায়যেখানে শিখবেন: পর্ব ৪৩পর্ব ৫৪
PriorityQueueপ্রায়োরিটি কিউ
java.util-এর একটি Queue (Java 5 থেকে), যা আসার ক্রমে নয়, মানের ক্রমে বের করে — ডিফল্টে সবচেয়ে ছোটটি আগে। ভেতরে একটি binary min-heap; offer ও poll O(log n), peek O(1); null রাখা যায় নাযেখানে শিখবেন: পর্ব ৩২পর্ব ৩৩পর্ব ৫৪
privateপ্রাইভেট
সবচেয়ে কড়া access modifier: field, method বা constructor শুধু নিজের class-এর ভেতর থেকে ব্যবহার করা যায়। নিয়মটি class-ভিত্তিক, তাই একই class-এর কোড অন্য object-এর private field-ও পড়তে পারে।যেখানে শিখবেন: পর্ব ১৭
ProblemDetailপ্রবলেম ডিটেইল
Spring Framework 6-এর class, যা RFC 9457 (আগে RFC 7807) মানের error JSON বানায় — type, title, status, detail, instance field-সহ।যেখানে শিখবেন: পর্ব ৫১
Processপ্রসেস
অপারেটিং সিস্টেমে চলমান একটি প্রোগ্রাম, নিজের আলাদা মেমরি নিয়ে। একটি process আরেকটির মেমরিতে সরাসরি হাত দিতে পারে না; একটি JVM একটি process, যার ভেতরে অনেক thread থাকে।যেখানে শিখবেন: পর্ব ৪০পর্ব ৫৮
Producer-consumer patternপ্রডিউসার-কনজিউমার প্যাটার্ন
একদল thread কাজ বা ডেটা তৈরি করে (producer) আর আরেকদল তা সামলায় (consumer), মাঝখানে একটি thread-safe queue; খালি হলে consumer আর ভরা হলে producer অপেক্ষা করেযেখানে শিখবেন: পর্ব ৩২পর্ব ৪০পর্ব ৪১
Product typeপ্রোডাক্ট টাইপ
যে টাইপের একটি মানে কয়েকটি অংশ একসাথে থাকে — যেমন Success-এ txId এবং amount দুটোই। Java-তে record হলো এর সবচেয়ে পরিষ্কার রূপ।যেখানে শিখবেন: পর্ব ২৪পর্ব ২৬
program to an interfaceপ্রোগ্রাম টু অ্যান ইন্টারফেস
ভ্যারিয়েবল, parameter আর return type নির্দিষ্ট class-এর বদলে চুক্তির টাইপে ঘোষণা করার নীতি, যেমন List x = new ArrayList; এতে implementation বদলালে বাকি কোড বদলাতে হয় না।যেখানে শিখবেন: পর্ব ২১পর্ব ৩০পর্ব ৪৭
Project Amberপ্রজেক্ট অ্যাম্বার
OpenJDK-র একটি প্রকল্প, যার লক্ষ্য Java ভাষাকে ছোট ছোট ধাপে আরও সংক্ষিপ্ত ও প্রকাশক্ষম করা। var, switch expression, text block, record, sealed class আর pattern matching এই প্রকল্প থেকেই এসেছে।যেখানে শিখবেন: পর্ব ২৬
Project Loomপ্রজেক্ট লুম
OpenJDK-র প্রকল্প, যার লক্ষ্য Java-য় হালকা concurrency — virtual thread, structured concurrency আর scoped value; নেতৃত্বে Ron Pressler, প্রস্তাব ২০১৭ সালের দিকেযেখানে শিখবেন: পর্ব ৪২
Project Valhallaপ্রজেক্ট ভালহালা
OpenJDK-র দীর্ঘমেয়াদি প্রকল্প, যার লক্ষ্য identity-হীন value class আর পরে primitive-এর ওপরও কার্যকর generics; এখনো কাজ চলছে, কোনো LTS সংস্করণে স্থায়ী নয়যেখানে শিখবেন: পর্ব ২৮পর্ব ৩৬পর্ব ৪৪
Projectionপ্রজেকশন
query থেকে পুরো entity-র বদলে শুধু দরকারি কলাম একটি ছোট টাইপে আনা — record DTO (select new ...) বা Spring Data-র interface projection; managed নয়, তাই পড়ার কাজে হালকা ও দ্রুত।যেখানে শিখবেন: পর্ব ৫২
Promotion (tenuring)প্রমোশন
কয়েকটি minor GC পেরিয়ে বেঁচে যাওয়া object-কে young থেকে old generation-এ সরানো। HotSpot-এ বয়সের সীমা সর্বোচ্চ ১৫যেখানে শিখবেন: পর্ব ৪৪
protectedপ্রোটেক্টেড
যে access modifier একই package-এর সবাইকে আর অন্য package-এর subclass-কে (উত্তরাধিকার সূত্রে) ব্যবহারের সুযোগ দেয়; package-private-এর চেয়ে বেশি খোলা।যেখানে শিখবেন: পর্ব ১৭পর্ব ১৯পর্ব ৫৭
Protocol (network protocol)প্রোটোকল
দুই প্রোগ্রাম বা যন্ত্র কোন ভাষায়, কোন ক্রমে আর কোন ফরম্যাটে বার্তা আদান-প্রদান করবে, তার আগে থেকে ঠিক করা নিয়ম; যেমন TCP, IP, HTTP, WebSocket.যেখানে শিখবেন: পর্ব ৪৩
Protocol Buffers (protobuf)প্রোটোকল বাফারস
Google-এর তৈরি binary serialization ফরম্যাট, ২০০৮ সালে open source করা হয়। .proto ফাইলে schema লেখা হয়, byte-এ key-এর নামের বদলে field নম্বর যায়, তাই বার্তা ছোট ও দ্রুত; gRPC-র ভিত্তি।যেখানে শিখবেন: পর্ব ৩৯
Proxy patternপ্রক্সি প্যাটার্ন
আসল object-এর মতো একই interface-ওয়ালা প্রতিনিধি object, যে আসলটিতে পৌঁছানো নিয়ন্ত্রণ করে — দেরিতে তৈরি, অনুমতি যাচাই বা দূরের সার্ভারের প্রতিনিধিত্ব।যেখানে শিখবেন: পর্ব ৪৮পর্ব ৫২
Pseudocodeসুডোকোড
কোনো নির্দিষ্ট ভাষার ব্যাকরণ ছাড়া সাধারণ ভাষায় লেখা অ্যালগরিদমের ধাপ, যা পরে যেকোনো ভাষায় অনুবাদ করা যায়যেখানে শিখবেন: পর্ব ০২
publicপাবলিক
সবচেয়ে খোলা access modifier: যেকোনো package-এর যেকোনো class ব্যবহার করতে পারে, যদি class-টিও দেখা যায়। একবার public করলে বাইরের কোড নির্ভর করতে শুরু করে, তাই বদলানো কঠিন।যেখানে শিখবেন: পর্ব ১৭
Pure methodপিওর মেথড
যে method-এর ফল শুধু তার argument-এর ওপর নির্ভর করে এবং যা বাইরের কিছু বদলায় না বা ছাপে না। একই input দিলে সবসময় একই output.যেখানে শিখবেন: পর্ব ১২পর্ব ৩৪পর্ব ৩৫

Q

Quantifierকোয়ান্টিফায়ার
আগের জিনিসটি কতবার আসবে তা বলার চিহ্ন: ? (০ বা ১), * (০ বা বেশি), + (১ বা বেশি), {n} বা {n,m}.যেখানে শিখবেন: পর্ব ১৪
Query parameterকোয়েরি প্যারামিটার
URL-এ ?-এর পরের key=value অংশ, যেমন ?category=grocery&page=0; ছাঁকা, সাজানো আর পাতা বাছার জন্য। Spring-এ @RequestParam দিয়ে পড়া হয়।যেখানে শিখবেন: পর্ব ৫১
Queueকিউ
যে collection-এ জিনিস ঢোকানো হয় আর একটি নির্দিষ্ট নিয়মে “পরের জন” বের করা হয়; সাধারণত যে আগে এসেছে সে আগে যায় (FIFO নিয়ম)। Java-তে java.util.Queue interface (Java 5 থেকে), যার method offer, poll, peek আর add, remove, elementযেখানে শিখবেন: পর্ব ৩২
Queueing theoryকিউইং থিওরি
লাইন বা অপেক্ষার গাণিতিক বিশ্লেষণ — কত দ্রুত আসে, কত দ্রুত সেবা হয়, গড়ে কত অপেক্ষা; টেলিফোন লাইনের জন্য A. K. Erlang-এর কাজ (১৯০৯) থেকে শুরুযেখানে শিখবেন: পর্ব ৩২

R

Race conditionরেস কন্ডিশন
যখন একটি প্রোগ্রামের ফল নির্ভর করে thread-গুলোর চলার সময়ক্রমের ওপর — কে আগে পৌঁছাল। ফলে কখনো ঠিক, কখনো ভুল ফল আসে, আর bug পুনরুৎপাদন করা কঠিন হয়।যেখানে শিখবেন: পর্ব ৪০পর্ব ৪৭পর্ব ৪৯
Rainbow tableরেইনবো টেবিল
সাধারণ পাসওয়ার্ডগুলোর hash আগে থেকে হিসাব করে রাখা বিশাল তালিকা; salt ব্যবহার করলে এটি অকেজো হয়ে যায়।যেখানে শিখবেন: পর্ব ৫৩
Rate limitingরেট লিমিটিং
একজন client নির্দিষ্ট সময়ে কতবার API ডাকতে পারবে তার সীমা; পার হলে সাধারণত 429 Too Many Requestsযেখানে শিখবেন: পর্ব ৫১পর্ব ৫৩
Raw typeর টাইপ
type argument ছাড়া লেখা generic টাইপ, যেমন শুধু List; Java 5-এর আগের কোডের সাথে সামঞ্জস্যের জন্য রাখা, এতে টাইপ যাচাই বন্ধ থাকে আর unchecked warning আসে — নতুন কোডে কখনো নয়যেখানে শিখবেন: পর্ব ২৮
Reachability (reachable object)রিচেবিলিটি
কোনো GC root থেকে reference ধরে ধরে একটি object-এর কাছে পৌঁছানো যায় কি না। পৌঁছানো গেলে object জীবিত, না গেলে garbageযেখানে শিখবেন: পর্ব ৪৪
Reactive programmingরিঅ্যাক্টিভ প্রোগ্রামিং
ঘটনা বা ডেটার ধারার ওপর operator-এর শিকল সাজিয়ে non-blocking ভাবে কাজ করার ধাঁচ, যেখানে অল্প কয়েকটি thread অনেক সংযোগ সামলায়; যেমন Spring WebFlux, RxJava, Project Reactorযেখানে শিখবেন: পর্ব ৪১পর্ব ৪২
Read-modify-writeরিড-মডিফাই-রাইট
মান পড়া, বদলানো আর আবার লেখা — তিন ধাপের একটি কাজ, যেমন count++ বা balance += amt. ধাপগুলোর মাঝখানে অন্য thread ঢুকলে race হয়।যেখানে শিখবেন: পর্ব ৪০পর্ব ৫৯
Recordরেকর্ড
Java 16 থেকে স্থায়ী এক ধরনের ছোট class, যা মূলত কয়েকটি অপরিবর্তনীয় তথ্য একসাথে রাখার জন্য; constructor, equals, toString নিজে থেকে তৈরি হয়যেখানে শিখবেন: পর্ব ০১পর্ব ০২পর্ব ১০
Record accessorরেকর্ড অ্যাক্সেসর
record-এর প্রতিটি component-এর জন্য compiler-এর বানানো public method, যার নাম হুবহু component-এর নামে — amount(), getAmount() নয়। এটি শুধু field-এর মান ফেরত দেয়; record-এ কোনো setter থাকে না।যেখানে শিখবেন: পর্ব ২৫
Record componentরেকর্ড কম্পোনেন্ট
record-এর হেডারের বন্ধনীর ভেতরে ঘোষিত প্রতিটি নাম ও টাইপ, যেমন record P(int x, int y)-এ x আর y. প্রতিটি component থেকে একটি private final field আর একই নামের একটি accessor তৈরি হয়।যেখানে শিখবেন: পর্ব ২৫পর্ব ৪৫
Record patternরেকর্ড প্যাটার্ন
instanceof বা switch-এ Point(int x, int y)-এর মতো লিখে একটি object record কি না যাচাই আর তার component বের করা, এক ধাপে। Java 21-এ JEP 440 হিসেবে স্থায়ী।যেখানে শিখবেন: পর্ব ২৫পর্ব ২৬
Recursionরিকার্শন
যখন একটি method সমস্যার ছোট রূপ সমাধান করতে নিজেকেই ডাকে। প্রতিটি ডাক call stack-এ নতুন frame পায়।যেখানে শিখবেন: পর্ব ১২পর্ব ২৬পর্ব ৪৪
Recursive boundরিকার্সিভ বাউন্ড
যে bound-এ type parameter নিজের নাম দিয়েই নিজের শর্ত লেখে, যেমন T extends Comparable of T বা Enum-এর E extends Enum of Eযেখানে শিখবেন: পর্ব ২৮
Red-black treeরেড-ব্ল্যাক ট্রি
নিজে নিজে ভারসাম্য রাখা binary search tree; প্রতিটি node লাল বা কালো, আর রঙের নিয়ম মেনে উচ্চতা সবসময় O(log n) থাকে। TreeMap, TreeSet আর HashMap-এর লম্বা bucket এটি ব্যবহার করেযেখানে শিখবেন: পর্ব ৩১পর্ব ৫৮
Red-green-refactorরেড-গ্রিন-রিফ্যাক্টর
TDD-র তিন ধাপের চক্র: red — ব্যর্থ টেস্ট, green — পাস করানোর ন্যূনতম কোড, refactor — সব টেস্ট সবুজ রেখে কোড পরিষ্কারযেখানে শিখবেন: পর্ব ৪৭
ReDoS (Regular expression Denial of Service)রি-ডস
এমন ঝুঁকি, যেখানে একটি দুর্বল regex-এ লম্বা বিশেষ ইনপুট এলে catastrophic backtracking-এ CPU দখল হয়ে সার্ভিস বসে যায়; প্রতিরোধ হলো সরল নকশা, ইনপুটের দৈর্ঘ্যের সীমা আর বাইরের লেখা quote করা।যেখানে শিখবেন: পর্ব ১৪
Reduction (reduce)রিডাকশন
অনেক উপাদানকে বারবার একটি নিয়মে জুড়ে একটিমাত্র ফলে নামিয়ে আনা — যোগফল, গুণফল, সর্বোচ্চ; Java-তে reduce(identity, accumulator), আর sum, count, max, collect সবই এর বিশেষ রূপযেখানে শিখবেন: পর্ব ৩৫
ReentrantLockরিএন্ট্রান্ট লক
java.util.concurrent.locks-এর একটি lock, যা lock() আর unlock() দিয়ে synchronized-এর মতো একসাথে একটি thread-কে ঢুকতে দেয়; একই thread আবার নিতে পারে, আর tryLock, সময়সীমা ও ন্যায্য সারির মতো বাড়তি সুবিধা আছেযেখানে শিখবেন: পর্ব ৪০পর্ব ৪২
Refactoringরিফ্যাক্টরিং
প্রোগ্রামের বাইরের আচরণ না বদলে ভেতরের কোডের গঠন উন্নত করা, যেমন বড় method ভাগ করা বা ভালো নাম দেওয়া।যেখানে শিখবেন: পর্ব ২২পর্ব ৪৭পর্ব ৪৮
Referenceরেফারেন্স
Heap-এর কোনো object কোথায় আছে তার খোঁজ, যা ভ্যারিয়েবলে থাকে; একই object-এর দিকে একাধিক reference থাকতে পারে। C-র pointer-এর মতো, কিন্তু এ দিয়ে ঠিকানার হিসাব করা যায় নাযেখানে শিখবেন: পর্ব ০৫পর্ব ০৬পর্ব ০৭
Reference equalityরেফারেন্স ইকুয়ালিটি
দুটি reference একই object দেখায় কি না, তার তুলনা। Object-এর বেলায় == এটাই করে, ভেতরের বিষয়বস্তু মেলায় নাযেখানে শিখবেন: পর্ব ০৭পর্ব ১৫পর্ব ২৩
Reference typeরেফারেন্স টাইপ
primitive ছাড়া বাকি সব টাইপ, যেমন String, Integer, array বা নিজের class. এদের ভ্যারিয়েবলে object থাকে না, থাকে heap-এর object-টির খোঁজ (reference) অথবা null.যেখানে শিখবেন: পর্ব ০৬পর্ব ১৫পর্ব ২৮
Reflectionরিফ্লেকশন
চলার সময় একটি class-এর field, method, constructor খুঁজে বের করে ব্যবহার করার Java API (java.lang.reflect); setAccessible(true) দিয়ে private member-ও ছোঁয়া যায়, যদি module অনুমতি দেয়।যেখানে শিখবেন: পর্ব ১৭পর্ব ২৪পর্ব ৩৯
Refresh tokenরিফ্রেশ টোকেন
দীর্ঘ মেয়াদের একটি token, যা দিয়ে ছোট মেয়াদের নতুন access token নেওয়া হয়; সার্ভারের ডেটাবেসে থাকে বলে লগআউট বা চুরিতে বাতিল করা যায়।যেখানে শিখবেন: পর্ব ৫৩
Regex (regular expression)রেজেক্স
লেখার নকশা বোঝানোর ছোট একটি ভাষা, যেমন [0-9]+ মানে এক বা একাধিক অঙ্ক। split, replaceAll, matches এই ভাষা বোঝে, তাই সেখানে . বা | চিহ্নের বিশেষ মানে আছে।যেখানে শিখবেন: পর্ব ০৮পর্ব ১৪পর্ব ৫৭
Regex flagরেজেক্স ফ্ল্যাগ
Pattern.compile-এ দেওয়া বিকল্প, যা নকশার আচরণ বদলায়, যেমন CASE_INSENSITIVE, MULTILINE, DOTALL, COMMENTS, UNICODE_CHARACTER_CLASS; নকশার ভেতরে (?i), (?m)-এর মতো করেও লেখা যায়।যেখানে শিখবেন: পর্ব ১৪
Regressionরিগ্রেশন
আগে ঠিকমতো চলা কোনো আচরণ নতুন বদলের কারণে ভেঙে যাওয়া; স্বয়ংক্রিয় টেস্টের সবচেয়ে বড় কাজ এমন ভাঙন সাথে সাথে ধরাযেখানে শিখবেন: পর্ব ৪৭
Regular languageরেগুলার ল্যাঙ্গুয়েজ
যে লেখার সেট একটি বিশুদ্ধ regular expression বা finite automaton দিয়ে বর্ণনা করা যায়; ইচ্ছামতো গভীর বন্ধনী গোনা এর ক্ষমতার বাইরে।যেখানে শিখবেন: পর্ব ১৪
Reifiable typeরিইফায়েবল টাইপ
যে টাইপের পুরো তথ্য চলার সময়েও পাওয়া যায় — যেমন String, int[], raw List বা List of ?; List of String reifiable নয়, তাই তার array তৈরি করা যায় না, আর সাধারণ Object-কে instanceof দিয়ে List of String কি না পরীক্ষা করা যায় নাযেখানে শিখবেন: পর্ব ২৮
Reified genericsরিইফায়েড জেনেরিক্স
যে ব্যবস্থায় চলার সময়েও type argument জানা থাকে, যেমন C# ও .NET-এ; Java erasure ব্যবহার করে, তাই Java-র generics reified নয়যেখানে শিখবেন: পর্ব ২৮
Rejection policyরিজেকশন পলিসি
pool আর সারি দুটোই ভরা হলে, বা pool বন্ধ হলে, নতুন কাজের কী হবে তার নিয়ম: AbortPolicy (ডিফল্ট, RejectedExecutionException), CallerRunsPolicy, DiscardPolicy, DiscardOldestPolicyযেখানে শিখবেন: পর্ব ৪১
Relational databaseরিলেশনাল ডেটাবেস
যে ডেটাবেসে ডেটা থাকে সারি-কলামের টেবিলে, আর টেবিলগুলো key দিয়ে জোড়া; প্রশ্ন করা হয় SQL দিয়ে। যেমন PostgreSQL, MySQL, Oracle, SQLite.যেখানে শিখবেন: পর্ব ৪৯
Relative pathরিলেটিভ পাথ
মূল থেকে নয়, বর্তমান working directory থেকে গোনা ঠিকানা, যেমন data/khata.csv. প্রোগ্রাম অন্য ফোল্ডার থেকে চালালে একই relative path অন্য ফাইল দেখাতে পারে।যেখানে শিখবেন: পর্ব ৩৭
Relaxation (edge relaxation)রিল্যাক্সেশন
সবচেয়ে ছোট পথের অ্যালগরিদমের মূল ধাপ: u হয়ে v-তে যাওয়া যদি v-এর বর্তমান জানা দূরত্বের চেয়ে কম হয়, তাহলে dist[v] কমিয়ে নতুন মান লেখাযেখানে শিখবেন: পর্ব ৫৪
Reluctant (lazy) quantifierরিলাকট্যান্ট কোয়ান্টিফায়ার
পেছনে ? যোগ করা quantifier (*?, +?), যা যত কম সম্ভব অক্ষর খায় আর দরকার হলে একটি একটি করে বাড়ায়; অন্য ভাষায় একে lazy বলে।যেখানে শিখবেন: পর্ব ১৪
removeIf()রিমুভ ইফ
Java 8 থেকে Collection-এর একটি method, যা একটি শর্ত (সাধারণত lambda) নেয় আর যেসব উপাদান শর্ত মানে সেগুলো নিরাপদে একবারে বাদ দেয়; কিছু বাদ গেলে true ফেরত দেয়যেখানে শিখবেন: পর্ব ৩০
REPL (Read–Eval–Print Loop)রেপল
যে পরিবেশ একটি লাইন পড়ে, হিসাব করে, ফল দেখায়, তারপর আবার পরের লাইনের জন্য অপেক্ষা করে। দ্রুত পরীক্ষা-নিরীক্ষার জন্য উপযোগী।যেখানে শিখবেন: পর্ব ০৩
Replace Conditional with Polymorphismরিপ্লেস কন্ডিশনাল উইথ পলিমরফিজম
টাইপ দেখে if/switch-এর শিকলের বদলে প্রতিটি টাইপকে নিজের method দেওয়ার refactoring, যাতে dynamic dispatch সঠিক কোড বেছে নেয় — যেমন constant-ভিত্তিক শরীরওয়ালা enum.যেখানে শিখবেন: পর্ব ৪৮
Repository patternরিপোজিটরি প্যাটার্ন
ডেটা রাখা ও আনার সব কাজ একটি interface-এর পেছনে রাখার নকশা, যা ব্যবসার ভাষায় method দেয় (findByPhone, save); ভেতরে JDBC, ORM বা মেমরির Map — বাকি কোড জানে না।যেখানে শিখবেন: পর্ব ৪৯পর্ব ৫১
Reproducible buildরিপ্রোডিউসিবল বিল্ড
একই সোর্স থেকে যে কেউ যেকোনো মেশিনে build করলে বাইট-বাই-বাইট হুবহু একই ফল পাওয়া; এতে প্রমাণ করা যায় একটি binary সত্যিই সেই সোর্স থেকে তৈরি।যেখানে শিখবেন: পর্ব ৪৬
Resize / rehashরিসাইজ / রিহ্যাশ
hash table ভরে গেলে আরও বড় (HashMap-এ দ্বিগুণ) একটি array বানিয়ে প্রতিটি entry-কে নতুন ঘরে সরানো; একবারের খরচ O(n), কিন্তু কদাচিৎ ঘটে বলে গড়ে প্রতিটি put O(1) থাকেযেখানে শিখবেন: পর্ব ৩১পর্ব ৫৮পর্ব ৫৯
Resource (REST)রিসোর্স
API-তে নাম ও ঠিকানা দিয়ে চেনা যায় এমন একটি জিনিস বা তার সংগ্রহ — যেমন পণ্য (/products/7) বা /orders দিয়ে অর্ডারের তালিকা।যেখানে শিখবেন: পর্ব ৫১
ResponseEntityরেসপন্স এনটিটি
Spring-এর class, যা দিয়ে HTTP উত্তরের status, header আর body তিনটিই নিজে ঠিক করা যায় — যেমন ResponseEntity.created(uri).body(dto) দেয় 201 আর Locationযেখানে শিখবেন: পর্ব ৫১
Responsibilityরেসপন্সিবিলিটি
একটি class কী জানবে আর কী করবে — তার দায়িত্ব; ছোট ক্রিয়াপদে লেখা হয়যেখানে শিখবেন: পর্ব ০২পর্ব ২২
REST (Representational State Transfer)রেস্ট
Roy Fielding-এর বর্ণিত ওয়েব-নকশার ধরন: ডেটাকে URL-ওয়ালা resource হিসেবে রাখা, HTTP method দিয়ে তার ওপর কাজ, stateless request আর সঠিক status code.যেখানে শিখবেন: পর্ব ৫১পর্ব ৫৫
Result typeরেজাল্ট টাইপ
কিছু ভাষায় (যেমন Rust-এর Result) error-কে exception হিসেবে না ছুড়ে ফেরত-মান হিসেবে দেওয়ার টাইপ: হয় সফল মান, নয় error — ডাকার কোডকে দুটোই সামলাতে হয়।যেখানে শিখবেন: পর্ব ২৯পর্ব ৩৬পর্ব ৫৫
ResultSetরেজাল্ট-সেট
SELECT-এর ফল; একটি cursor, যা শুরুতে প্রথম সারির আগে থাকে আর next() দিয়ে এক সারি করে এগোয়। getString, getLong দিয়ে কলামের মান পড়া হয় (কলাম index শুরু ১ থেকে)।যেখানে শিখবেন: পর্ব ৪৯
Retention policyরিটেনশন পলিসি
একটি annotation কতদূর টিকে থাকবে: SOURCE (compile-এর পরে মুছে যায়), CLASS (.class ফাইলে থাকে, চলার সময় অদৃশ্য; ডিফল্ট) বা RUNTIME (reflection দিয়ে পড়া যায়)।যেখানে শিখবেন: পর্ব ৪৫পর্ব ৫৭
return statementরিটার্ন স্টেটমেন্ট
return লিখে method তখনই শেষ করা হয় এবং (দরকার হলে) একটি মান ডাকার জায়গায় ফেরত পাঠানো হয়।যেখানে শিখবেন: পর্ব ১২
Return typeরিটার্ন টাইপ
method কাজ শেষে কোন টাইপের মান ফেরত দেবে, তা method-এর নামের আগে লেখা থাকে (যেমন int, double বা String টাইপ)। কিছু ফেরত না দিলে লেখা হয় void.যেখানে শিখবেন: পর্ব ১২
Rollbackরোলব্যাক
transaction-এর সব অস্থায়ী বদল বাতিল করে ডেটাবেসকে transaction শুরুর আগের অবস্থায় ফেরানো। JDBC-তে con.rollback(), সাধারণত catch block-এ।যেখানে শিখবেন: পর্ব ৪৯পর্ব ৫২
Runnableরানেবল
ফল ছাড়া একটি কাজের functional interface, method void run(); কিছু ফেরত দেয় না আর checked exception ছুড়তে পারে নাযেখানে শিখবেন: পর্ব ৪০পর্ব ৪১
Runtime polymorphismরানটাইম পলিমরফিজম
যে “বহু রূপ” চলার সময় ঠিক হয় — Java-তে method overriding আর dynamic dispatch. একে dynamic polymorphism বা subtype polymorphism-ও বলে।যেখানে শিখবেন: পর্ব ২০
Runtime type (dynamic type)রানটাইম টাইপ
ভ্যারিয়েবল এই মুহূর্তে আসলে যে object-কে দেখাচ্ছে, তার class. new BkashPayment() হলে runtime type BkashPayment, ভ্যারিয়েবলের ঘোষিত টাইপ যা-ই হোক।যেখানে শিখবেন: পর্ব ২০
RuntimeExceptionরানটাইম এক্সেপশন
Exception-এর বিশেষ subclass; এর সব বংশধর unchecked. IllegalArgumentException, NullPointerException, ArithmeticException এই পরিবারের।যেখানে শিখবেন: পর্ব ২৯

S

Safe methodসেফ মেথড
যে HTTP method সার্ভারের অবস্থা বদলানোর জন্য নয়, যেমন GET আর HEAD; যতবার খুশি পাঠানো যায়।যেখানে শিখবেন: পর্ব ৫১
Saga patternসাগা প্যাটার্ন
একটি বড় কাজকে কয়েকটি ছোট transaction-এ ভাগ করে প্রতিটির জন্য একটি compensating action রাখার নকশা; কোনো ধাপ ব্যর্থ হলে আগের ধাপগুলো উল্টো ক্রমে উল্টানো হয়।যেখানে শিখবেন: পর্ব ৫৫
Saltসল্ট
পাসওয়ার্ড hash করার আগে মেশানো random byte, প্রতিটি ব্যবহারকারীর জন্য আলাদা। গোপন নয়, hash-এর পাশেই রাখা হয়; একই পাসওয়ার্ডের hash-কে আলাদা করে আর আগে থেকে বানানো তালিকা অকেজো করে।যেখানে শিখবেন: পর্ব ৫৩
SBOM (Software Bill of Materials)এস-বম
একটি সফটওয়্যারে থাকা সব component আর তাদের version-এর যন্ত্রপাঠযোগ্য তালিকা; নতুন দুর্বলতা প্রকাশ পেলে দ্রুত জানা যায় কোন প্রোগ্রাম ঝুঁকিতে।যেখানে শিখবেন: পর্ব ৪৬
Scalar replacementস্কেলার রিপ্লেসমেন্ট
Escape analysis-এর পর JIT-এর একটি অপ্টিমাইজেশন: method-এর বাইরে না যাওয়া object বানানোই বাদ দিয়ে তার field-গুলোকে সাধারণ local মান হিসেবে রাখাযেখানে শিখবেন: পর্ব ৪৪
Scannerস্ক্যানার
java.util.Scanner class, যা কীবোর্ড (System.in), ফাইল বা String থেকে লেখা পড়ে সংখ্যা ও শব্দে ভাগ করে দেয় — nextInt(), nextLine() ইত্যাদি method দিয়ে।যেখানে শিখবেন: পর্ব ০৯পর্ব ১১পর্ব ২২
ScheduledExecutorServiceশিডিউলড এক্সিকিউটর সার্ভিস
দেরিতে (schedule) বা নির্দিষ্ট সময় পরপর (scheduleAtFixedRate, scheduleWithFixedDelay) কাজ চালানোর ExecutorService; পুরোনো java.util.Timer-এর আধুনিক বিকল্পযেখানে শিখবেন: পর্ব ৪১
Schemaস্কিমা
ডেটার গঠনের আনুষ্ঠানিক বর্ণনা — কোন field বা কলাম, তার টাইপ আর নিয়ম; relational ডেটাবেসে টেবিল, কলাম, key আর constraint-এর নকশা, আর Protocol Buffers বা JSON Schema-তে message-এর গঠন।যেখানে শিখবেন: পর্ব ৩৯পর্ব ৪৯
Schema evolutionস্কিমা ইভোলিউশন
সময়ের সাথে ডেটার গঠন বদলালেও (field যোগ বা বাদ) পুরোনো আর নতুন সংস্করণের প্রোগ্রাম যাতে একে অপরের ডেটা পড়তে পারে, সেই নিয়ম ও কৌশল।যেখানে শিখবেন: পর্ব ৩৯
Scopeস্কোপ
কোডের যে অংশে একটি ভ্যারিয়েবলের নাম ব্যবহার করা যায়। Java-তে local ভ্যারিয়েবলের scope তার { } block-এর ভেতরে; block শেষ হলে নামটি আর থাকে না।যেখানে শিখবেন: পর্ব ১১পর্ব ১২
ScopedValueস্কোপড ভ্যালু
একটি নির্দিষ্ট কোড-পরিসরের জন্য অপরিবর্তনীয় মান বাঁধার API, যা পরিসর শেষে নিজে মুছে যায় — ThreadLocal-এর হালকা ও নিরাপদ বিকল্প। Java 21-এ preview (JEP 446); পরে Java 25-এ স্থায়ী (JEP 506)যেখানে শিখবেন: পর্ব ৪২
Sealed class / interfaceসিলড ক্লাস
যে class বা interface আগে থেকেই বলে দেয় কোন কোন class তাকে extend বা implement করতে পারবে; Java 17 থেকে এটি স্থায়ী। ফলে compiler সব উপ-টাইপ জানে আর switch-এ exhaustiveness যাচাই করতে পারে।যেখানে শিখবেন: পর্ব ১০পর্ব ২০পর্ব ২৪
Security headersসিকিউরিটি হেডার
উত্তরের যে header ব্রাউজারকে নিরাপত্তার নির্দেশ দেয় — HSTS, X-Content-Type-Options, X-Frame-Options, Cache-Control, Content-Security-Policy. Spring Security প্রথম কয়েকটি ডিফল্টে দেয়।যেখানে শিখবেন: পর্ব ৫৩
SecurityContextHolderসিকিউরিটি কনটেক্সট হোল্ডার
বর্তমান request-এর SecurityContext, আর তার ভেতরের Authentication object রাখার জায়গা; ডিফল্টে ThreadLocal, request শেষে মুছে ফেলা হয়।যেখানে শিখবেন: পর্ব ৫৩
SecurityFilterChainসিকিউরিটি ফিল্টার চেইন
নির্দিষ্ট পথের request-এর জন্য ক্রমে সাজানো security filter-এর তালিকা। Spring Security 6-এ HttpSecurity দিয়ে একটি @Bean হিসেবে কনফিগার করা হয়।যেখানে শিখবেন: পর্ব ৫৩
Selector (Java NIO)সিলেক্টর
java.nio.channels-এর class, যা দিয়ে একটি thread অনেক non-blocking channel নজরে রাখে আর জানতে পারে কোনগুলোতে এখন পড়া বা লেখা যাবে; event-loop সার্ভারের ভিত্তি।যেখানে শিখবেন: পর্ব ৪৩
Selector expressionসিলেক্টর
switch-এর বন্ধনীর ভেতরের মান, যার সাথে case-গুলো মেলানো হয়। Java 21-এ এটি int-এর মতো ছোট পূর্ণসংখ্যা, char, String, enum বা (pattern-এর জন্য) যেকোনো reference টাইপ হতে পারে।যেখানে শিখবেন: পর্ব ১০
Semantic versioningসিমান্টিক ভার্সনিং
MAJOR.MINOR.PATCH আকারের version-রীতি: PATCH বাড়ে ভুল সংশোধনে, MINOR বাড়ে পুরোনো কোড না ভেঙে নতুন সুবিধায়, MAJOR বাড়ে যখন পুরোনো কোড ভাঙতে পারে।যেখানে শিখবেন: পর্ব ৪৬
Semaphoreসেমাফোর
নির্দিষ্ট সংখ্যক অনুমতি (টোকেন) রাখা একটি concurrency যন্ত্র: acquire() একটি নেয় (না থাকলে অপেক্ষা), release() ফেরত দেয় — একসাথে কতগুলো thread একটি সম্পদ ব্যবহার করবে তা সীমিত করতে। Edsger Dijkstra-র ধারণাযেখানে শিখবেন: পর্ব ৪১পর্ব ৪২
Semicolon (;)সেমিকোলন
Java-তে প্রতিটি statement-এর শেষ চিহ্ন। লাইন ভাঙা দিয়ে নয়, ; দিয়েই compiler বোঝে একটি নির্দেশ শেষ হলো।যেখানে শিখবেন: পর্ব ০৪
Sentinel valueসেন্টিনেল ভ্যালু
ইনপুটের শেষ বোঝাতে আগে থেকে ঠিক করা একটি বিশেষ মান, যেমন 0 বা -1. লুপ এই মান পেলে থামে, আর মানটি নিজে হিসাবে ঢোকে না।যেখানে শিখবেন: পর্ব ১১পর্ব ৫৮
Sequence (database)সিকোয়েন্স
ডেটাবেসের একটি আলাদা বস্তু, যা প্রতিবার চাইলে পরের সংখ্যা দেয়; GenerationType.SEQUENCE-এ id এখান থেকে আসে, আর allocationSize দিয়ে একবারে অনেকগুলো সংখ্যা নেওয়া যায়।যেখানে শিখবেন: পর্ব ৫২
Serial GCসিরিয়াল জি-সি
এক thread দিয়ে প্রোগ্রাম থামিয়ে কাজ করা সবচেয়ে সরল collector; ছোট heap ও এক CPU-র মেশিনের জন্য। flag: -XX:+UseSerialGCযেখানে শিখবেন: পর্ব ৪৪
Serializationসিরিয়ালাইজেশন
object-কে byte বা লেখায় (যেমন JSON) রূপান্তর করা, যাতে ফাইলে রাখা বা নেটওয়ার্কে পাঠানো যায়; উল্টো কাজটিকে বলে deserialization. বিস্তারিত পর্ব ৩৮-এ।যেখানে শিখবেন: পর্ব ২৪পর্ব ২৫পর্ব ৩৬
serialVersionUIDসিরিয়াল ভার্শন ইউ-আই-ডি
Serializable class-এর private static final long সংস্করণ নম্বর, যা stream-এ লেখা থাকে। পড়ার সময় stream আর লোকাল class-এর নম্বর না মিললে InvalidClassException; নিজে না লিখলে JVM class-এর গঠন থেকে হিসাব করে, যা ছোট বদলেও পাল্টে যেতে পারে।যেখানে শিখবেন: পর্ব ৩৯
ServerSocketসার্ভার সকেট
java.net-এর class, যা একটি port-এ নতুন TCP সংযোগের অপেক্ষা করে; accept() প্রতিটি client-এর জন্য একটি আলাদা Socket ফেরত দেয়।যেখানে শিখবেন: পর্ব ৪৩
Service layerসার্ভিস লেয়ার
ব্যবসার নিয়মের স্তর — যেমন স্টক না থাকলে অর্ডার নয়; HTTP জানে না, transaction সাধারণত এখানেই। Spring-এ @Service লেখা classযেখানে শিখবেন: পর্ব ৫১
Servlet Filterসার্ভলেট ফিল্টার
Java ওয়েব সার্ভারে প্রতিটি HTTP অনুরোধের আগে-পরে চলা একটি handler; chain.doFilter(...) ডেকে অনুরোধ পরের filter-এ পাঠায়, না ডাকলে সেখানেই থামে।যেখানে শিখবেন: পর্ব ৪৮পর্ব ৫৩
Session fixationসেশন ফিক্সেশন
লগইনের আগের জানা session id লগইনের পরেও চালু থাকলে অন্য কেউ সেটা ব্যবহারের ঝুঁকি। Spring Security লগইনের মুহূর্তে session id বদলে এটি ঠেকায়।যেখানে শিখবেন: পর্ব ৫৩
Set (java.util.Set)সেট
একই উপাদান দুবার না রাখা collection-এর interface; index নেই, মূল কাজ যোগ করা, সরানো আর “আছে কি?” জানা। প্রধান implementation HashSet, LinkedHashSet আর TreeSetযেখানে শিখবেন: পর্ব ৩১
Set operations (union, intersection, difference)সেট অপারেশন
দুটি set-এর মিলন (addAll), ছেদ (retainAll) আর পার্থক্য (removeAll); Java-তে এই method-গুলো যে set-এর ওপর ডাকা হয় সেটাকেই বদলে দেয়, তাই আগে একটি কপি বানাতে হয়যেখানে শিখবেন: পর্ব ৩১
setAccessible(true)সেট-অ্যাক্সেসিবল
reflection-এর একটি method, যা private বা অন্যভাবে লুকানো field, method বা constructor-এর access-যাচাই বন্ধ করে ব্যবহারযোগ্য করে; encapsulation ভাঙে, আর module অনুমতি না দিলে কাজ করে না।যেখানে শিখবেন: পর্ব ৪৫
Shadowingশ্যাডোয়িং
ভেতরের scope-এর একটি নাম (যেমন parameter) বাইরের একই নামকে (যেমন field) ঢেকে ফেলা; তখন field-এ পৌঁছাতে this.name লিখতে হয়।যেখানে শিখবেন: পর্ব ১৬
Shallow copyশ্যালো কপি
শুধু বাইরের পাত্রটি নতুন করে বানানো কপি; ভেতরের object বা সারিগুলোর reference একই থাকে। array-এর clone() আর Arrays.copyOf এমন কপি দেয়।যেখানে শিখবেন: পর্ব ১৩পর্ব ১৬পর্ব ১৭
Shallow immutabilityশ্যালো ইমিউটেবিলিটি
শুধু বাইরের স্তর অপরিবর্তনীয় থাকা: field-এর reference আর বদলায় না, কিন্তু সেই reference যে List বা array দেখায়, তার ভেতরটা বদলাতে পারে। record ডিফল্টে এমনই, তাই defensive copy লাগে।যেখানে শিখবেন: পর্ব ২৫
Shenandoah GCশেনানডোয়া জি-সি
Red Hat-এর তৈরি কম-pause collector, যা object সরানোর কাজও প্রোগ্রামের পাশাপাশি করে; Java 15-এ production-ready, তবে সব JDK build-এ থাকে নাযেখানে শিখবেন: পর্ব ৪৪
Shift operatorশিফট অপারেটর
সংখ্যার bit-গুলো বাঁয়ে বা ডানে সরানোর অপারেটর: <<, >> আর >>>যেখানে শিখবেন: পর্ব ০৭
Short-circuit evaluationশর্ট-সার্কিট ইভ্যালুয়েশন
বাঁ দিক দেখেই ফল জানা গেলে ডান দিক হিসাব না করা: false && x বা true || x-এ x চলেই নাযেখানে শিখবেন: পর্ব ০৭পর্ব ১০পর্ব ৩৬
Short-circuiting operationশর্ট-সার্কিটিং অপারেশন
যে stream operation সব উপাদান না দেখেই কাজ শেষ করতে পারে — limit, findFirst, anyMatch, allMatch, noneMatch; এদের কারণে অসীম stream-ও নির্দিষ্ট সময়ে শেষ হয়যেখানে শিখবেন: পর্ব ৩৫পর্ব ৫৬
shutdown / shutdownNow / closeশাটডাউন
executor বন্ধের উপায়: shutdown নতুন কাজ নেয় না কিন্তু জমা কাজ শেষ করে; shutdownNow চলমান কাজে interrupt পাঠায় আর শুরু না হওয়া কাজ ফেরত দেয়; close (Java 19 থেকে) বন্ধ করে সব শেষ হওয়া পর্যন্ত অপেক্ষা করেযেখানে শিখবেন: পর্ব ৪১
Side effectসাইড ইফেক্ট
মান দেওয়ার বাইরে একটি expression যে বাড়তি পরিবর্তন ঘটায়, যেমন i++ ভ্যারিয়েবল বদলায় বা println স্ক্রিনে লেখেযেখানে শিখবেন: পর্ব ০৭পর্ব ১২পর্ব ৩৪
Sift-downসিফট-ডাউন
heap-এর শিকড়ে বসানো জিনিসকে তার দুই সন্তানের ছোটটির সাথে বারবার জায়গা বদল করে নিচে নামানো, যতক্ষণ না নিয়ম মেলে; poll-এর ভেতরের কাজ, O(log n)যেখানে শিখবেন: পর্ব ৩২
Sift-upসিফট-আপ
heap-এ নতুন জিনিস শেষ ঘরে বসিয়ে, যতক্ষণ সে অভিভাবকের চেয়ে ছোট ততক্ষণ জায়গা বদল করে ওপরে তোলা; offer-এর ভেতরের কাজ, O(log n)যেখানে শিখবেন: পর্ব ৩২
Single inheritanceসিঙ্গেল ইনহেরিট্যান্স
প্রতিটি class-এর সরাসরি parent class থাকে একটিই — Java class-এর ক্ষেত্রে এই নিয়ম মানে; তবে একটি class অনেকগুলো interface implement করতে পারেযেখানে শিখবেন: পর্ব ১৯পর্ব ৫৮
Single Responsibility Principle (SRP)সিঙ্গল রেসপন্সিবিলিটি প্রিন্সিপল
একটি class বা module-এর বদলানোর কারণ থাকবে মাত্র একটি — অর্থাৎ সে একটিই দায়িত্বের এলাকার জন্য দায়ী থাকবে।যেখানে শিখবেন: পর্ব ৪৮
Singletonসিঙ্গেলটন
একটি design pattern, যেখানে একটি class-এর পুরো প্রোগ্রামে ঠিক একটি object থাকে আর সেটা পাওয়ার একটি সাধারণ পথ থাকে, যেমন private constructor আর static getInstance(); কার্যত global state বলে সমালোচিত। Spring-এ singleton scope মানে container-প্রতি একটি bean, global পথে নয়।যেখানে শিখবেন: পর্ব ১৮পর্ব ২৪পর্ব ৪০
SLF4Jএসএলএফ-ফোর-জে
Simple Logging Facade for Java — log লেখার একটি সাধারণ API; আসল লেখার কাজ করে নিচের লাইব্রেরি, Spring Boot-এ ডিফল্ট Logback.যেখানে শিখবেন: পর্ব ৫০
Sliding windowস্লাইডিং উইন্ডো
তালিকার পরপর কয়েকটি উপাদানের একটি চলমান জানালা: ডানে নতুন উপাদান যোগ হয়, বাঁ থেকে পুরোনো বাদ যায়, তাই প্রতিটি জানালার হিসাব নতুন করে করতে হয় নাযেখানে শিখবেন: পর্ব ৫৪পর্ব ৫৯
Slopsquattingস্লপস্কোয়াটিং
AI যে অস্তিত্বহীন package বা library-র নাম বানিয়ে বলে, সেই নামে আক্রমণকারীর আগেভাগে ক্ষতিকর package প্রকাশ করে রাখা; যাচাই না করে যোগ করলে ক্ষতিকর কোড ঢুকে পড়ে।যেখানে শিখবেন: পর্ব ৪৬
SNAPSHOT versionস্ন্যাপশট ভার্সন
-SNAPSHOT দিয়ে শেষ হওয়া version, যেমন 1.0.0-SNAPSHOT; মানে কাজ চলছে, একই version-এর ভেতরের জিনিস বদলাতে পারে। release version একবার প্রকাশের পর আর বদলায় না।যেখানে শিখবেন: পর্ব ৪৬
Socketসকেট
নেটওয়ার্ক সংযোগের এক প্রান্ত — প্রোগ্রাম এর মাধ্যমে ডেটা পাঠায় ও পায়; Java-তে java.net.Socket একটি TCP সংযোগ, যার getInputStream() আর getOutputStream() আছে।যেখানে শিখবেন: পর্ব ৪৩
SocketTimeoutExceptionসকেট টাইমআউট এক্সেপশন
নির্ধারিত সময়ে সংযোগ না হলে (connect timeout) বা ডেটা না এলে (setSoTimeout) ছোড়া IOException-এর উপশ্রেণি; বার্তা যেমন Read timed out.যেখানে শিখবেন: পর্ব ৪৩
SoftReferenceসফট রেফারেন্স
দুর্বল reference, যার object GC মেমরির টান পড়লে মুছতে পারে, আর OutOfMemoryError-এর আগে অবশ্যই মোছেযেখানে শিখবেন: পর্ব ৪৪
Software supply chainসফটওয়্যার সাপ্লাই চেইন
বাইরের কোড আপনার প্রোগ্রামে পৌঁছানোর পুরো পথ: library-র লেখক, repository, build tool, plugin আর CI; এর যেকোনো জায়গায় দুর্বলতা আপনার প্রোগ্রামেরও ঝুঁকি।যেখানে শিখবেন: পর্ব ৪৬পর্ব ৫৩
SOLIDসলিড
object-oriented নকশার পাঁচটি নীতির সংক্ষিপ্ত নাম — Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation আর Dependency Inversion. নীতিগুলো জনপ্রিয় করেন Robert C. Martin, আদ্যক্ষরের নামটি দেন Michael Feathers.যেখানে শিখবেন: পর্ব ৪৮
Source-file modeসোর্স-ফাইল মোড
Java 11 থেকে (JEP 330) java Main.java লিখে সরাসরি .java ফাইল চালানোর ব্যবস্থা। ফাইলটি মেমরিতে compile হয়ে চলে, ডিস্কে .class তৈরি হয় না।যেখানে শিখবেন: পর্ব ০৩
Space complexityস্পেস কমপ্লেক্সিটি
ইনপুটের আকার n বাড়লে একটি অ্যালগরিদমের বাড়তি মেমরি কোন হারে বাড়ে, তার Big-O মাপ; যেমন HashMap-এ সব মান রাখলে O(n)যেখানে শিখবেন: পর্ব ৫৯
Spliteratorস্প্লিটারেটর
Java 8-এর splittable iterator: উপাদান একে একে দেয় (tryAdvance), নিজেকে দুই ভাগ করতে পারে (trySplit), আর উৎসের বৈশিষ্ট্য জানায় (SIZED, ORDERED, SORTED); প্রতিটি stream-এর নিচে একটি spliterator থাকেযেখানে শিখবেন: পর্ব ৩৫
Spring Bootস্প্রিং বুট
Spring framework-এর ওপর তৈরি জনপ্রিয় কাঠামো, যা দিয়ে অল্প configuration-এ Java-তে ওয়েব সার্ভার, REST API আর microservice বানানো যায়।যেখানে শিখবেন: পর্ব ০১পর্ব ৪৬পর্ব ৫০
Spring Boot Actuatorঅ্যাকচুয়েটর
চালু অ্যাপের স্বাস্থ্য, metrics আর তথ্য জানার জন্য তৈরি endpoint দেওয়ার Spring Boot অংশ, যেমন /actuator/health; monitoring আর load balancer এটি ব্যবহার করে।যেখানে শিখবেন: পর্ব ৫০পর্ব ৫৫
Spring Boot DevToolsডেভটুলস
development-এর সুবিধার লাইব্রেরি: কোড বদলালে অ্যাপ নিজে থেকে দ্রুত restart করে; java -jar দিয়ে প্যাকেজ করা অ্যাপে নিজে থেকেই বন্ধ থাকে।যেখানে শিখবেন: পর্ব ৫০
Spring Boot starterস্টার্টার
একসাথে কাজ করে এমন লাইব্রেরিগুলোর পরীক্ষিত বান্ডিল, যেমন spring-boot-starter-web; একটি dependency যোগ করলেই মিলে যাওয়া সংস্করণের সব লাইব্রেরি আসে।যেখানে শিখবেন: পর্ব ৫০পর্ব ৫৩
Spring Data JPAস্প্রিং ডেটা জে-পি-এ
Spring-এর প্রকল্প, যেখানে শুধু JpaRepository extend করা একটি interface লিখলেই save, findById, pagination-সহ repository-র বাস্তবায়ন চলার সময় তৈরি হয়।যেখানে শিখবেন: পর্ব ৫১পর্ব ৫২
Spring Initializrস্প্রিং ইনিশিয়ালাইজার
start.spring.io ওয়েবসাইট ও IDE-র সহায়ক, যেখানে build টুল, Java সংস্করণ আর dependency বেছে একটি তৈরি Spring Boot প্রজেক্ট পাওয়া যায়।যেখানে শিখবেন: পর্ব ৫০
Spring profileস্প্রিং প্রোফাইল
dev, test, prod-এর মতো পরিবেশের নাম; সক্রিয় profile অনুযায়ী আলাদা properties ফাইল পড়া হয় আর @Profile-ওয়ালা bean তৈরি হয় বা বাদ পড়ে।যেখানে শিখবেন: পর্ব ৫০পর্ব ৫৫
Spring Securityস্প্রিং সিকিউরিটি
Spring-এর নিরাপত্তা framework — servlet filter-এর একটি শিকল দিয়ে প্রতিটি request-এর পরিচয় যাচাই আর অনুমতি পরীক্ষা করে, controller চলার আগেই। ২০০৮ সালের আগে নাম ছিল Acegi Security.যেখানে শিখবেন: পর্ব ৫৩
Spyস্পাই
আসল object-এর চারপাশে এমন মোড়ক, যা আসল কাজ করতে দেয় কিন্তু প্রতিটি ডাক রেকর্ড করে রাখে, যাতে পরে যাচাই করা যায়যেখানে শিখবেন: পর্ব ৪৭
SQLএসকিউএল / সিকুয়েল
Structured Query Language — relational ডেটাবেসে টেবিল বানানো, ডেটা ঢোকানো, খোঁজা, বদলানো আর মোছার ভাষা, যেমন CREATE TABLE, INSERT, SELECT, UPDATE, DELETE.যেখানে শিখবেন: পর্ব ৪৯
SQL injectionএসকিউএল ইনজেকশন
ব্যবহারকারীর ইনপুট SQL-এর লেখায় জোড়া লাগানোর ফলে ইনপুট নিজেই SQL-এর অংশ হয়ে query-র অর্থ বদলে দেওয়ার দুর্বলতা। প্রতিকার: PreparedStatement আর ? placeholder.যেখানে শিখবেন: পর্ব ৪৯পর্ব ৫৩পর্ব ৫৫
SQLExceptionএসকিউএল-এক্সেপশন
java.sql-এর checked exception, যা ভুল SQL, সংযোগের সমস্যা বা constraint ভাঙার মতো ডেটাবেস-ত্রুটি জানায়; getSQLState() আর getErrorCode() দিয়ে বিস্তারিত পাওয়া যায়।যেখানে শিখবেন: পর্ব ৪৯
SQLStateএসকিউএল-স্টেট
SQLException-এর পাঁচ অক্ষরের মানসম্মত কোড, যার প্রথম দুই অক্ষর শ্রেণি বলে — যেমন 08 মানে সংযোগের সমস্যা, 23 মানে constraint ভাঙা।যেখানে শিখবেন: পর্ব ৪৯
Stable sortস্টেবল সর্ট
যে sort-এ তুলনায় সমান দুটি উপাদান sort-এর আগে যে ক্রমে ছিল, পরেও সেই ক্রমেই থাকে; Java-তে object-এর list ও array-এর sort (TimSort) stableযেখানে শিখবেন: পর্ব ৩৩
Stack (call stack)স্ট্যাক
প্রতিটি thread-এর নিজের মেমরি-অংশ, যেখানে প্রতিটি method কলের জন্য একটি frame তৈরি হয়; তাতে local primitive মান আর reference থাকে, method শেষ হলে frame মুছে যায়যেখানে শিখবেন: পর্ব ০৫পর্ব ১২পর্ব ১৫
Stack (data structure)স্ট্যাক
LIFO নিয়মের data structure: শুধু ওপরে রাখা (push), ওপর থেকে তোলা (pop) আর ওপরেরটা দেখা (peek) যায়। Java-তে Deque আর ArrayDeque দিয়ে বানানো হয়, পুরোনো Stack class দিয়ে নয়যেখানে শিখবেন: পর্ব ৩২
Stack frameস্ট্যাক ফ্রেম
একটি method-ডাকের নিজস্ব খাতা — এতে থাকে তার parameter, local variable আর কাজ শেষে কোথায় ফিরতে হবে সেই তথ্য। return-এর সাথে মুছে যায়।যেখানে শিখবেন: পর্ব ১২পর্ব ১৫পর্ব ৪৪
Stack traceস্ট্যাক ট্রেস
exception ঘটলে ছাপা হওয়া বিবরণ: কোন thread, কোন exception, কী কারণ, আর at … লাইনগুলোতে কোন class-এর কোন method-এর কোন লাইনে ঘটেছে।যেখানে শিখবেন: পর্ব ০৪পর্ব ০৯পর্ব ১০
Stack unwindingস্ট্যাক আনওয়াইন্ডিং
exception ছোড়ার পর মিলে যাওয়া catch না পাওয়া পর্যন্ত call stack থেকে একটির পর একটি method-এর frame সরিয়ে ফেলার প্রক্রিয়া।যেখানে শিখবেন: পর্ব ২৯পর্ব ৫৬
StackOverflowErrorস্ট্যাক ওভারফ্লো এরর
call stack-এর জায়গা ফুরিয়ে গেলে JVM যে Error ছোড়ে — সাধারণত base case-হীন বা খুব গভীর recursion-এর কারণে।যেখানে শিখবেন: পর্ব ১২পর্ব ২৯পর্ব ৪৪
Standard error (System.err)স্ট্যান্ডার্ড এরর
error আর সতর্কবার্তার জন্য আলাদা আউটপুট নল; System.out ফাইলে পাঠালেও এর লেখা পর্দায় থেকে যায়, তাই আসল ফলের সাথে মেশে না।যেখানে শিখবেন: পর্ব ০৯পর্ব ২৯
Standard input (System.in)স্ট্যান্ডার্ড ইনপুট
প্রোগ্রামে ইনপুট ঢোকার তৈরি নল, সাধারণত কীবোর্ডের সাথে যুক্ত; Java-তে এটি System.in, যা কাঁচা বাইট দেয়।যেখানে শিখবেন: পর্ব ০৯
Standard library (Java class library)স্ট্যান্ডার্ড লাইব্রেরি
JDK-র সাথেই আসা হাজার হাজার তৈরি class, যেমন java.util-এর List ও Map বা java.time-এর তারিখ; শুধু import করলেই ব্যবহার করা যায়।যেখানে শিখবেন: পর্ব ০১
Standard outputস্ট্যান্ডার্ড আউটপুট
প্রোগ্রামের সাধারণ আউটপুটের পথ, সাধারণত terminal বা স্ক্রিন; Java-তে System.out দিয়ে এখানে লেখা পাঠানো হয়।যেখানে শিখবেন: পর্ব ০৪পর্ব ০৯
StandardCopyOptionস্ট্যান্ডার্ড কপি অপশন
Files.copy আর Files.move-এর আচরণ বদলানোর enum: REPLACE_EXISTING (আগের ফাইল থাকলে বদলে দাও), ATOMIC_MOVE (এক ধাপে সরাও), COPY_ATTRIBUTES.যেখানে শিখবেন: পর্ব ৩৭
StandardOpenOptionস্ট্যান্ডার্ড ওপেন অপশন
ফাইল কীভাবে খোলা হবে তা বলার enum: CREATE (না থাকলে বানাও), APPEND (শেষে জোড়ো), TRUNCATE_EXISTING (খালি করে লেখো), CREATE_NEW (থাকলে ব্যর্থ হও) ইত্যাদি।যেখানে শিখবেন: পর্ব ৩৭
STAR methodস্টার মেথড
নিজের কাজ বা প্রজেক্টের অভিজ্ঞতা গুছিয়ে বলার একটি কাঠামো: Situation (প্রেক্ষাপট), Task (দায়িত্ব), Action (কী করলেন), Result (ফল)।যেখানে শিখবেন: পর্ব ৫৮পর্ব ৫৯
Stateস্টেট
একটি object এই মুহূর্তে যা জানে — তার field-গুলোর বর্তমান মান। যেমন ওয়ালেটের ব্যালান্স ১২০০যেখানে শিখবেন: পর্ব ০২পর্ব ১৫
State machineস্টেট মেশিন
কয়েকটি নির্দিষ্ট অবস্থা আর কোন অবস্থা থেকে কোনটিতে যাওয়া বৈধ তার নিয়ম দিয়ে আচরণ বর্ণনা করার পদ্ধতি, যেমন অর্ডার PENDING থেকে PAID, তারপর SHIPPED, তারপর DELIVERED.যেখানে শিখবেন: পর্ব ২৪পর্ব ৪৮পর্ব ৫৫
State patternস্টেট প্যাটার্ন
object-এর প্রতিটি অবস্থাকে আলাদা object বানানো, যে নিজেই জানে সেই অবস্থায় কী অনুমতি আছে আর পরের অবস্থা কী; Java-তে প্রায়ই enum বা sealed interface দিয়ে লেখা হয়।যেখানে শিখবেন: পর্ব ৪৮
Stateful operationস্টেটফুল অপারেশন
যে intermediate ধাপকে আগের উপাদানগুলো মনে রাখতে হয় — sorted সব উপাদান জমা না করে প্রথমটি দিতে পারে না, distinct আগে দেখা মানগুলো মনে রাখে; filter বা map-এর মতো stateless ধাপের চেয়ে বেশি মেমরি নেয়যেখানে শিখবেন: পর্ব ৩৫
Statelessস্টেটলেস
যে নকশায় সার্ভার আগের request মনে রেখে পরেরটির অর্থ বোঝে না; প্রতিটি request নিজেই সম্পূর্ণ। এতে অনেক সার্ভারে ভাগ করে চালানো সহজ হয়।যেখানে শিখবেন: পর্ব ৫১পর্ব ৫৩
Statementস্টেটমেন্ট
প্রোগ্রামের একটি সম্পূর্ণ নির্দেশ, যেমন একটি println ডাকা। Java-তে statement শেষ হয় ; দিয়ে, আর main-এর ভেতরে এগুলো ওপর থেকে নিচে চলে।যেখানে শিখবেন: পর্ব ০৪পর্ব ১০
Statement (JDBC)স্টেটমেন্ট
JDBC-র পুরোনো interface, যাকে পুরো SQL একটি String হিসেবে দিতে হয়; ইনপুট জোড়া লাগালে SQL injection-এর ঝুঁকি। বাইরের মান থাকলে সবসময় PreparedStatement নিন।যেখানে শিখবেন: পর্ব ৪৯পর্ব ৫৮
staticস্ট্যাটিক
যে method বা field কোনো object-এর নয়, পুরো class-এর; তাই object না বানিয়েই class-এর নাম দিয়ে ব্যবহার করা যায়। main static বলেই JVM object ছাড়া একে ডাকতে পারে।যেখানে শিখবেন: পর্ব ০৪পর্ব ১৫পর্ব ১৮
Static factory methodস্ট্যাটিক ফ্যাক্টরি মেথড
object বানিয়ে (বা আগের একটি) ফেরত দেওয়া static method, যেমন List.of বা Integer.valueOf; constructor-এর মতো, কিন্তু নাম থাকে আর প্রতিবার নতুন object বাধ্যতামূলক নয়।যেখানে শিখবেন: পর্ব ১৬পর্ব ২৫পর্ব ৪৮
Static field (class variable)স্ট্যাটিক ফিল্ড
static দিয়ে ঘোষিত field, যা কোনো object-এর নয়, পুরো class-এর; পুরো প্রোগ্রামে এর একটিই কপি থাকে আর সব object সেটি ভাগ করে নেয়, যেমন মোট কতটি object তৈরি হলো তার গণনা।যেখানে শিখবেন: পর্ব ১৮পর্ব ৫৬
Static importস্ট্যাটিক ইমপোর্ট
import static দিয়ে অন্য class-এর static method বা constant-কে class-এর নাম ছাড়াই ব্যবহার করার ব্যবস্থা, যেমন import static java.lang.Math.sqrt; লিখে শুধু sqrt(x) লেখা। বেশি ব্যবহার করলে নামের উৎস বোঝা কঠিন হয়।যেখানে শিখবেন: পর্ব ১৮
Static initializer blockস্ট্যাটিক ইনিশিয়ালাইজার ব্লক
class-এর ভেতরে static { ... } দিয়ে লেখা কোড, যা class প্রথমবার initialize হওয়ার সময় পুরো প্রোগ্রামে একবারই চলে; জটিল static field সাজাতে ব্যবহার হয়।যেখানে শিখবেন: পর্ব ১৮পর্ব ২৪
Static methodস্ট্যাটিক মেথড
যে method কোনো object ছাড়াই class-এর নাম দিয়ে ডাকা যায়, যেমন Math.max; অবস্থাহীন হিসাবের জন্য উপযুক্তযেখানে শিখবেন: পর্ব ০২পর্ব ১৫পর্ব ১৮
Static nested classস্ট্যাটিক নেস্টেড ক্লাস
আরেকটি class-এর ভেতরে static দিয়ে ঘোষিত class; বাইরের class-এর কোনো object-এর সাথে বাঁধা নয়, শুধু নামের দিক থেকে ভেতরে থাকে, যেমন Map.Entry.যেখানে শিখবেন: পর্ব ১৮পর্ব ২৭পর্ব ৫৮
Static type (declared type)স্ট্যাটিক টাইপ
ভ্যারিয়েবল বা expression-এর যে টাইপ কোডে লেখা আছে, যেমন Payment p-এ Payment. Compiler শুধু এটাই দেখে, আর এটাই ঠিক করে কোন method ডাকা বৈধ।যেখানে শিখবেন: পর্ব ২০
Static typingস্ট্যাটিক টাইপিং
প্রতিটি ভ্যারিয়েবলের টাইপ compile-এর সময়ই নির্দিষ্ট থাকে, আর টাইপের ভুল প্রোগ্রাম চালানোর আগেই compiler ধরে। Java, C, C++ এই ধরনের ভাষা।যেখানে শিখবেন: পর্ব ০১পর্ব ০৬
Stereotype annotationস্টেরিওটাইপ অ্যানোটেশন
@Component আর তার ভূমিকাভিত্তিক রূপ @Service, @Repository, @Controller; class-কে bean হিসেবে চিহ্নিত করে আর তার স্তর (ব্যবসা, ডেটাবেস, web) স্পষ্ট করে।যেখানে শিখবেন: পর্ব ৫০পর্ব ৫৮
Stop-the-world pauseস্টপ-দ্য-ওয়ার্ল্ড পজ
GC-র কাজের সময় প্রোগ্রামের সব thread কিছুক্ষণ থামিয়ে রাখা; এই pause যত লম্বা, প্রোগ্রামের উত্তর তত দেরিতে আসেযেখানে শিখবেন: পর্ব ০৫পর্ব ৪৪
Strategy patternস্ট্র্যাটেজি প্যাটার্ন
বদলযোগ্য একটি নিয়ম বা অ্যালগরিদমকে interface-এর পেছনে আলাদা object-এ রেখে বাইরে থেকে দেওয়া, যাতে মূল কোড না বদলে নিয়ম অদলবদল করা যায়। Java 8 থেকে প্রায়ই lambda দিয়ে লেখা হয়।যেখানে শিখবেন: পর্ব ৪৮পর্ব ৫৫
Stream (I/O stream)আই-ও স্ট্রিম
ডেটা একদিকে ঢুকে অন্যদিকে বেরোনোর একটানা পথ, পানির নলের মতো; Java-তে System.in, System.out আর System.err তিনটি তৈরি I/O stream. পর্ব ৩৪-এর Stream API একটি আলাদা জিনিস।যেখানে শিখবেন: পর্ব ০৯পর্ব ৩৫
Stream (Stream API)স্ট্রিম
Java 8-এ আসা java.util.stream-এর ধারণা: একটি উৎসের জিনিসগুলোর ওপর filter, map, sum, collect-এর মতো ধাপ পাইপের মতো জুড়ে কাজ করা, নিজে লুপ না লিখে।যেখানে শিখবেন: পর্ব ১১পর্ব ১৪পর্ব ৩৫
Stream pipelineস্ট্রিম পাইপলাইন
একটি উৎস, শূন্য বা একাধিক intermediate operation আর শেষে ঠিক একটি terminal operation — এই তিন অংশ মিলে তৈরি কাজের শিকল, যেমন list.stream().filter(...).map(...).toList()যেখানে শিখবেন: পর্ব ৩৫
Streaming parserস্ট্রিমিং পার্সার
যে parser পুরো JSON একবারে মেমরিতে না তুলে একটু একটু করে পড়ে, একটি token বা একটি উপাদান হাতে দেয়, তারপর এগোয়। বিশাল ফাইলের জন্য, যেমন Jackson-এর JsonParser বা Gson-এর JsonReaderযেখানে শিখবেন: পর্ব ৩৯
Stress testingস্ট্রেস টেস্টিং
একটি ধীর কিন্তু নিশ্চিতভাবে সঠিক সমাধান আর আসল সমাধানকে অনেকগুলো ছোট এলোমেলো ইনপুটে চালিয়ে উত্তর মেলানো; যে ইনপুটে উত্তর আলাদা, সেটাই bug খোঁজার সূত্রযেখানে শিখবেন: পর্ব ৫৪পর্ব ৫৯
Stringস্ট্রিং
লেখা বা অক্ষরের সারি রাখার Java টাইপ; কোডে ডাবল কোটের ভেতরে লেখা হয়, যেমন "Hello". Java-তে String একটি class.যেখানে শিখবেন: পর্ব ০৪পর্ব ০৮
String concatenationস্ট্রিং কনক্যাটিনেশন
+ চিহ্ন দিয়ে দুটি লেখা জোড়া দেওয়া; একদিকে String থাকলে অন্য দিকের সংখ্যাও লেখায় রূপ নিয়ে জুড়ে যায় — "Dam: " + 15 হয় Dam: 15.যেখানে শিখবেন: পর্ব ০৪পর্ব ০৮পর্ব ৫৬
String deduplicationস্ট্রিং ডিডুপ্লিকেশন
Garbage collector-এর একটি সুবিধা (JEP 192): heap-এ একই লেখার আলাদা String পেলে তাদের ভেতরের অক্ষরের array একটিই রেখে বাকিগুলো মুক্ত করে।যেখানে শিখবেন: পর্ব ০৮
String literalস্ট্রিং লিটারাল
কোডের ভেতরে ডাবল কোটে সরাসরি লেখা লেখা, যেমন "Dhaka". একই literal যতবারই লেখা হোক, JVM সাধারণত string pool-এর একটিমাত্র object ব্যবহার করে।যেখানে শিখবেন: পর্ব ০৮পর্ব ১৪
String poolস্ট্রিং পুল
JVM-এর heap-এর ভেতরে রাখা একটি তালিকা, যেখানে একই লেখার একটিমাত্র String object জমা থাকে। সব string literal এখান থেকে আসে, তাই একই লেখা বারবার মেমরি নেয় না।যেখানে শিখবেন: পর্ব ০৮পর্ব ১৮পর্ব ৫৬
String.format / formattedস্ট্রিং ডট ফরম্যাট
printf-এর মতো একই ছাঁচ মেনে লেখা বানায়, কিন্তু ছাপে না, String ফেরত দেয়; "...".formatted(...) একই কাজ করে (Java 15 থেকে)।যেখানে শিখবেন: পর্ব ০৯পর্ব ৩৯
StringBufferস্ট্রিং-বাফার
StringBuilder-এর পুরোনো সংস্করণ (Java 1.0 থেকে), যার প্রতিটি method synchronized. একাধিক thread থেকে নিরাপদ, কিন্তু একটু ধীর; নতুন কোডে সাধারণত StringBuilder ব্যবহার হয়।যেখানে শিখবেন: পর্ব ০৮পর্ব ৫৮
StringBuilderস্ট্রিং-বিল্ডার
বদলানো যায় এমন অক্ষরের সারি রাখার class. append, insert, reverse-এর মতো method একই object-এর ভেতরে কাজ করে, তাই লুপে লেখা জোড়ার জন্য এটি দ্রুত।যেখানে শিখবেন: পর্ব ০৮পর্ব ১২পর্ব ১৮
StringTokenizerস্ট্রিং টোকেনাইজার
java.util-এর একটি পুরোনো (legacy) class, যা একটি String-কে ফাঁকা জায়গা বা নির্দিষ্ট অক্ষরে ভেঙে একটি একটি token দেয়; হালকা আর দ্রুত বলে কনটেস্টে BufferedReader-এর সাথে খুব প্রচলিতযেখানে শিখবেন: পর্ব ৫৪
Strong referenceস্ট্রং রেফারেন্স
সাধারণ ভ্যারিয়েবল বা field-এর reference; যতক্ষণ root থেকে এমন পথ আছে, GC object-টি কখনো মোছে নাযেখানে শিখবেন: পর্ব ৪৪
Structural patternস্ট্রাকচারাল প্যাটার্ন
class আর object কীভাবে জোড়া লেগে বড় কাঠামো তৈরি করবে, সেই pattern-পরিবার — যেমন Adapter, Decorator, Facade, Proxy.যেখানে শিখবেন: পর্ব ৪৮
Structured concurrencyস্ট্রাকচার্ড কনকারেন্সি
একসাথে চলা কাজগুলোর জীবনকাল কোডের একটি block-এর সাথে বাঁধার নীতি — block যেগুলো শুরু করে, সেগুলো শেষ বা বাতিল না হওয়া পর্যন্ত block ছাড়া যায় না; Java-তে StructuredTaskScope, Java 21-এ previewযেখানে শিখবেন: পর্ব ৪১পর্ব ৪২
Stubস্টাব
আগে থেকে ঠিক করা উত্তর দেয় এমন test double, যেমন সবসময় ১৫% VAT হার; কোডে ঢোকা তথ্য নিয়ন্ত্রণ করে, কে কতবার ডাকল তা যাচাই করে নাযেখানে শিখবেন: পর্ব ৪৭
Subclass (child class)সাবক্লাস
যে class আরেকটি class-কে extends করে তার field ও method পায়, এবং দরকারে method override করে, যেমন BkashPayment.যেখানে শিখবেন: পর্ব ১৯পর্ব ২০
Sum typeসাম টাইপ
যে টাইপের একটি মান কয়েকটি নির্দিষ্ট রকমের যেকোনো একটি — যেমন একটি PaymentResult হয় Success, নয় Failed, নয় Pending. Java-তে sealed interface দিয়ে বানানো হয়।যেখানে শিখবেন: পর্ব ২৪পর্ব ২৬
superসুপার
Java-র keyword: constructor-এর প্রথম লাইনে super(...) parent-এর constructor ডাকে, আর super.method() দিয়ে override করা method-এর parent সংস্করণ ডাকা যায়যেখানে শিখবেন: পর্ব ১৯
Superclass (parent class)সুপারক্লাস
যে class থেকে আরেকটি class extends করে, যেমন class BkashPayment extends Payment-এ Payment হলো superclass.যেখানে শিখবেন: পর্ব ১৯পর্ব ২০
Supplier<T>সাপ্লায়ার
কিছু না নিয়ে একটি T মান দেয় এমন functional interface; method হলো get(). দেরিতে মান তৈরি বা নতুন container বানাতে কাজে লাগে।যেখানে শিখবেন: পর্ব ৩৪পর্ব ৩৬পর্ব ৪১
Suppressed exceptionসাপ্রেসড এক্সেপশন
try-with-resources-এ মূল exception-এর পর close() থেকে আসা দ্বিতীয় exception. এটি হারায় না, মূল exception-এর সাথে জুড়ে থাকে; getSuppressed() দিয়ে পাওয়া যায়।যেখানে শিখবেন: পর্ব ২৯পর্ব ৫৮
Surrogate pairসারোগেট পেয়ার
U+FFFF-এর চেয়ে বড় নম্বরের অক্ষর (যেমন বেশিরভাগ emoji) UTF-16-এ লিখতে যে দুটি code unit জোড়ায় ব্যবহার হয়। তাই এমন একটি অক্ষরের length() হয় 2.যেখানে শিখবেন: পর্ব ০৬পর্ব ০৮
Survivor space (S0, S1)সারভাইভার স্পেস
Young generation-এর দুটি ছোট অংশ; minor GC-তে বেঁচে যাওয়া object এদের একটিতে কপি হয়, আর প্রতিবার দুটির ভূমিকা অদলবদল হয়যেখানে শিখবেন: পর্ব ৪৪
Swallowed exceptionসোয়ালোড এক্সেপশন
catch করে কিছুই না করা (ফাঁকা catch) বা finally-র return দিয়ে exception হারিয়ে ফেলা। ভুল ঘটে, কিন্তু কেউ জানতে পারে না।যেখানে শিখবেন: পর্ব ২৯পর্ব ৩৪
switch expressionসুইচ এক্সপ্রেশন
Java 14 থেকে স্থায়ী switch-এর রূপ, যা একটি মান ফেরত দেয় — যেমন int fare = switch (p) { ... }; লেখাটি। এতে fall-through নেই, আর compiler সব সম্ভাব্য মান ঢাকা হয়েছে কি না যাচাই করে।যেখানে শিখবেন: পর্ব ১০পর্ব ২২পর্ব ২৪
switch statementসুইচ স্টেটমেন্ট
একটি মান (selector) দেখে মিলে যাওয়া case-এ লাফ দেয়। পুরোনো colon (case 1:) রূপে break না দিলে পরের case-এও গড়িয়ে যায়।যেখানে শিখবেন: পর্ব ১০
Symbolসিম্বল
compiler-এর ভাষায় কোডের যেকোনো নাম — class, method বা variable. cannot find symbol মানে সেই নামের কিছু compiler খুঁজে পায়নি, প্রায়ই বানান ভুলে।যেখানে শিখবেন: পর্ব ০৪
synchronizedসিনক্রোনাইজড
Java-র একটি keyword: synchronized method বা block-এ একই object-এর তালা ধরে এক সময়ে একটিমাত্র thread ঢুকতে পারে; তালা ছাড়ার আগের সব লেখা পরে একই তালা নেওয়া thread দেখতে পায়।যেখানে শিখবেন: পর্ব ৩২পর্ব ৪০পর্ব ৪১
Synchronized wrapperসিনক্রোনাইজড র‍্যাপার
Collections.synchronizedList বা synchronizedMap-এর ফেরত দেওয়া মোড়ক, যার প্রতিটি method একটি তালায় সুরক্ষিত। ঘোরানোর সময় আর কয়েক ধাপের কাজে নিজে আলাদা synchronized দিতে হয়।যেখানে শিখবেন: পর্ব ৪০
Syntaxসিনট্যাক্স
প্রোগ্রামিং ভাষার ব্যাকরণ — শব্দ, চিহ্ন আর বন্ধনী কোন ক্রমে বসবে তার নিয়ম। নিয়ম ভাঙলে compiler error দেয়।যেখানে শিখবেন: পর্ব ০৪
Synthetic accessor methodসিন্থেটিক অ্যাকসেসর মেথড
Java 11-এর আগে compiler-এর লুকিয়ে বানানো package-private method (যেমন access$000), যার মাধ্যমে nested class বাইরের class-এর private member পড়ত, কারণ JVM তখন দুটিকে আলাদা class হিসেবে দেখত।যেখানে শিখবেন: পর্ব ২৭
System callসিস্টেম কল
প্রোগ্রাম যখন অপারেটিং সিস্টেমের kernel-কে কোনো কাজ করতে বলে, যেমন ফাইল খোলা বা লেখা; সাধারণ method ডাকের চেয়ে অনেক দামি, তাই buffer দিয়ে সংখ্যা কমানো হয়।যেখানে শিখবেন: পর্ব ৩৭

T

Table (database)টেবিল
relational ডেটাবেসে একই ধরনের জিনিসের সংগ্রহ: প্রতিটি কলাম একটি বৈশিষ্ট্য, প্রতিটি সারি (row) একটি জিনিস — যেমন customers টেবিলে প্রতিটি সারি একজন ক্রেতা।যেখানে শিখবেন: পর্ব ৪৯
Tail call optimizationটেইল কল অপটিমাইজেশন
method-এর একদম শেষ কাজটি যদি আরেকটি ডাক হয়, তাহলে নতুন frame না বানিয়ে পুরোনোটাই ব্যবহার করার কৌশল। JVM এটি স্বয়ংক্রিয়ভাবে করে না।যেখানে শিখবেন: পর্ব ১২
Take-home assignmentটেক-হোম অ্যাসাইনমেন্ট
ইন্টারভিউর একটি ধাপ, যেখানে প্রার্থী বাসায় বসে নির্দিষ্ট সময়ের মধ্যে একটি ছোট প্রজেক্ট বা কাজ বানিয়ে জমা দেন; পরে সাধারণত সেটি নিয়ে আলোচনা হয়যেখানে শিখবেন: পর্ব ৫৯
Target typeটার্গেট টাইপ
lambda বা method reference যে জায়গায় বসছে সেখানে প্রত্যাশিত functional interface টাইপ — ভ্যারিয়েবলের টাইপ, method-এর parameter টাইপ বা return টাইপ। এটি দেখেই compiler ঠিক করে lambda কোন method-এর শরীর।যেখানে শিখবেন: পর্ব ৩৪
Task schedulerটাস্ক শিডিউলার
যে প্রোগ্রাম বা অংশ ঠিক করে কোন কাজ কখন আর কোন ক্রমে চলবে; প্রায়ই ভেতরে priority বা নির্ধারিত সময় অনুযায়ী সাজানো একটি priority queue থাকেযেখানে শিখবেন: পর্ব ৩২
Tautological testটটোলজিক্যাল টেস্ট
এমন টেস্ট যা কোডের বর্তমান আচরণকেই প্রত্যাশা ধরে বা শুধু mock-এর ঠিক করা উত্তর ফিরে পায়, ফলে কখনো ফেল করতে পারে না আর কোনো bug ধরে নাযেখানে শিখবেন: পর্ব ৪৭
TCP (Transmission Control Protocol)টি-সি-পি
সংযোগভিত্তিক transport protocol: হারানো ডেটা আবার পাঠিয়ে আর ক্রম মিলিয়ে দুই দিকে নির্ভরযোগ্য byte-স্রোত দেয়; তবে message-এর সীমানা রাখে না।যেখানে শিখবেন: পর্ব ৪৩পর্ব ৫৮
TCP/IP modelটিসিপি-আইপি মডেল
নেটওয়ার্ককে চার স্তরে ভাগ করার প্রচলিত নকশা: link (পাশের যন্ত্র পর্যন্ত), internet বা IP (কোন মেশিন), transport বা TCP/UDP (কোন প্রোগ্রাম), আর application (HTTP-র মতো আসল কথার নিয়ম)।যেখানে শিখবেন: পর্ব ৪৩
Technical interviewটেকনিক্যাল ইন্টারভিউ
সফটওয়্যার পদের যে ইন্টারভিউতে প্রার্থী সমস্যা সমাধান করেন, কোড লেখেন আর নিজের ভাবনা ব্যাখ্যা করেন; শুধু উত্তর নয়, চিন্তার ধরন আর যোগাযোগও দেখা হয়যেখানে শিখবেন: পর্ব ৫৯
Telescoping constructorটেলিস্কোপিং কনস্ট্রাক্টর
ঐচ্ছিক মানের জন্য একটির পর একটি লম্বা হতে থাকা overloaded constructor-এর সারি; অনেক parameter হলে কোন মান কোনটা, বোঝা কঠিন হয়।যেখানে শিখবেন: পর্ব ১৬পর্ব ৪৮
Tell, Don't Askটেল, ডোন্ট আস্ক
নকশার নীতি: object থেকে ডেটা বের করে নিজে সিদ্ধান্ত না নিয়ে object-কেই কাজটা করতে বলুন, যেমন acc.withdraw(500); তাতে নিয়ম থাকে object-এর ভেতরে, এক জায়গায়।যেখানে শিখবেন: পর্ব ১৭
Template (C++)টেমপ্লেট
C++-এর generic কৌশল, যেখানে compiler প্রতিটি ব্যবহৃত টাইপের জন্য আলাদা কোড তৈরি করে; Java-র erasure-এর উল্টো পথযেখানে শিখবেন: পর্ব ২৮
Template Method patternটেমপ্লেট মেথড প্যাটার্ন
একটি design pattern: parent class-এর একটি (সাধারণত final) method কাজের ধাপগুলোর ক্রম ঠিক করে, আর কিছু ধাপ abstract রেখে subclass-কে দিয়ে পূরণ করায়।যেখানে শিখবেন: পর্ব ২১পর্ব ৪৮
TemporalAdjustersটেম্পোরাল অ্যাডজাস্টার্স
ক্যালেন্ডারের তৈরি নিয়মের সংগ্রহ — next(DayOfWeek.FRIDAY), lastDayOfMonth(), firstInMonth(…) ইত্যাদি — যা date.with(...)-এ দিয়ে “পরের শুক্রবার” বা “মাসের শেষ দিন” বের করা যায়যেখানে শিখবেন: পর্ব ৩৮
Temporary fileটেম্পোরারি ফাইল
সাময়িক কাজের জন্য অপারেটিং সিস্টেমের temp ফোল্ডারে অনন্য নামে বানানো ফাইল; Java-তে Files.createTempFile. কাজ শেষে মুছে ফেলা প্রোগ্রামের দায়িত্ব।যেখানে শিখবেন: পর্ব ৩৭
Terminal operationটার্মিনাল অপারেশন
forEach, collect, toList, count, sum, reduce-এর মতো stream-এর শেষ ধাপ; এটিই পুরো pipeline চালু করে, একটি ফল বা side effect দেয়, আর এর পর stream আর ব্যবহার করা যায় নাযেখানে শিখবেন: পর্ব ৩৫পর্ব ৫৬পর্ব ৫৭
Ternary operator (?:)টার্নারি অপারেটর
তিন operand-এর অপারেটর: শর্ত ? মান১ : মান২ — শর্ত সত্য হলে মান১, নইলে মান২ দেয়যেখানে শিখবেন: পর্ব ০৭পর্ব ১০
Test caseটেস্ট কেস
একটি নির্দিষ্ট ইনপুট বা অবস্থা আর তার প্রত্যাশিত ফল নিয়ে একটি একক যাচাই, যেমন “৫০০ টাকায় চার্জ ৫”যেখানে শিখবেন: পর্ব ৪৭
Test doubleটেস্ট ডাবল
টেস্টে আসল নির্ভরতার (SMS, ডেটাবেস, ঘড়ি) জায়গায় বসানো নকল object-এর সাধারণ নাম; ধরন পাঁচটি — dummy, stub, fake, spy, mockযেখানে শিখবেন: পর্ব ৪৭পর্ব ৫৫
Test lifecycleটেস্ট লাইফসাইকেল
টেস্ট চলার সময় কোন কোড কখন চলে তার ক্রম: @BeforeAll একবার, তারপর প্রতিটি টেস্টের জন্য নতুন instance, @BeforeEach, টেস্ট, @AfterEach, শেষে @AfterAllযেখানে শিখবেন: পর্ব ৪৭
Test pyramidটেস্ট পিরামিড
টেস্টের ভাগের একটি মডেল: নিচে অনেক দ্রুত unit test, মাঝে কম integration test, ওপরে অল্প ধীর end-to-end test; Mike Cohn জনপ্রিয় করেনযেখানে শিখবেন: পর্ব ৪৭
Test-driven development (TDD)টেস্ট-ড্রিভেন ডেভেলপমেন্ট
কাজের পদ্ধতি যেখানে কোড লেখার আগে একটি ব্যর্থ টেস্ট লেখা হয়, তারপর সেটা পাস করানোর মতো ন্যূনতম কোড, তারপর পরিষ্কার করা; Kent Beck জনপ্রিয় করেনযেখানে শিখবেন: পর্ব ৪৭
Testabilityটেস্টেবিলিটি
কোড কতটা সহজে টেস্ট করা যায়; নির্ভরতা constructor দিয়ে আসা, Clock inject করা আর বদলানো যায় এমন static না থাকলে বাড়েযেখানে শিখবেন: পর্ব ৪৭
Testcontainersটেস্টকন্টেইনার্স
টেস্টের সময় Docker-এ সত্যিকারের ডেটাবেস (যেমন PostgreSQL) চালিয়ে দেওয়ার Java লাইব্রেরি, যাতে production-এর মতো পরিবেশে SQL যাচাই করা যায়।যেখানে শিখবেন: পর্ব ৪৭পর্ব ৪৯পর্ব ৫২
Text blockটেক্সট ব্লক
তিনটি ডাবল কোট (""") দিয়ে লেখা কয়েক লাইনের String, যেখানে \n বা \" লিখতে হয় না। Java 15 থেকে স্থায়ী।যেখানে শিখবেন: পর্ব ০৮পর্ব ০৯পর্ব ১৪
thenCombineদেন-কম্বাইন
দুটি স্বাধীন CompletableFuture দুটোই শেষ হলে তাদের ফল একটি function দিয়ে জোড়া দেয়; মোট সময় হয় ধীরতমটির সমানযেখানে শিখবেন: পর্ব ৪১
thenComposeদেন-কম্পোজ
CompletableFuture-এর method, এমন function নেয় যা নিজেই CompletableFuture দেয়, আর ফলটা সমতল করে; একটি async কলের ফল দিয়ে পরের async কল — stream-এর flatMap-এর মতোযেখানে শিখবেন: পর্ব ৪১
Think aloudথিংক অ্যালাউড
সমস্যা সমাধানের সময় নিজের ভাবনার ধাপগুলো জোরে বলা, যাতে পরীক্ষক বা ইন্টারভিউয়ার আপনার যুক্তির পথ দেখতে পান — উত্তর পুরো ঠিক না হলেও।যেখানে শিখবেন: পর্ব ৫৮পর্ব ৫৯
thisদিস
instance method বা constructor-এর ভেতরে বর্তমান object-এর reference — অর্থাৎ যে object-এর জন্য কোডটি এই মুহূর্তে চলছে; static method-এ এটি থাকে না।যেখানে শিখবেন: পর্ব ১৫পর্ব ১৬পর্ব ১৮
Threadথ্রেড
একটি প্রোগ্রামের ভেতরে স্বাধীনভাবে চলা একটি কাজের ধারা, যার নিজের call stack আছে; একই প্রোগ্রামের সব thread একই heap-এর object দেখে। Java-তে java.lang.Thread classযেখানে শিখবেন: পর্ব ৪০পর্ব ৪১পর্ব ৪২
Thread dumpথ্রেড ডাম্প
একটি চলমান JVM-এর সব thread এই মুহূর্তে কোথায় আছে আর কীসের অপেক্ষায়, তার stack trace-সহ ছবি; jstack বা jcmd দিয়ে নেওয়া হয়, আটকে যাওয়া বা ধীর সার্ভার খুঁজতে কাজে লাগেযেখানে শিখবেন: পর্ব ৪২
Thread poolথ্রেড পুল
আগে থেকে তৈরি কয়েকটি thread-এর দল, যারা একটি সারি থেকে কাজ নিয়ে বারবার চালায় — প্রতিটি কাজের জন্য নতুন thread তৈরির খরচ বাঁচাতে আর একসাথে কতগুলো কাজ চলবে তা সীমিত রাখতেযেখানে শিখবেন: পর্ব ৪১পর্ব ৪২পর্ব ৪৪
Thread-per-requestথ্রেড-পার-রিকোয়েস্ট
সার্ভার নকশার একটি ধাঁচ: প্রতিটি আসা request শুরু থেকে শেষ পর্যন্ত একটি আলাদা thread-এ চলে; কোড সহজ, কিন্তু একসাথের request-এর সংখ্যা thread-এর সংখ্যায় সীমিতযেখানে শিখবেন: পর্ব ৪২পর্ব ৪৩পর্ব ৫০
Thread-safeথ্রেড-সেফ
একসাথে একাধিক thread ব্যবহার করলেও ভুল ফল বা নষ্ট ডেটা হয় না এমন কোড বা object. Immutable object স্বাভাবিকভাবেই thread-safe.যেখানে শিখবেন: পর্ব ০৮পর্ব ১৪পর্ব ১৮
Thread.Builderথ্রেড বিল্ডার
Java 21-এর interface, যা Thread.ofVirtual() বা Thread.ofPlatform() থেকে পাওয়া যায়; নাম ইত্যাদি ঠিক করে start(), unstarted() বা factory() দিয়ে thread তৈরি করেযেখানে শিখবেন: পর্ব ৪২
Thread.Stateথ্রেড স্টেট
একটি thread-এর বর্তমান অবস্থা বোঝানো enum: NEW, RUNNABLE, BLOCKED, WAITING, TIMED_WAITING আর TERMINATED. getState() দিয়ে পাওয়া যায়।যেখানে শিখবেন: পর্ব ৪০
ThreadLocalথ্রেডলোকাল
এমন একটি ভ্যারিয়েবল, যার প্রতিটি thread নিজের আলাদা কপি দেখে; get() আর set() শুধু নিজের thread-এর কপিতে কাজ করে, আর কাজ শেষে remove() না করলে মান থেকে যেতে পারেযেখানে শিখবেন: পর্ব ৪২পর্ব ৪৪পর্ব ৫৩
ThreadPoolExecutorথ্রেড পুল এক্সিকিউটর
বেশিরভাগ pool-এর পেছনের আসল class; core আর max thread সংখ্যা, খালি thread কতক্ষণ থাকবে, কাজের সারি আর rejection policy — সব আলাদাভাবে ঠিক করা যায়যেখানে শিখবেন: পর্ব ৪১
Threat modelথ্রেট মডেল
কে, কী ক্ষতি করতে চাইতে পারে, কোন পথে, আর প্রতিটির প্রতিরক্ষা কী — নকশার শুরুতে এই প্রশ্নগুলোর লিখিত বিশ্লেষণ।যেখানে শিখবেন: পর্ব ৫৩
Three-way handshakeথ্রি-ওয়ে হ্যান্ডশেক
TCP সংযোগ শুরুর তিনটি packet: client-এর SYN, সার্ভারের SYN-ACK, আর client-এর ACK; এরপরই সার্ভারের accept() ফেরত আসে।যেখানে শিখবেন: পর্ব ৪৩
Throughputথ্রুপুট
একটি সিস্টেম প্রতি একক সময়ে কতগুলো কাজ শেষ করে, যেমন প্রতি সেকেন্ডে কতগুলো request; latency (একটি কাজের সময়) থেকে আলাদা ধারণাযেখানে শিখবেন: পর্ব ৪২পর্ব ৪৪
throwথ্রো
একটি exception object ছুড়ে দেওয়ার statement, যেমন throw new IllegalArgumentException(...). এরপর method-এর বাকি কোড আর চলে না।যেখানে শিখবেন: পর্ব ২৯পর্ব ৫৮
Throwableথ্রোয়েবল
Java-র সব exception আর error-এর মূল class (java.lang.Throwable). শুধু এর বংশধর object-কেই throw করা যায় আর catch দিয়ে ধরা যায়; এর ভেতরে বার্তা, cause আর stack trace থাকে।যেখানে শিখবেন: পর্ব ২৯
throwsথ্রোজ
method-এর ঘোষণায় লেখা অংশ, যা জানায় এই method কোন checked exception বাইরে পাঠাতে পারে, যেমন void read() throws IOException.যেখানে শিখবেন: পর্ব ২৯পর্ব ৫৮
Tie-breakerটাই-ব্রেকার
প্রথম নিয়মে দুটি উপাদান সমান হলে কে আগে যাবে তা ঠিক করার পরের নিয়ম; যেমন GPA সমান হলে মোট নম্বর, সেটাও সমান হলে নামযেখানে শিখবেন: পর্ব ৩৩পর্ব ৫৮
Tiered compilationটিয়ার্ড কম্পাইলেশন
HotSpot-এর নিয়ম: method প্রথমে interpreter-এ চলে, গরম হলে C1 দ্রুত compile করে তথ্য জোগাড় করে, আরও গরম হলে C2 গভীর অপ্টিমাইজেশন করে। Java 8 থেকে ডিফল্টযেখানে শিখবেন: পর্ব ০৫
Time complexity (Big-O)টাইম কমপ্লেক্সিটি
ইনপুটের আকার n বাড়লে একটি অ্যালগরিদমের কাজ কীভাবে বাড়ে তার মাপ; যেমন O(n log n) মানে n দশগুণ হলে কাজ দশগুণের একটু বেশি বাড়েযেখানে শিখবেন: পর্ব ৩৩পর্ব ৫৪পর্ব ৫৮
Time zoneটাইম জোন
যে অঞ্চলের ঘড়ি একই নিয়মে চলে; শুধু UTC থেকে পার্থক্য নয়, কবে কোন অফসেট ছিল বা হবে (DST সহ) — সেই পূর্ণ নিয়ম, যা সরকার বদলাতে পারেযেখানে শিখবেন: পর্ব ৩৮
Timing attackটাইমিং অ্যাটাক
তুলনা বা হিসাবে কত সময় লাগল তা মেপে গোপন তথ্য আন্দাজ করার কৌশল। প্রতিরোধ: MessageDigest.isEqual-এর মতো সমান-সময়ের তুলনা।যেখানে শিখবেন: পর্ব ৫৩
TimSortটিমসর্ট
Tim Peters-এর ২০০২ সালে Python-এর জন্য তৈরি করা stable sort অ্যালগরিদম; ডেটার আগে থেকে সাজানো অংশ (run) খুঁজে merge করে। Java 7 থেকে object-এর list আর array সাজাতে এটাই ব্যবহার হয়যেখানে শিখবেন: পর্ব ৩৩পর্ব ৫৪
TLAB (thread-local allocation buffer)টি-ল্যাব
Eden-এর যে ছোট টুকরো একটি thread নিজের জন্য পায়, যাতে lock ছাড়াই শুধু একটি pointer সামনে ঠেলে দ্রুত নতুন object তৈরি করতে পারেযেখানে শিখবেন: পর্ব ৪৪
TLE (Time Limit Exceeded)টিএলই
online judge-এর রায়: প্রোগ্রাম নির্ধারিত সময়ের মধ্যে শেষ হয়নি; সাধারণত ভুল complexity বা ধীর ইনপুট-আউটপুটের লক্ষণযেখানে শিখবেন: পর্ব ৫৪
TLS (Transport Layer Security)টি-এল-এস
TCP-র ওপর বসানো নিরাপত্তা স্তর: এনক্রিপশন, বদল ধরা আর certificate দিয়ে সার্ভারের পরিচয় যাচাই; HTTPS আর wss:// এর ওপর চলে।যেখানে শিখবেন: পর্ব ৪৩
Tokenটোকেন
ইনপুটের একটি অর্থবহ টুকরো, delimiter দিয়ে আলাদা করা; Scanner-এর জন্য সাধারণত একটি শব্দ বা একটি সংখ্যা, যেমন 70 বা Rafiq.যেখানে শিখবেন: পর্ব ০৯
Tolerance (epsilon)এপসাইলন
দশমিক সংখ্যা তুলনার সময় মেনে নেওয়া খুব ছোট পার্থক্য; Math.abs(a - b) < 1e-9 হলে দুটিকে সমান ধরা হয়যেখানে শিখবেন: পর্ব ০৭
Top-K problemটপ-কে প্রবলেম
অনেক জিনিস থেকে সবচেয়ে বড় (বা ছোট) K-টি বের করার সমস্যা। আকার K-এর একটি heap রাখলে মেমরি লাগে O(K) আর সময় O(n log K) — বড় K-টি চাইলে min-heap, ছোট K-টি চাইলে max-heapযেখানে শিখবেন: পর্ব ৩২পর্ব ৫৯
Topological sortটপোলজিক্যাল সর্ট
একটি DAG-এর নোডগুলোকে এমন ক্রমে সাজানো, যাতে প্রতিটি নোড তার সব নির্ভরতার পরে আসে; build tool এভাবে task বা module-এর ক্রম ঠিক করে।যেখানে শিখবেন: পর্ব ৪৬
toString()টু-স্ট্রিং
যে method একটি object-কে লেখায় (String) রূপ দেয়; println একে নিজে ডাকে। নিজে না লিখলে Object থেকে পাওয়া সংস্করণ ClassName@hashcode ধরনের লেখা দেয়যেখানে শিখবেন: পর্ব ১৫পর্ব ২৩
Trace tableট্রেস টেবিল
কোড হাতে চালানোর (dry run) সময় আঁকা টেবিল: প্রতিটি ভ্যারিয়েবলের একটি কলাম, প্রতিটি লাইনের পরে তাদের নতুন মান, আর আলাদা কলামে হুবহু আউটপুট। আউটপুট প্রশ্নের নির্ভরযোগ্য সমাধানের পদ্ধতিযেখানে শিখবেন: পর্ব ৫৬
Transactionট্রানজ্যাকশন
কয়েকটি ডেটাবেস-বদলের একটি দল, যা একক হিসেবে চলে: হয় সবগুলো স্থায়ী হয় (commit), নয়তো একটিও না (rollback) — যেমন এক ওয়ালেট থেকে কেটে অন্যটিতে যোগ করা।যেখানে শিখবেন: পর্ব ৪৯পর্ব ৫১পর্ব ৫২
Transaction propagationট্রানজ্যাকশন প্রোপাগেশন
একটি transaction-ওয়ালা method আরেকটিকে ডাকলে কী হবে, তার নিয়ম: REQUIRED (ডিফল্ট — চলমানটিতে যোগ দাও, না থাকলে নতুন), REQUIRES_NEW (চলমানটি থামিয়ে নতুন) ইত্যাদি।যেখানে শিখবেন: পর্ব ৫২
transientট্রানজিয়েন্ট
field-এর আগে বসানো Java keyword, যার মানে “Java serialization-এ এই field লিখো না”। পড়ার পর এমন field তার টাইপের ডিফল্ট মান পায় — null, 0 বা false. পাসওয়ার্ড বা হিসাব করে পাওয়া মানের জন্যযেখানে শিখবেন: পর্ব ৩৯
Transitive dependencyট্রানজিটিভ ডিপেন্ডেন্সি
আপনার dependency-র নিজের dependency, যা আপনি সরাসরি লেখেননি কিন্তু build tool নিজে খুঁজে নামিয়ে আনে; যেমন jackson-databind-এর সাথে আসা jackson-core.যেখানে শিখবেন: পর্ব ৪৬
Treeification (HashMap)ট্রিফিকেশন
Java 8 থেকে HashMap-এর একটি সুরক্ষা: কোনো bucket-এ ৮টির বেশি entry হলে (আর টেবিলে অন্তত ৬৪টি ঘর থাকলে) সেই bucket-এর তালিকা একটি red-black tree-তে বদলে যায়, ফলে key Comparable হলে সবচেয়ে খারাপ খোঁজা O(n) থেকে O(log n) হয় (JEP 180)যেখানে শিখবেন: পর্ব ৩১পর্ব ৫৯
TreeMapট্রি-ম্যাপ
key সবসময় সাজানো ক্রমে রাখে এমন Map (ভেতরে red-black tree); ছাপলে বা ঘুরলে key-গুলো ক্রম অনুযায়ী আসে, তাই HashMap-এর অনিশ্চিত ক্রমের বদলে নির্দিষ্ট আউটপুট দরকার হলে এটি ব্যবহার হয়যেখানে শিখবেন: পর্ব ৩১পর্ব ৩৩পর্ব ৩৫
TreeSetট্রিসেট
উপাদানগুলো সাজানো ক্রমে রাখা Set; ভেতরে একটি red-black tree, তাই যোগ, খোঁজা আর মোছা O(log n) সময়ে হয়। দুটি উপাদান সমান কি না ঠিক করে compareTo বা দেওয়া Comparator দিয়ে, equals দিয়ে নয়যেখানে শিখবেন: পর্ব ৩১পর্ব ৩৩
try-catchট্রাই-ক্যাচ
যে কোডে exception আসতে পারে তা try block-এ রাখা হয়, আর মিলে যাওয়া টাইপের exception এলে catch block সেটি ধরে সামলায়।যেখানে শিখবেন: পর্ব ২৯
try-with-resourcesট্রাই উইথ রিসোর্সেস
Java 7 থেকে আসা try-এর রূপ, যা block শেষ হলেই (exception হলেও) ফাইল বা connection-এর মতো AutoCloseable সম্পদ নিশ্চিতভাবে close করে।যেখানে শিখবেন: পর্ব ১৬পর্ব ২৯পর্ব ৩৭
Tupleটাপল
কয়েকটি মানের একটি ক্রমযুক্ত গুচ্ছ, যেমন Python-এর (101, 4.5). নামহীন (structural) tuple-এ শুধু গঠন থাকে; Java record হলো নাম-ওয়ালা (nominal) tuple, যেখানে টাইপ আর প্রতিটি অংশের নাম আছে।যেখানে শিখবেন: পর্ব ২৫
Two pointersটু পয়েন্টার্স
একটি তালিকায় দুটি index একই দিকে বা দুই প্রান্ত থেকে মুখোমুখি সরিয়ে উত্তর খোঁজার কৌশল; প্রতিটি index শুধু এক দিকে যায় বলে মোট কাজ O(n)যেখানে শিখবেন: পর্ব ৫৪পর্ব ৫৯
Two's complementটু'জ কমপ্লিমেন্ট
ঋণাত্মক পূর্ণসংখ্যা bit-এ রাখার পদ্ধতি, যেখানে বাঁয়ের প্রথম bit ১ মানে সংখ্যাটি ঋণাত্মক; Java-র সব পূর্ণসংখ্যা টাইপ এটি ব্যবহার করেযেখানে শিখবেন: পর্ব ০৬পর্ব ০৭
Type argumentটাইপ আর্গুমেন্ট
generic টাইপ ব্যবহারের সময় type parameter-এর জায়গায় বসানো আসল টাইপ, যেমন Box of String-এ String; শুধু reference টাইপ হতে পারে, int-এর মতো primitive নয়যেখানে শিখবেন: পর্ব ২৮
Type castingটাইপ কাস্টিং
একটি মানকে জোর করে অন্য টাইপে রূপান্তর করা, যেমন (byte) x বা (double) sum; বড় থেকে ছোট টাইপে গেলে মান হারাতে পারেযেখানে শিখবেন: পর্ব ০৬পর্ব ০৭পর্ব ২৮
Type erasureটাইপ ইরেজার
compile-এর পর generic টাইপ-তথ্য মুছে ফেলার কৌশল: T বদলে যায় Object বা তার bound-এ, আর ব্যবহারের জায়গায় compiler cast বসায়; তাই চলার সময় List of String আর List of Integer একই classযেখানে শিখবেন: পর্ব ২৮পর্ব ৩৯পর্ব ৫৭
Type inferenceটাইপ ইনফারেন্স
টাইপ না লিখলে compiler প্রসঙ্গ দেখে নিজেই টাইপ বের করে নেওয়া — var-এ ডান পাশের মান দেখে, lambda-র parameter-এ target type দেখে; টাইপ তবুও compile-এর সময় স্থায়ী হয়।যেখানে শিখবেন: পর্ব ০৬পর্ব ২৮পর্ব ৩৩
Type parameterটাইপ প্যারামিটার
generic class বা method-এর ঘোষণায় কৌণিক বন্ধনীর ভেতরের নাম, যেমন Box-এর T; এটি এখনো কোনো আসল টাইপ নয়, ব্যবহারের সময় একটি আসল টাইপ এর জায়গা নেয়যেখানে শিখবেন: পর্ব ২৮
Type patternটাইপ প্যাটার্ন
Success s রূপের pattern: মানটি ওই টাইপের হলে মিল হয়, আর সাথে সাথে cast করা মানটি নতুন ভ্যারিয়েবলে বসে। Java 16 থেকে instanceof-এ, Java 21 থেকে switch-এ ব্যবহার করা যায়।যেখানে শিখবেন: পর্ব ২৬
Type safetyটাইপ সেফটি
ভুল টাইপের মান ভুল জায়গায় বসতে না দেওয়ার নিশ্চয়তা, যা compiler আগেই যাচাই করে; যেমন OrderStatus-এর জায়গায় int 42 দিলে compile error.যেখানে শিখবেন: পর্ব ২৪
Type soundnessটাইপ সাউন্ডনেস
টাইপ-ব্যবস্থার এমন গুণ, যাতে compiler যে প্রোগ্রাম মেনে নেয় তা চলার সময় টাইপ-ভুলে পড়ে না; ২০১৬ সালে Amin ও Tate দেখান Java-র টাইপ-ব্যবস্থা পুরোপুরি sound নয়যেখানে শিখবেন: পর্ব ২৮
Type token (TypeReference / TypeToken)টাইপ টোকেন
type erasure-এ হারিয়ে যাওয়া generic টাইপ (যেমন List<Item>) লাইব্রেরিকে জানানোর কৌশল: একটি ছোট anonymous subclass বানানো, যার superclass-এর generic তথ্য class file-এ থেকে যায়, যেমন new TypeReference<List<Item>>() {}যেখানে শিখবেন: পর্ব ৩৯
Typesafe enum patternটাইপসেফ ইনাম প্যাটার্ন
Java 5-এর আগের কৌশল: private constructor-ওয়ালা একটি class, যার প্রতিটি সম্ভাব্য মান একটি public static final object; Joshua Bloch-এর Effective Java (২০০১) এটি জনপ্রিয় করে, পরে enum keyword এর জায়গা নেয়।যেখানে শিখবেন: পর্ব ২৪

U

Ubiquitous languageইউবিকুইটাস ল্যাঙ্গুয়েজ
Domain-Driven Design-এর ধারণা: ব্যবসার মানুষ আর ডেভেলপার একই শব্দভান্ডার ব্যবহার করবেন, আর সেই শব্দগুলোই কোডের class ও method-এর নাম হবে।যেখানে শিখবেন: পর্ব ৫৫
UDP (User Datagram Protocol)ইউ-ডি-পি
সংযোগহীন transport protocol: প্রতিটি datagram আলাদা পাঠানো হয়, হারাতে বা উল্টো ক্রমে পৌঁছাতে পারে; দ্রুত ও হালকা, তাই DNS, ভিডিও কল আর গেমে ব্যবহার হয়।যেখানে শিখবেন: পর্ব ৪৩পর্ব ৫৮
UML (Unified Modeling Language)ইউ-এম-এল
সফটওয়্যারের নকশা ছবিতে আঁকার একটি প্রমিত ভাষা; class diagram-এ class-এর field, method আর তাদের মধ্যে সম্পর্ক (has-a, is-a) দেখানো হয়।যেখানে শিখবেন: পর্ব ২২
UML class diagramইউএমএল ক্লাস ডায়াগ্রাম
class, তাদের field, method আর সম্পর্ক আঁকার মানক নকশা-ভাষা; প্রতিটি class তিন তলার বাক্স — নাম, field, method — আর - চিহ্ন মানে private, + মানে publicযেখানে শিখবেন: পর্ব ১৫পর্ব ১৯
UnaryOperator<T>ইউনারি অপারেটর
একটি T নিয়ে একই টাইপের আরেকটি T দেয়; Function<T,T>-এর বিশেষ রূপ। দুটি T নিয়ে একটি T দেওয়ার রূপটির নাম BinaryOperator.যেখানে শিখবেন: পর্ব ৩৪
Unbounded wildcard (?)আনবাউন্ডেড ওয়াইল্ডকার্ড
যেকোনো টাইপের generic object, যেমন List of ?; ভেতরের টাইপ যেখানে অপ্রাসঙ্গিক (size, clear, ছাপা) সেখানে ব্যবহার হয়, null ছাড়া কিছু যোগ করা যায় নাযেখানে শিখবেন: পর্ব ২৮
Unboxingআনবক্সিং
wrapper object থেকে ভেতরের primitive মান নিজে থেকে বের করা, যেমন Integer থেকে int. compiler গোপনে intValue()-এর মতো method ডাকে, তাই wrapper-টি null হলে NullPointerException আসে।যেখানে শিখবেন: পর্ব ০৬পর্ব ৫৮
Unchecked exceptionআনচেকড এক্সেপশন
RuntimeException আর Error-এর বংশধর, যেগুলো ধরা বা ঘোষণা করার জন্য compiler কিছু বলে না। সাধারণত প্রোগ্রামিংয়ের ভুল বোঝায়, যেমন null বা ভুল index.যেখানে শিখবেন: পর্ব ১৪পর্ব ২৯পর্ব ৫৭
Unchecked warningআনচেকড ওয়ার্নিং
compiler-এর সতর্কবার্তা যে কোনো জায়গায় সে generic টাইপ যাচাই করতে পারেনি (যেমন raw type ব্যবহারে); বিস্তারিত দেখতে javac -Xlint:unchecked দিতে হয়, আর প্রতিটি একটি সম্ভাব্য ClassCastExceptionযেখানে শিখবেন: পর্ব ২৮
UncheckedIOExceptionআনচেকড আইও এক্সেপশন
java.io-র একটি RuntimeException, যা একটি IOException-কে cause হিসেবে মুড়ে রাখে; lambda-র ভেতর থেকে কারণ না হারিয়ে I/O ভুল বাইরে পাঠাতে ব্যবহার হয়।যেখানে শিখবেন: পর্ব ৩৪
Unicodeইউনিকোড
পৃথিবীর প্রায় সব লিপির প্রতিটি অক্ষরকে একটি নির্দিষ্ট নম্বর দেওয়ার আন্তর্জাতিক মান; এর জন্যই Java-র String-এ বাংলা লেখা রাখা যায়।যেখানে শিখবেন: পর্ব ০৪পর্ব ০৬পর্ব ০৮
Unicode Collation Algorithm (UCA)ইউনিকোড কোলেশন অ্যালগরিদম
Unicode Technical Standard #10-এ বর্ণিত নিয়ম, যা বলে যেকোনো ভাষার লেখা কীভাবে বর্ণানুক্রমে সাজাতে হয়; প্রতিটি অক্ষরকে কয়েক স্তরের ওজন দেয়, আর প্রতিটি ভাষা নিজের মতো করে নিয়মটি বদলে নিতে পারেযেখানে শিখবেন: পর্ব ৩৩
Unicode normalizationইউনিকোড নরমালাইজেশন
একই দেখতে লেখার আলাদা code point-এর রূপগুলোকে একটি নির্দিষ্ট রূপে আনা (যেমন NFC, NFD); Java-তে java.text.Normalizer দিয়ে করা হয়যেখানে শিখবেন: পর্ব ৩৩
Unicode property (\p{...})ইউনিকোড প্রপার্টি
Unicode-এর শ্রেণি বা লিপি ধরে মেলানোর regex সিনট্যাক্স, যেমন \p{L} যেকোনো অক্ষর, \p{M} কার-হসন্তের মতো চিহ্ন, \p{IsBengali} বাংলা লিপি।যেখানে শিখবেন: পর্ব ১৪
Unified JVM logging (-Xlog)ইউনিফায়েড লগিং
Java 9-এ আসা JVM-এর একক লগ ব্যবস্থা; -Xlog:gc দিয়ে GC-র প্রতিটি pause, কারণ আর আগে-পরের heap দেখা যায়যেখানে শিখবেন: পর্ব ৪৪
Unit of workইউনিট অফ ওয়ার্ক
একটি কাজের সময় সব বদল (নতুন, বদলানো, মোছা) মনে রেখে শেষে একসাথে ডেটাবেসে পাঠানোর নকশা; Martin Fowler-এর বইয়ে বর্ণিত, Hibernate-এর flush এরই রূপ।যেখানে শিখবেন: পর্ব ৫২
Unit testইউনিট টেস্ট
একটি ছোট অংশ — সাধারণত একটি class বা method — কে ডেটাবেস, নেটওয়ার্ক বা ফাইল ছাড়া আলাদা করে চালিয়ে তার ফল স্বয়ংক্রিয়ভাবে যাচাই করার কোড; মিলিসেকেন্ডে চলেযেখানে শিখবেন: পর্ব ৪৭পর্ব ৫৮
Unix epochইউনিক্স ইপক
১ জানুয়ারি ১৯৭০, ০০:০০ UTC — যে মুহূর্ত থেকে সেকেন্ড বা মিলিসেকেন্ড গুনে কম্পিউটার সময় রাখে; Java-তে Instant.EPOCHযেখানে শিখবেন: পর্ব ৩৮
Unix philosophyইউনিক্স ফিলোসফি
Bell Labs-এ গড়ে ওঠা নকশা-দর্শন: প্রতিটি প্রোগ্রাম একটি কাজ ভালোভাবে করবে, প্রোগ্রামগুলো একসাথে কাজ করবে, আর text হবে তাদের সাধারণ ভাষা।যেখানে শিখবেন: পর্ব ২২পর্ব ৩৫
Unmodifiable collectionআনমডিফায়েবল কালেকশন
এমন List, Set বা Map, যাতে add, remove বা set ডাকলে UnsupportedOperationException আসে — যেমন List.of বা List.copyOf-এর ফল। List.copyOf নতুন কপি দেয়, তাই মূল তালিকা পরে বদলালেও এটি বদলায় না।যেখানে শিখবেন: পর্ব ২৫পর্ব ৩০পর্ব ৩১
Unnamed pattern (_)আননেমড প্যাটার্ন
pattern-এর যে অংশের মান দরকার নেই, সেখানে নামের বদলে লেখা _ চিহ্ন — যেমন Success(_, var amount). Java 21-এ এটি শুধু preview ছিল, Java 22 থেকে স্থায়ী (JEP 456).যেখানে শিখবেন: পর্ব ২৬
Unreachable statementআনরিচেবল স্টেটমেন্ট
এমন statement, যেখানে প্রোগ্রাম কখনোই পৌঁছাতে পারবে না — যেমন return-এর ঠিক পরের লাইন। Java একে compile error হিসেবে ধরে।যেখানে শিখবেন: পর্ব ১০
Unsigned right shift (>>>)আনসাইনড রাইট শিফট
ডানে সরানোর সময় বাঁয়ের ফাঁকা bit সবসময় ০ দিয়ে ভরে, সংখ্যা ঋণাত্মক হলেও। Java-র নিজস্ব অপারেটর, C/C++-এ নেইযেখানে শিখবেন: পর্ব ০৭
UnsupportedOperationExceptionআনসাপোর্টেড অপারেশন এক্সেপশন
যে কাজ এই object করতে পারে না, তা চাইলে ছোড়া unchecked exception — যেমন List.of বা Stream.toList()-এর অপরিবর্তনীয় তালিকায় add বা remove ডাকাযেখানে শিখবেন: পর্ব ৩০পর্ব ৩৫
Upcastingআপকাস্টিং
Subclass-এর object-কে superclass টাইপের ভ্যারিয়েবলে রাখা, যেমন Account a = new SavingsAccount(); Java এটা নিজে থেকেই করে, কারণ এটি সবসময় নিরাপদ।যেখানে শিখবেন: পর্ব ২০
Upper-bounded wildcard (? extends T)আপার-বাউন্ডেড ওয়াইল্ডকার্ড
T বা তার যেকোনো subtype-এর তালিকা বোঝায়; তা থেকে পড়লে অন্তত T পাওয়া যায়, কিন্তু null ছাড়া কিছু ঢোকানো যায় না — producer-এর জন্যযেখানে শিখবেন: পর্ব ২৮
UPPER_SNAKE_CASEআপার স্নেক কেস
সব অক্ষর বড় হাতে আর শব্দের মাঝে আন্ডারস্কোর দিয়ে নাম লেখার রীতি, যেমন MAX_STUDENTS; Java-তে constant-এর নাম এভাবে লেখা হয়।যেখানে শিখবেন: পর্ব ১৮পর্ব ২৪
Upsolvingআপসলভিং
কনটেস্ট শেষ হওয়ার পর যে সমস্যাগুলো সময়ের মধ্যে পারা যায়নি, সেগুলো নিজে চেষ্টা করে (দরকারে editorial-এর সাহায্যে) সমাধান করার অভ্যাসযেখানে শিখবেন: পর্ব ৫৪
URLইউ-আর-এল
ইন্টারনেটে একটি resource-এর পূর্ণ ঠিকানা, যেমন https://shop.example.com/api/v1/products/42 — এতে থাকে প্রোটোকল, host, পথ আর ঐচ্ছিক query অংশ।যেখানে শিখবেন: পর্ব ৫১
User storyইউজার স্টোরি
চাহিদা লেখার একটি ছোট ছক: “একজন [ভূমিকা] হিসেবে আমি [কাজ] চাই, যাতে [লাভ]”; সাথে থাকে গ্রহণযোগ্যতার শর্ত, যা পরে টেস্ট হয়।যেখানে শিখবেন: পর্ব ৫৫
UserDetailsServiceইউজার ডিটেইলস সার্ভিস
Spring Security-র interface, যার loadUserByUsername method username দিয়ে ব্যবহারকারীর hash করা পাসওয়ার্ড আর role ফেরত দেয়; না পেলে UsernameNotFoundException.যেখানে শিখবেন: পর্ব ৫৩
UTC (Coordinated Universal Time)ইউটিসি
পৃথিবীর সময়ের মূল মানদণ্ড, যার সাপেক্ষে সব জোনের অফসেট বলা হয় (ঢাকা UTC+6); ISO লেখায় একে Z দিয়ে বোঝানো হয়যেখানে শিখবেন: পর্ব ৩৮
UTF-16ইউটিএফ-ষোলো
Unicode অক্ষরকে ১৬-বিটের এক বা দুই টুকরোয় লেখার নিয়ম। Java-র String আর char এই হিসাবেই কাজ করে; বাংলা অক্ষর এক টুকরোয়, emoji দুই টুকরোয় আঁটে।যেখানে শিখবেন: পর্ব ০৬পর্ব ০৮পর্ব ৩৩
UTF-8ইউ-টি-এফ এইট
বাংলাসহ পৃথিবীর প্রায় সব লিপির অক্ষরকে byte-এ রূপান্তরের সবচেয়ে প্রচলিত নিয়ম (encoding). Java 18 থেকে এটিই Java-র ডিফল্ট charset.যেখানে শিখবেন: পর্ব ০৩পর্ব ৩৭পর্ব ৩৯
Utility classইউটিলিটি ক্লাস
যে class-এ শুধু static ধ্রুবক আর static method থাকে, আর private constructor দিয়ে তার object বানানো বন্ধ রাখা হয়; যেমন Math.যেখানে শিখবেন: পর্ব ১৮পর্ব ২২

V

Value classভ্যালু ক্লাস
Project Valhalla-র প্রস্তাবিত (JEP 401) এমন class, যার object-এর কোনো পরিচয় নেই, শুধু মান; ফলে JVM সেগুলো আলাদা heap object না বানিয়ে int-এর মতো সরাসরি ভ্যারিয়েবল বা array-এর ভেতরে রাখতে পারে। এখনো Java-র স্থায়ী অংশ নয়যেখানে শিখবেন: পর্ব ৩৬
Value objectভ্যালু অবজেক্ট
যে object-এর পরিচয় তার মান দিয়েই, আলাদা অস্তিত্ব দিয়ে নয় — যেমন ৫০০ টাকা বা একটি তারিখ; দুটির মান এক হলে দুটিকে সমান ধরা হয়, তাই এদের equals আর hashCode মান দিয়ে তুলনা করে (record-এ নিজে থেকেই) আর সাধারণত immutable রাখা হয়যেখানে শিখবেন: পর্ব ২৩পর্ব ৫২পর্ব ৫৫
Value-based classভ্যালু-বেসড ক্লাস
JDK-র যে class-এর object শুধু তার মান দিয়ে চেনা উচিত, পরিচয় দিয়ে নয় — যেমন Optional, Integer, LocalDate; এদের ওপর == দিয়ে তুলনা, synchronized বা identity hash code-এর ওপর নির্ভর করা নিষেধযেখানে শিখবেন: পর্ব ৩৬পর্ব ৩৮
Varargsভ্যারআর্গস
variable-length arguments: int... values লিখলে method যত খুশি (শূন্যও) argument নিতে পারে; ভেতরে সেগুলো একটি array হিসেবে আসে। Java 5 থেকে আছে।যেখানে শিখবেন: পর্ব ১২পর্ব ২৮
Variableভ্যারিয়েবল
নাম দেওয়া একটি জায়গা, যেখানে একটি মান রাখা যায় এবং পরে বদলানো যায়; Java-তে প্রতিটি variable-এর একটি নির্দিষ্ট টাইপ থাকে, যেমন String name.যেখানে শিখবেন: পর্ব ০৪পর্ব ০৬
Variable captureভ্যারিয়েবল ক্যাপচার
local বা anonymous class কিংবা lambda যখন বাইরের method-এর local variable ব্যবহার করে, তখন Java সেই মানের একটি কপি নিজের ভেতরে রেখে দেয়; তাই ভ্যারিয়েবলটিকে final বা effectively final হতে হয়।যেখানে শিখবেন: পর্ব ২৭পর্ব ৩৪
Vectorভেক্টর
JDK 1.0-এর পুরোনো বাড়তে পারা তালিকা, যার প্রায় সব method synchronized; Collections Framework আসার পর ArrayList তার জায়গা নিয়েছে, নতুন কোডে ব্যবহার হয় নাযেখানে শিখবেন: পর্ব ৩০পর্ব ৩২পর্ব ৪০
Virtual methodভার্চুয়াল মেথড
যে method-এর কোন সংস্করণ চলবে তা চলার সময় object দেখে ঠিক হয়। Java-তে static, private আর final ছাড়া সব instance method নিজে থেকেই virtual; C++-এ virtual শব্দ লিখতে হয়।যেখানে শিখবেন: পর্ব ২০
Virtual method table (vtable)ভি-টেবিল
প্রতিটি class-এর জন্য JVM-এর ভেতরের একটি সারণি, যার প্রতিটি ঘরে লেখা থাকে একটি virtual method-এর জন্য কোন কোডটি চলবে। Override করলে subclass-এর সারণির সেই ঘরে নতুন কোডের ঠিকানা বসে।যেখানে শিখবেন: পর্ব ২০
Virtual threadভার্চুয়াল থ্রেড
JVM-নিয়ন্ত্রিত হালকা java.lang.Thread, যা OS thread-এর সাথে স্থায়ীভাবে বাঁধা নয়; carrier thread-এর ওপর চলে আর ব্লক করলে নেমে যায়। Java 21-এ JEP 444 দিয়ে স্থায়ীযেখানে শিখবেন: পর্ব ৪১পর্ব ৪২পর্ব ৪৩
Visibilityভিজিবিলিটি
এক thread-এর লেখা মান অন্য thread দেখতে পাবে কি না, সেই প্রশ্ন। Atomicity থেকে আলাদা সমস্যা; synchronized, volatile আর atomic class দৃশ্যমানতা নিশ্চিত করে।যেখানে শিখবেন: পর্ব ৪০পর্ব ৫৮
Visitor patternভিজিটর প্যাটার্ন
একটি design pattern, যেখানে প্রতিটি class-এ একটি accept method থাকে আর প্রতিটি নতুন কাজ লেখা হয় আলাদা visitor class-এ। Pattern matching আসার আগে OOP ভাষায় টাইপ না বদলে নতুন কাজ যোগ করার প্রচলিত কৌশল।যেখানে শিখবেন: পর্ব ২৬পর্ব ৪৮
Viva (viva voce)ভাইভা
মৌখিক পরীক্ষা — পরীক্ষক মুখে প্রশ্ন করেন, প্রার্থী মুখে উত্তর দেন, আর উত্তর থেকেই পরের প্রশ্ন আসে। লাতিন viva voce মানে “জীবন্ত কণ্ঠে”।যেখানে শিখবেন: পর্ব ৫৮
voidভয়েড
method-এর ফেরত টাইপের জায়গায় লেখা keyword, যার মানে method কাজ শেষে কোনো মান ফেরত দেয় না — যেমন main.যেখানে শিখবেন: পর্ব ০৪পর্ব ১২
volatileভোলাটাইল
Java-র একটি keyword: volatile field-এর প্রতিটি পড়া সর্বশেষ লেখা মান দেখে, আর লেখার আগের সব কিছুও পাঠকের কাছে দৃশ্যমান হয়। তবে count++-কে অবিভাজ্য করে না; stop flag-এর জন্য আদর্শ।যেখানে শিখবেন: পর্ব ৪০পর্ব ৫৭পর্ব ৫৮

W

WAF (Web Application Firewall)ওয়াফ
ওয়েবসাইটের সামনে বসে প্রতিটি HTTP অনুরোধ নিয়মের সাথে মিলিয়ে সন্দেহজনক অনুরোধ আটকে দেয় এমন ব্যবস্থা; নিয়মগুলো প্রায়ই regex দিয়ে লেখা হয়।যেখানে শিখবেন: পর্ব ১৪
wait() / notify()ওয়েট / নোটিফাই
প্রতিটি Java object-এর পুরোনো method: wait() তালা ছেড়ে ঘুমায়, notify/notifyAll অপেক্ষারতদের জাগায়। তালা ধরে থাকা অবস্থায় আর while লুপে শর্ত দেখে ডাকতে হয়; আজ সাধারণত BlockingQueue-র মতো উঁচু স্তরের হাতিয়ার ব্যবহার হয়।যেখানে শিখবেন: পর্ব ৪০
Warm-upওয়ার্ম-আপ
Java প্রোগ্রাম চালু হওয়ার পর গরম অংশগুলো JIT-compiled হয়ে পূর্ণ গতিতে পৌঁছানো পর্যন্ত সময়; এই সময়ে প্রোগ্রাম তুলনামূলক ধীর থাকেযেখানে শিখবেন: পর্ব ০৫
WatchServiceওয়াচ সার্ভিস
Java 7-এর ব্যবস্থা, যা একটি ফোল্ডারে ফাইল তৈরি, বদল বা মোছার ঘটনা জানায়, যাতে প্রোগ্রামকে বারবার ফোল্ডার ঘেঁটে দেখতে না হয়।যেখানে শিখবেন: পর্ব ৩৭
WeakHashMapউইক হ্যাশম্যাপ
যে Map তার key-গুলোকে weak reference দিয়ে ধরে; key-র বাইরের সব strong reference হারালে entry একসময় নিজে থেকে মুছে যায়যেখানে শিখবেন: পর্ব ৪৪
WeakReferenceউইক রেফারেন্স
দুর্বল reference, যা object-কে বাঁচিয়ে রাখে না; শুধু weak reference বাকি থাকলে পরের GC-তে object মুছে যেতে পারেযেখানে শিখবেন: পর্ব ৪৪
WebSocketওয়েবসকেট
একটি HTTP upgrade-এর পর একই TCP সংযোগে দুই পক্ষের যখন খুশি message পাঠানোর protocol (RFC 6455, ২০১১); Java 11 থেকে java.net.http-এ client আছে।যেখানে শিখবেন: পর্ব ৪৩
Week-based year (YYYY)উইক-বেসড ইয়ার
সপ্তাহের নম্বরভিত্তিক বছর, যা ফরম্যাট প্যাটার্নে বড় হাতের Y; বছরের শেষ বা শুরুর কয়েক দিনে ক্যালেন্ডারের বছর থেকে আলাদা হয়, তাই সাধারণ তারিখে yyyy বা uuuu লিখতে হয়যেখানে শিখবেন: পর্ব ৩৮
while loopহোয়াইল লুপ
while (condition) { ... } গঠনের লুপ, যা প্রতিটি ঘোরার আগে শর্ত দেখে। কতবার চলবে আগে জানা না থাকলে ব্যবহার হয়; শুরুতেই শর্ত মিথ্যা হলে একবারও চলে না।যেখানে শিখবেন: পর্ব ১১
Whitespaceহোয়াইটস্পেস
পর্দায় দেখা যায় না এমন ফাঁকা অক্ষর: space, tab আর নতুন লাইন (Enter); Scanner ডিফল্টভাবে এগুলো দিয়েই ইনপুট ভাঙে।যেখানে শিখবেন: পর্ব ০৯
Widening conversionওয়াইডেনিং কনভার্শন
ছোট টাইপ থেকে বড় টাইপে রূপান্তর, যেমন int থেকে long বা double. Java এটি cast ছাড়াই নিজে করে, কারণ সাধারণত কিছু হারায় না।যেখানে শিখবেন: পর্ব ০৬পর্ব ১২
Wildcard (?)ওয়াইল্ডকার্ড
generic টাইপে প্রশ্নচিহ্ন, অর্থ কোনো একটি অজানা টাইপ; ? extends T, ? super T আর শুধু ? — এই তিন রূপে method-এর parameter-কে নমনীয় করেযেখানে শিখবেন: পর্ব ২৮
Wildcard capture (CAP#1)ওয়াইল্ডকার্ড ক্যাপচার
compiler প্রতিটি ? -কে একটি নির্দিষ্ট কিন্তু নামহীন টাইপ হিসেবে ধরে আর error বার্তায় তাকে CAP#1 ধরনের নাম দেয়; তাই wildcard তালিকায় কিছু ঢোকাতে গেলে cannot be converted to CAP#1 দেখা যায়যেখানে শিখবেন: পর্ব ২৮
Word boundary (\b)ওয়ার্ড বাউন্ডারি
যে অবস্থানের একদিকে শব্দের অক্ষর (\w) আর অন্যদিকে নয়; Java-তে ডিফল্টে শুধু ইংরেজি অক্ষর-অঙ্ক ধরে, তাই বাংলা শব্দে UNICODE_CHARACTER_CLASS লাগে।যেখানে শিখবেন: পর্ব ১৪
Work stealingওয়ার্ক স্টিলিং
thread-pool-এর একটি কৌশল: প্রতিটি worker thread-এর নিজের কাজের সারি থাকে, আর যার কাজ ফুরিয়ে যায় সে অন্যের সারির অন্য প্রান্ত থেকে কাজ নিয়ে নেয়; ForkJoinPool এভাবে সব core ব্যস্ত রাখেযেখানে শিখবেন: পর্ব ৩৫পর্ব ৪১পর্ব ৪২
Working directoryওয়ার্কিং ডিরেক্টরি
প্রোগ্রাম চালানোর সময় যে ফোল্ডারকে বর্তমান ফোল্ডার ধরা হয়; সব relative path এখান থেকে গোনা হয়। Java-তে System.getProperty("user.dir") এটি দেয়।যেখানে শিখবেন: পর্ব ৩৭
Wrapper (mvnw, gradlew)র‍্যাপার
প্রজেক্টের ভেতরে রাখা ছোট স্ক্রিপ্ট, যা নির্দিষ্ট version-এর Maven বা Gradle নিজে নামিয়ে চালায়; ফলে সব মেশিন আর CI-তে build tool-এর version একই থাকে।যেখানে শিখবেন: পর্ব ৪৬
Wrapper classর‍্যাপার ক্লাস
প্রতিটি primitive-এর object রূপ: int-এর Integer, double-এর Double, boolean-এর Boolean ইত্যাদি। Collection-এ primitive রাখতে এগুলো লাগে।যেখানে শিখবেন: পর্ব ০৬পর্ব ১২পর্ব ২৮

X

XML (Extensible Markup Language)এক্স-এম-এল
খোলা ও বন্ধ ট্যাগ দিয়ে লেখা ডেটা ও নথির ফরম্যাট, যেমন <city>Dhaka</city>. JSON-এর আগে ডেটা আদান-প্রদানে প্রধান ছিল; এখনো Maven-এর pom.xml-এর মতো জায়গায় ব্যবহার হয়।যেখানে শিখবেন: পর্ব ৩৯পর্ব ৪৬
XSS (Cross-Site Scripting)এক্স-এস-এস
ব্যবহারকারীর দেওয়া লেখা escape ছাড়া পাতায় বসলে ক্ষতিকর script চলে যাওয়ার ঝুঁকি; সেই script পাতার localStorage-এর token-ও পড়তে পারে।যেখানে শিখবেন: পর্ব ৫৩

Y

YAGNI (You Aren't Gonna Need It)ইয়াগনি
আজ যা দরকার নেই, “হয়তো একদিন লাগবে” ভেবে তা আগেভাগে বানাবেন না — প্রয়োজন সত্যিই এলে তখন বানান। Extreme Programming আন্দোলন থেকে আসা নীতি।যেখানে শিখবেন: পর্ব ৪৮
YAMLইয়ামেল
ঘর-সরানো (indentation) দিয়ে স্তর বোঝানো একটি মানুষ-পাঠ্য কনফিগারেশন ফরম্যাট; Spring Boot-এ application.yml হিসেবে properties-এর বিকল্প।যেখানে শিখবেন: পর্ব ৫০
Year 2038 problemইয়ার টুয়েন্টি থার্টি এইট প্রবলেম
epoch থেকে সেকেন্ড signed ৩২-বিট পূর্ণসংখ্যায় রাখা সিস্টেম ১৯ জানুয়ারি ২০৩৮, 03:14:07 UTC-র পর overflow করে; Java-র long-ভিত্তিক Instant এ থেকে মুক্ত, কিন্তু ৩২-বিট ডেটাবেস কলাম বা ফাইল-ফরম্যাট নয়যেখানে শিখবেন: পর্ব ৩৮
yieldইল্ড
switch expression-এর block-এর ভেতর থেকে মান ফেরত দেওয়ার শব্দ, যেমন yield total; লিখলে total হয় পুরো switch-এর মান। return-এর মতো দেখালেও এটি method থেকে বের হয় না।যেখানে শিখবেন: পর্ব ১০
Young generationইয়াং জেনারেশন
Heap-এর যে অংশে নতুন object জন্মায়; eden আর দুটি survivor space নিয়ে গঠিত। এখানে ঘন ঘন ও দ্রুত minor GC হয়যেখানে শিখবেন: পর্ব ৪৪

Z

Zero-copyজিরো কপি
ডেটা kernel-এর ভেতরেই ফাইল থেকে নেটওয়ার্কে বা অন্য ফাইলে পাঠানো, প্রোগ্রামের মেমরিতে কপি না করে; Java-তে FileChannel.transferTo, Linux-এ sendfile.যেখানে শিখবেন: পর্ব ৩৭
Zero-width joiner (ZWJ, U+200D)জিরো-উইডথ জয়নার
চোখে দেখা যায় না এমন একটি Unicode অক্ষর, যা পাশের অক্ষরগুলোকে কীভাবে জোড়া লাগিয়ে দেখাবে তা ঠিক করে; বাংলায় র‍্যাব-এর মতো শব্দে র-ফলার রূপ ঠিক রাখতে ব্যবহার হয়।যেখানে শিখবেন: পর্ব ১৪
ZGCজেড-জি-সি
প্রায় সব কাজ প্রোগ্রাম চলার পাশাপাশি করে এমন garbage collector, বড় heap-এও pause সাধারণত এক মিলিসেকেন্ডের নিচে। Java 15 থেকে production-ready, -XX:+UseZGC দিয়ে চালু হয়; Java 21-এ generational মোডের জন্য -XX:+ZGenerational-ও লাগে, Java 23 থেকে generational-ই ডিফল্টযেখানে শিখবেন: পর্ব ০৫পর্ব ৪৪
ZonedDateTimeজোনড ডেট টাইম
তারিখ, সময় আর একটি ZoneId-এর নিয়ম একসাথে; DST জানে বলে এক শহরের সময় অন্য শহরে সঠিকভাবে রূপান্তর করতে পারে (withZoneSameInstant)যেখানে শিখবেন: পর্ব ৩৮
ZoneIdজোন আইডি
একটি টাইম জোনের পরিচয়, যেমন Asia/Dhaka বা America/New_York; এর পেছনে থাকে সেই অঞ্চলের অফসেট আর DST-এর পুরো ইতিহাস ও নিয়ম। নির্দিষ্ট অফসেটের জন্য এর subclass ZoneOffsetযেখানে শিখবেন: পর্ব ৩৮

← Java প্রোগ্রামিং কোর্সের হোম পেজে ফিরে যান