🎤 Top 81 Interview Questions
Yeh sabse common Java interview questions hain — tap karke answer kholo.
Spring ecosystem ka SABSE POPULAR project — Spring KE UPAR, EK "OPINIONATED" LAYER, JO, APPLICATION SETUP, RADICALLY, SIMPLIFY karta hai — SENSIBLE DEFAULTS, PEHLE SE, DECIDE HOTE HAIN.
Plain Spring mein, MAANUAL DECISIONS lene padते hain (DataSource, Tomcat SETUP). Spring Boot, YE SAARE DECISIONS, "PRE-MADE" karta hai — AUTO-CONFIGURATION, STARTERS, EMBEDDED SERVER.
EK WEB TOOL (start.spring.io), JO, Spring Boot PROJECT SCAFFOLDING, GENERATE karta hai — DEPENDENCIES CHOOSE karo, EK CLICK mein, READY-TO-RUN PROJECT, DOWNLOAD ho jaata hai.
TEEN ANNOTATIONS — @Configuration, @EnableAutoConfiguration, aur @ComponentScan — EK SAATH.
CODE CHANGE PAR, AUTOMATICALLY, FAST RESTART karta hai — DO CLASSLOADERS (base + restart) SE, SIRF CHANGED CODE, RELOAD hota hai — PRODUCTION mein, AUTOMATICALLY, DISABLED hota hai.
DONO, FUNCTIONALLY, EQUIVALENT hain — properties, FLAT, KEY=VALUE FORMAT hai. YAML, HIERARCHICAL, INDENTATION-BASED hai — BADE CONFIGS ke liye, ZYAADA READABLE.
Component SCANNING ka STARTING POINT DEFINE karta hai — Main class, ROOT PACKAGE mein RAKHNI CHAHIYE, TAAKI SAARE SUB-PACKAGES, AUTOMATICALLY, SCAN HON.
CLASSPATH PAR, KAUN SI LIBRARIES PRESENT hain, WOH DEKH KAR, AUTOMATICALLY, SENSIBLE, DEFAULT BEANS CONFIGURE kar deta hai.
@ConditionalOnClass, CHECK karta hai, EK SPECIFIC CLASS, CLASSPATH PAR, PRESENT hai YA NAHI. @ConditionalOnMissingBean, CHECK karta hai, USER NE, KHUD, EK bean, DEFINE KI hai YA NAHI.
"CONDITIONS EVALUATION REPORT" — EXACTLY, BATATА hai, KAUN SI auto-configurations, APPLY HUI, aur KAUN SI, SKIP HUI (aur KYUN).
RELATED PROPERTIES ko, EK CLASS mein, GROUP karta hai — TYPE-SAFE, VALIDATION-FRIENDLY, aur LESS BOILERPLATE.
KEBAB-CASE (properties), camelCase (Java), aur UPPER_SNAKE_CASE (env vars) KE BEECH, AUTOMATICALLY, TRANSLATE karta hai.
application-{profile}.properties FILES SE — spring.profiles.active PROPERTY, DECIDE karti hai, KAUN SA PROFILE, ACTIVE hai.
APPLICATION, STANDALONE JAR ke ROOP mein, DIRECTLY, java -jar app.jar SE, RUN ho jaati hai — KOI EXTERNAL SERVER SETUP, ZAROORI NAHI.
EK CENTRALIZED CLASS, SAARE @RestController classes ke liye, GLOBAL EXCEPTION HANDLING PROVIDE karti hai.
DTO CLASSES par, ANNOTATIONS LAGAI jaati hain, aur CONTROLLER mein, @Valid SE, ENFORCE kiya jaata hai — INVALID DATA PAR, AUTOMATICALLY, 400 BAD REQUEST.
DataSource, EntityManagerFactory, aur TransactionManager — SAB, AGAR DATABASE DRIVER, CLASSPATH PAR HAI.
ddl-auto=update, UNPREDICTABLE hai. Migrations, EXPLICIT, VERSIONED, TEAM-SHAREABLE hain.
Spring Boot 2.x+ ka DEFAULT CONNECTION POOL — PRE-ESTABLISHED CONNECTIONS ko, REUSE karta hai.
JUnit 5, Mockito, AssertJ, aur Spring TEST utilities.
@WebMvcTest, SIRF WEB LAYER LOAD karta hai (FAST). @SpringBootTest, POORA APPLICATION CONTEXT LOAD karta hai (SLOW, REALISTIC).
PRODUCTION-READY MONITORING ENDPOINTS — /health, /metrics, /info.
SAARI ENDPOINTS, AUTOMATICALLY, PROTECTED ho jaati hain — EK RANDOM PASSWORD, CONSOLE mein, PRINT hoती hai.
Executable JAR ("FAT JAR") — APPLICATION CODE + DEPENDENCIES + EMBEDDED SERVER, SAB, EK FILE mein.
BUILD TOOLS ko, FINAL IMAGE SE, SEPARATE RAKHTE HAIN — FINAL IMAGE, SIGNIFICANTLY, CHHOTI, aur SECURE, hoती hai.
javax.* SE jakarta.* NAMESPACE mein, MIGRATION — Java 17 BASELINE bhi, MANDATORY, ho gaya.
ENSURE karte hain, ki, HAR DEVELOPER, aur CI/CD PIPELINE, EXACT SAME Maven/Gradle VERSION, USE kare — MANUALLY, INSTALL karne ki, ZAROORAT NAHI.
Layered (controller/, service/, repository/), CHHOTE PROJECTS ke liye SIMPLE hai. Feature-based (order/, user/), BADE PROJECTS mein, BEHTAR SCALE karta hai.
@AutoConfiguration annotation SE, EK CLASS DEFINE karके, META-INF/spring/...AutoConfiguration.imports FILE mein, USKA FULLY-QUALIFIED NAME, LIST karна PADТA hai.
EK bean, SIRF TAB CREATE hoती hai, JAB, EK SPECIFIC PROPERTY, SET (YA EK SPECIFIC VALUE) HO — "FEATURE FLAG" PATTERN ENABLE karta hai.
APPLICATION JAR, EK BAAR BUILD hota hai, aur SAME JAR, DIFFERENT ENVIRONMENTS mein, SIRF DIFFERENT CONFIGURATION (ENV VARIABLES) KE SAATH, DEPLOY hoती hai.
Command-line arguments, SABSE HIGH PRIORITY RAKHTE hain — PHIR, environment variables — PHIR, PROFILE-SPECIFIC properties — AAKHIR mein, DEFAULT application.properties.
RFC 7807 — CONSISTENT, INDUSTRY-STANDARD ERROR RESPONSE FORMAT (type, title, status, detail).
URL PATH SE (jaise /api/v1/users) — SIMPLEST, MOST COMMON APPROACH.
spring-boot-starter-tomcat ko, EXCLUDE karके, spring-boot-starter-undertow, ADD karके.
ASSUME karta hai, ki, CONFLICTS RARE HAIN — VERSION MISMATCH PAR, EXCEPTION THROW hoती hai.
EK DataSource, @Primary MARK ki jaati hai. BAAKI, @Qualifier SE, EXPLICITLY, SPECIFY karni PADТI HAIN.
V{version}__{description}.sql — jaise V1__create_users_table.sql — VERSION NUMBER SE, EXECUTION ORDER, DECIDE hota hai.
MANUALLY, @DynamicPropertySource SE, CONNECTION DETAILS SET karne ki, ZAROORAT NAHI — @ServiceConnection, AUTOMATICALLY, CONTAINER ki DETAILS, DETECT kar leta hai.
POORA APPLICATION CONTEXT LOAD KIYE BINA, SIRF, RELEVANT BEANS LOAD karte hain — TEST SUITE, BAHUT, FASTER hoती hai.
EK SEPARATE, TEST-ONLY CONFIGURATION CLASS, DEFINE karta hai — jaise EXTERNAL SERVICES (payment gateways) ke MOCK VERSIONS PROVIDE karna.
Liveness FAIL par, CONTAINER, RESTART hota hai. Readiness FAIL par, TRAFFIC ROUTE hona, RUK jaata hai (RESTART nahi hota).
HealthIndicator interface IMPLEMENT karके — jaise DATABASE, EXTERNAL API REACHABILITY, CHECK karna.
EK "VENDOR-NEUTRAL FACADE" METRICS ke liye — APPLICATION CODE, MICROMETER'S API SE LIKHA jaata hai, aur BACKEND (Prometheus, Datadog) SEPARATELY CONFIGURE hota hai.
Microservices mein, EK REQUEST, KAHA, KITNA TIME LIYA (kaun si SERVICE mein), YE TRACK karta hai — DEBUGGING, SLOW REQUESTS ke liye, ESSENTIAL.
"LOGIN WITH GOOGLE/GITHUB" jaisi FUNCTIONALITY — POORA OAUTH2 FLOW (REDIRECT, CALLBACK, TOKEN EXCHANGE), AUTOMATICALLY, HANDLE hota hai.
BUILT-IN, WELL-TESTED, JWT VALIDATION LOGIC — issuer-uri SET karte hi, PUBLIC KEYS, AUTOMATICALLY, FETCH hoती hain.
@PreAuthorize/@PostAuthorize ANNOTATIONS — INDIVIDUAL METHODS PAR, DIRECT, SECURITY RULES APPLY karne ke liye.
AHEAD-OF-TIME COMPILATION SE, STARTUP TIME, MILLISECONDS mein (~50ms VS ~2-3s JVM) — SERVERLESS ke liye, IDEAL.
SHUTDOWN SIGNAL milne PAR, IN-FLIGHT REQUESTS ko, COMPLETE hone deta hai (EK TIMEOUT TAK), NAYE REQUESTS ACCEPT karna, BAND kar deta hai.
Spring Boot ke DEVELOPERS ne, INDUSTRY ke MOST COMMON USE-CASES DEKH KE, SENSIBLE DEFAULTS, PEHLE SE, DECIDE KAR DIYE HAIN.
QUICK PROTOTYPING/POC ke liye — PRODUCTION applications mein, RARE hai, kyunki, MODERN IDEs, Initializr BUILT-IN RAKHTE hain.
META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports FILE SE — PERFORMANCE IMPROVEMENT ke liye.
@AutoConfigureAfter/@AutoConfigureBefore ANNOTATIONS SE, DEPENDENCIES DEFINE hoती hain — jaise DataSourceAutoConfiguration, JpaAutoConfiguration SE, PEHLE.
EK MAIN class KE ANDAR, NESTED objects (jaise Jwt, Cors) DEFINE karके — HIERARCHICAL, TYPE-SAFE STRUCTURE.
EK CENTRALIZED PLACE, SAARI microservices ki CONFIGURATION RAKHNE ke liye (TYPICALLY, EK GIT repository mein).
Spring Data's Pageable INTERFACE SE — TRIVIAL bana deta hai, /users?page=0&size=20 jaisi QUERIES ko HANDLE karna.
springdoc-openapi library SE — CONTROLLER ANNOTATIONS SE HI, AUTOMATICALLY, INTERACTIVE API DOCUMENTATION, GENERATE ho jaati hai.
EntityManager, EK "PERSISTENCE CONTEXT" MAINTAIN karta hai — SAME ENTITY, DO BAAR FETCH karne PAR, DUSRI BAAR, DATABASE CALL NAHI hoती.
Jab EK PARENT ENTITY, FETCH ki jaati hai, aur, HAR CHILD ENTITY ke liye, SEPARATE QUERY, TRIGGER HOTI HAI — @EntityGraph YA JOIN FETCH SE, AVOID kiya ja sakta hai.
@Mock, EK FAKE DEPENDENCY OBJECT BANATA hai. @InjectMocks, TARGET CLASS BANATA hai, aur SAARI @Mock DEPENDENCIES, AUTOMATICALLY, INJECT karta hai.
CHECK karta hai, KI, EK MOCK OBJECT KE, KISI METHOD ko, KITNI BAAR, KIN PARAMETERS KE SAATH, CALL kiya GAYA — SIRF RETURN VALUE NAHI, BEHAVIOR bhi TEST ho sakta hai.
PRODUCTION mein, BINA APPLICATION RESTART kiye, RUNTIME mein, LOG LEVEL, CHANGE kiya ja sakta hai.
/actuator/env jaisa endpoint, SENSITIVE CONFIGURATION (jaise DATABASE PASSWORDS) REVEAL kar sakta hai, AGAR PROPERLY SECURED NA HO.
@PreAuthorize, METHOD EXECUTE hone SE PEHLE, CHECK karta hai. @PostAuthorize, METHOD EXECUTE hone ke BAAD, RETURN VALUE ko, CHECK karta hai.
CSRF Protection, BROWSER-BASED, COOKIE-BASED SESSIONS ke liye, ZAROORI hai — TOKEN-based APIs ke liye, ZAROORI NAHI.
BOOT-INF/classes (COMPILED CODE), BOOT-INF/lib (SAARI DEPENDENCIES), aur META-INF (MANIFEST).
DOCKERFILE MANUALLY LIKHNE ke BAJAYE, EK SINGLE COMMAND SE, OPTIMIZED, LAYERED DOCKER IMAGE, GENERATE ho jaati hai.
ConfigMaps, NON-SENSITIVE configuration STORE karte hain. Secrets, SENSITIVE data (PASSWORDS, API KEYS) STORE karte hain.
OFFICIAL, DETAILED DOCUMENTATION, HAR AUTO-CONFIGURATION, PROPERTY, aur FEATURE ki, IN-DEPTH EXPLANATION DETI hai — REAL-WORLD PROBLEMS SOLVE karne ke liye, PRIMARY RESOURCE.
RUNTIME mein, HTTP endpoint ke THROUGH, CONDITIONS EVALUATION REPORT — --debug FLAG KI TARAH, LEKIN PRODUCTION/STAGING mein, USEFUL, JAHA RESTART, PRACTICAL NAHI hota.
--- SEPARATOR SE — HAR SECTION, EK DIFFERENT PROFILE ke liye, ACTIVATE ki ja sakti hai.
@Constraint(validatedBy = ...) SE, EK ANNOTATION DEFINE karके, aur ConstraintValidator IMPLEMENT karके.
DATABASE SERVER, KHUD, LIMITED CONNECTIONS HANDLE kar sakta hai — BAHUT ZYAADA CONNECTIONS, DATABASE ko, OVERWHELM kar sakte HAIN.
ZYAADA UNIT TESTS (FAST, ISOLATED), aur KAM, INTEGRATION TESTS (SLOW, REAL DEPENDENCIES) — BALANCE, SPEED aur CONFIDENCE, DONO MAINTAIN karta hai.
EK VISUALIZATION TOOL, JO, TRACES ko, "WATERFALL" VIEW mein, DIKHATA hai — KAUN SI SERVICE, KITNA TIME LE RAHI hai, EK NAZAR mein, PATA CHALTA hai.
@ConditionalOnMissingBean PATTERN SE — CUSTOM SecurityFilterChain DEFINE karte hi, DEFAULT, AUTOMATICALLY, BACK OFF ho jaata hai.
DO IDENTICAL ENVIRONMENTS (blue, green) MAINTAIN karके, ZERO-DOWNTIME DEPLOYMENTS ENABLE karta hai — TRAFFIC, INSTANTLY, SWITCH ho sakta hai.
AGAR, EXISTING, LEGACY application server (jaise WebLogic) mein, DEPLOY karna ho — MODERN, CLOUD-NATIVE deployments mein, YE RARE hai.
update (DEV, SCHEMA AUTO-ADJUST), validate (PROD, SIRF CHECK), none (MIGRATION TOOLS jaise Flyway USE karте WAQT).
SAME class ke liye, DIFFERENT SCENARIOS (jaise CREATE vs UPDATE) mein, DIFFERENT VALIDATION RULES, APPLY karne DETE hain.