🎤 टॉप 81 Interview Questions
ये सबसे common Java interview questions हैं — tap करके answer खोलो।
EK COMPREHENSIVE framework, ENTERPRISE Java applications BANANE ke liye — DEPENDENCY INJECTION, TRANSACTION MANAGEMENT, DATA ACCESS, WEB MVC — SAB EK CHHATE ke NEECHE.
EK PRINCIPLE, JAHA, OBJECT ki DEPENDENCIES, KHUD OBJECT KE BAJAYE, EK CONTAINER (Spring) SE, "PROVIDE" ki jaati hain — CONTROL, OBJECT SE, CONTAINER ki TARAF, "INVERT" ho jaata hai.
IoC ko IMPLEMENT karne ka MAIN TAREEKA — EK OBJECT ki DEPENDENCIES, OUTSIDE SE, PROVIDE ki jaati hain (CONSTRUCTOR SE, TYPICALLY) — OBJECT, KHUD, APNI DEPENDENCIES CREATE NAHI karta.
Constructor injection SE, DEPENDENCY, final ho sakti hai (IMMUTABLE), aur OBJECT CREATION KE WAQT hi, SAARI DEPENDENCIES GUARANTEED milti hain — UNIT TESTING mein bhi, MOCK dependencies, EASILY PASS ki ja sakti hain.
EK OBJECT, JISE, Spring IoC CONTAINER, CREATE, CONFIGURE, aur MANAGE karta hai — HAR bean, CONTAINER mein, EK UNIQUE ID/NAME RAKHTI hai.
Singleton — POORE APPLICATION CONTEXT mein, SIRF EK, SHARED INSTANCE BANTI hai — STATELESS SERVICES ke liye, MEMORY-EFFICIENT, aur THREAD-SAFE hai.
SAB, @Component KE "SPECIALIZED" VERSIONS HAIN — SEMANTICALLY, CLASS ka ROLE CLEAR karte hain (business logic, data access, web layer). @Repository, EXTRA (EXCEPTION TRANSLATION) BEHAVIOR bhi DETA hai.
Spring CONTAINER SE, MATCHING bean, DHOOND KE, AUTOMATICALLY, INJECT karta hai (by TYPE, PHIR by NAME, agar MULTIPLE MATCHES HON).
EK JAVA CLASS, JISKE ANDAR, @Bean-annotated METHODS, Spring BEANS DEFINE karte HAIN — XML CONFIGURATION KA, MODERN, TYPE-SAFE ALTERNATIVE.
THIRD-PARTY CLASSES ke liye (jaise RestTemplate), JINKE SOURCE CODE PAR CONTROL NAHI hai — @Component, DIRECTLY, APNI KHUD KI CLASSES PAR LAGТA hai.
SPECIFIED PACKAGE (aur SUB-PACKAGES) mein, @Component-annotated CLASSES ko, DHOONDТA hai — Spring Boot mein, MAIN CLASS ke PACKAGE SE, AUTOMATICALLY SHURU hota hai.
DIFFERENT ENVIRONMENTS (dev, PROD) ke liye, DIFFERENT beans DEFINE karne DETE HAIN — spring.profiles.active PROPERTY SE, ACTIVE PROFILE, SET hota hai.
Spring Boot, AUTO-CONFIGURATION, EMBEDDED SERVER, aur STARTERS PROVIDE karta hai — MANUAL CONFIGURATION, DRAMATICALLY, KAM ho jaati hai. Spring Boot APPS, INTERNALLY, Spring HI USE karte hain.
TEEN ANNOTATIONS — @Configuration, @EnableAutoConfiguration, aur @ComponentScan — EK SAATH.
CLASSPATH PAR, KAUN SI LIBRARIES PRESENT hain, WOH DEKH KAR, AUTOMATICALLY, SENSIBLE, DEFAULT BEANS CONFIGURE kar deta hai — @ConditionalOnClass, @ConditionalOnMissingBean, INTERNALLY, USE HOTE HAIN.
RELATED, COMPATIBLE DEPENDENCIES KA, EK CURATED BUNDLE — jaise spring-boot-starter-web, MVC + EMBEDDED TOMCAT + JSON LIBRARY, EK SAATH DETA hai.
Spring MVC ka "FRONT CONTROLLER" — HAR INCOMING REQUEST, ISI SE, GUZARTI hai, aur, YE, SAHI CONTROLLER METHOD ko, ROUTE karta hai.
@Controller, TRADITIONAL, VIEW-based MVC ke liye hai (return value, EK VIEW NAME hoti hai). @RestController (= @Controller + @ResponseBody), REST APIs ke liye hai (return value, DIRECTLY, JSON mein CONVERT hoti hai).
@RequestMapping, GENERIC hai (method EXPLICITLY SPECIFY karna PADТA hai). @GetMapping, ISKA SHORTHAND hai, SPECIFICALLY, GET REQUESTS ke liye.
@RequestBody, INCOMING JSON ko, JAVA OBJECT mein, DESERIALIZE karta hai. @ResponseBody, JAVA OBJECT ko, JSON mein, SERIALIZE karके, RESPONSE mein, DAALTA hai.
JPA (Hibernate) ke UPAR, EK CONVENIENCE LAYER — REPOSITORY INTERFACES SE, BOILERPLATE CRUD CODE, COMPLETELY, ELIMINATE karta hai.
15+ METHODS, FREE mein — save(), findById(), findAll(), deleteById() — BINA EK LINE IMPLEMENTATION LIKHE.
METHOD NAME SE, HI, SQL QUERY, AUTOMATICALLY, GENERATE ho jaati hai — jaise findByEmail(String email) — "WHERE email = ?" QUERY BANTI hai.
EK METHOD ko, TRANSACTIONAL BOUNDARY MARK karta hai — SUCCESSFUL COMPLETION PAR, COMMIT; EXCEPTION AANE PAR, AUTOMATIC ROLLBACK.
Dependency ADD karте hi, SAARI ENDPOINTS, AUTOMATICALLY, PROTECTED ho jaati hain — DEVELOPERS ko, ACCIDENTALLY, INSECURE APPLICATION SHIP karne SE, ROKTA hai.
Authentication, "TUM KAUN HO" VERIFY karta hai. Authorization, "TUMHE KYA KARNE KI PERMISSION HAI", DECIDE karta hai.
CROSS-CUTTING CONCERNS (LOGGING, SECURITY, TRANSACTIONS) — JO MULTIPLE, UNRELATED CLASSES mein, REPEAT hoते hain — EK JAGAH, CENTRALIZE karta hai.
AOP PROXY-BASED MECHANISM SE — Spring, BEAN ke AROUND, EK PROXY BANATA hai, JO, TRANSACTION START/COMMIT/ROLLBACK, AUTOMATICALLY, HANDLE karta hai.
@SpringBootTest, POORA APPLICATION CONTEXT LOAD karta hai (SLOW, REALISTIC). @WebMvcTest, SIRF WEB LAYER LOAD karta hai (FAST, FOCUSED).
PRODUCTION-READY MONITORING ENDPOINTS — /health, /metrics, /info — APPLICATION ki HEALTH/PERFORMANCE, HTTP ke THROUGH, EXPOSE karte hain.
BeanFactory, LAZY hai (beans, getBean() CALL PAR CREATE hoती hain). ApplicationContext, EAGER hai (STARTUP PAR, SAARI SINGLETON beans, CREATE ho jaati hain) — "FAIL FAST" PRINCIPLE.
AGAR Bean A ko Bean B CHAHIYE, aur Bean B ko Bean A CHAHIYE, Spring, STARTUP PAR, EXCEPTION THROW karta hai — DESIGN ko REFACTOR karna, YA setter injection USE karna, SOLUTION HAI.
JAB, EK INTERFACE KE, MULTIPLE IMPLEMENTATIONS HON, @Qualifier SE, SPECIFIC bean, EXPLICITLY, CHOOSE ki ja sakti hai.
MULTIPLE CANDIDATES ke BEECH, EK bean ko, "DEFAULT CHOICE" MARK karta hai — @Qualifier na LAGANE PAR bhi, @Primary WALI bean, AUTOMATICALLY, SELECT ho jaati hai.
@PostConstruct, DEPENDENCIES INJECT hone ke BAAD, SETUP LOGIC ke liye. @PreDestroy, CONTAINER SHUTDOWN hone SE PEHLE, CLEANUP LOGIC ke liye.
VERBOSE hai, aur ERRORS, RUNTIME PAR HI, PAKDE JAATE HAIN (COMPILE-TIME PAR NAHI) — Java-config, TYPE-SAFE hai, aur IDE SUPPORT, BEHTAR hai.
--debug FLAG SE, EXACTLY, BATATА hai — KAUN SI auto-configurations, APPLY HUI, aur KAUN SI, SKIP HUI (aur KYUN) — DEBUGGING ke liye, POWERFUL TOOL.
AGAR USER, KHUD, EK bean DEFINE karta hai, AUTO-CONFIGURATION, USE bean ko, SKIP kar deta hai — "SENSIBLE DEFAULT, EASILY OVERRIDABLE" PHILOSOPHY, ISI SE, KAAM karti hai.
DONO, FUNCTIONALLY, EQUIVALENT hain — properties, FLAT, KEY=VALUE FORMAT hai. YAML, HIERARCHICAL, INDENTATION-BASED hai — BADE CONFIGS ke liye, ZYAADA READABLE.
RELATED PROPERTIES ko, EK CLASS mein, GROUP karta hai (@Value, EK-EK PROPERTY ke liye, SEPARATE ANNOTATION MANGТA hai) — TYPE-SAFE, VALIDATION-FRIENDLY.
RESPONSE ka STATUS CODE, HEADERS, aur BODY — SAB, EXPLICITLY, CONTROL kiye ja sakte hain — PROPER REST SEMANTICS (201, 404, etc.) FOLLOW karne ke liye.
@PathVariable, URL PATH SE, VALUES EXTRACT karta hai (jaise /users/{id}). @RequestParam, QUERY STRING SE, VALUES LETA hai (jaise ?page=1).
JPA ka CORE, LOW-LEVEL INTERFACE — Repositories, INTERNALLY, EntityManager USE karte hain. DYNAMIC QUERIES jaise, ADVANCED SCENARIOS mein, DIRECTLY, USE hota hai.
Sort.by("fieldName") SE, EK Sort OBJECT BANAKE, REPOSITORY METHOD (jaise findAll(Sort sort)) mein, PASS kiya jaata hai.
Optimistic locking (@Version), ASSUME karta hai ki CONFLICTS RARE HAIN — VERSION MISMATCH PAR, EXCEPTION. Pessimistic locking, DATABASE-LEVEL LOCKS USE karta hai, CONFLICTS ko, HONE HI NAHI DETA.
HAR HTTP REQUEST, DispatcherServlet TAK PAHUNCHNE SE PEHLE, MULTIPLE SECURITY FILTERS (AUTHENTICATION CHECK, CSRF VALIDATION) SE, GUZARТА hai.
PASSWORDS ko, HASH karके, STORE karta hai (PLAIN TEXT KABHI NAHI) — INTENTIONALLY SLOW, ISLIYE, BRUTE-FORCE ATTACKS, EXPENSIVE ban jaate hain.
STATELESS, TOKEN-BASED AUTHENTICATION — SERVER, KUCH STORE NAHI karta, HAR REQUEST mein, CLIENT, TOKEN BHEJTA hai, SERVER, SIRF, SIGNATURE VERIFY karta hai.
Pointcut, DEFINE karta hai, KAHA (KIN METHODS PAR) ADVICE APPLY hogi. Advice, DEFINE karta hai, KYA (KYA LOGIC) RUN hoga.
ACTUAL METHOD CALL ko, POORI TARAH, CONTROL kar sakta hai — EXECUTE karna hai YA NAHI, RESULT MODIFY karna — proceed() SE, ACTUAL METHOD, INVOKE hota hai.
REAL DEPENDENCIES (jaise DATABASE-HITTING REPOSITORY) ki JAGAH, FAKE, PREDICTABLE "MOCK" OBJECTS USE karne DETA hai — @Mock, @InjectMocks SE.
Spring MVC CONTROLLERS ko, TEST karta hai, BINA ACTUAL HTTP SERVER (Tomcat) START kiye — REQUESTS, SIMULATED HOTI HAIN.
REAL DATABASES (jaise PostgreSQL) ko, DOCKER CONTAINERS mein, SPIN UP karta hai, TESTING ke liye — H2 IN-MEMORY se, ZYAADA RELIABLE, kyunki, SQL DIALECT, SAME hota hai PRODUCTION jaisa.
PUBLISHER-SUBSCRIBER PATTERN — EK COMPONENT, EVENT PUBLISH karta hai, MULTIPLE, INDEPENDENT LISTENERS (@EventListener), USE, REACT kar sakte hain.
EK METHOD ko, PERIODICALLY, YA SPECIFIC TIMES PAR, AUTOMATICALLY, RUN karne DETA hai — fixedRate, fixedDelay, cron EXPRESSIONS SE.
CLOUD ENVIRONMENTS mein, IPs CONSTANTLY CHANGE hoti hain — HAR SERVICE, STARTUP PAR, KHUD REGISTER karti hai, aur DUSRI SERVICES, USE, NAAM SE, DHOONDТI HAIN.
Plain Old Java Object — EK SIMPLE JAVA OBJECT, JO, KISI SPECIAL FRAMEWORK CLASS/INTERFACE ko, EXTEND/IMPLEMENT NAHI karta — Spring, INHI POJOs SE, ENTERPRISE FEATURES DETA hai.
EJB, HEAVYWEIGHT tha (APPLICATION SERVER, VERBOSE XML CHAHIYE THA). Spring, LIGHTWEIGHT, POJO-BASED tha, aur PLAIN TOMCAT PAR bhi, CHAL SAKTA THA.
MULTIPLE, SEPARATE @Configuration CLASSES ko, EK MAIN CONFIGURATION CLASS mein, COMBINE karta hai.
JUnit 5, Mockito, AssertJ, aur Spring TEST utilities — SAB, EK SAATH, COMPATIBLE VERSIONS mein.
CODE CHANGE PAR, AUTOMATICALLY, FAST RESTART karta hai — DO CLASSLOADERS (base + restart) SE, SIRF CHANGED CODE, RELOAD hota hai.
Spring Boot ka DEFAULT CONNECTION POOL — PRE-ESTABLISHED DATABASE CONNECTIONS ko, REUSE karta hai, HAR REQUEST ke liye, NAYA CONNECTION BANANE ke BAJAYE.
EK METHOD, @ExceptionHandler(SpecificException.class) SE, MARK ki jaati hai — WOH EXCEPTION AANE PAR, CUSTOM RESPONSE, RETURN karti hai.
EK CENTRALIZED CLASS, SAARE @RestController classes ke liye, GLOBAL EXCEPTION HANDLING PROVIDE karti hai — HAR CONTROLLER mein, TRY-CATCH, DUPLICATE karne ki zaroorat NAHI.
JAB QUERY METHOD NAMING SE, COMPLEX QUERY (JOINS, AGGREGATIONS) EXPRESS NAHI ho sakti — CUSTOM JPQL/SQL, DIRECTLY, LIKHNE ke liye.
ddl-auto=update, UNPREDICTABLE hai (Hibernate, KHUD, SCHEMA DECIDE karta hai). Migrations, EXPLICIT, VERSIONED, TEAM-SHAREABLE, aur ROLLBACK-ABLE HAIN.
METHOD-LEVEL security — EK SPECIFIC METHOD PAR, DIRECT, SECURITY RULES APPLY karta hai (jaise hasRole('ADMIN')) — METHOD EXECUTE hone SE PEHLE, CHECK hota hai.
METHOD SIGNATURE, PATTERN MATCH karta hai — jaise execution(* com.example.service.*.*(..)), "SERVICE PACKAGE KE, SAARE METHODS" ko, TARGET karta hai.
EK SINGLE ENTRY POINT hai — CLIENT, SIRF GATEWAY SE, BAAT karta hai, JO, REQUEST ko, SAHI INTERNAL SERVICE TAK, ROUTE karta hai.
Spring, DEPENDENCY INJECTION, CONSTRUCTOR PARAMETERS SE, HANDLE karta hai — MANUAL constructor CHAINING, RARELY, ZAROORI HOTI hai, Spring beans ke CONTEXT mein.
EK SPECIFIC application.properties VALUE ko, DIRECTLY, EK FIELD mein, INJECT karta hai — jaise @Value("\${app.name}").
APPLICATION JAR, EK BAAR BUILD hota hai, aur SAME JAR, DIFFERENT ENVIRONMENTS mein, SIRF DIFFERENT CONFIGURATION (ENV VARIABLES) KE SAATH, DEPLOY hoती hai.
CLIENT ke Accept HEADER ke BASIS PAR, DIFFERENT FORMATS (JSON, XML), SAME CONTROLLER SE, RETURN kiye ja sakte hain.
EK DataSource, @Primary MARK ki jaati hai. BAAKI, @Qualifier SE, EXPLICITLY, SPECIFY karni PADТI HAIN — HAR EK, APNA, SEPARATE EntityManagerFactory bhi CHAHIYE.
OAuth2 Client, USER ko, LOGIN PROVIDER (Google) PAR, REDIRECT karta hai. OAuth2 Resource Server, INCOMING TOKENS (JWT) ko, VALIDATE karta hai.
CODE, "INVISIBLE-MAGICALLY" BEHAVE karta hai (ADVICE, KAHIN ALAG FILE mein hai) — DEBUGGING, MUSHKIL ho jaati hai. SIRF, GENUINE, CROSS-CUTTING CONCERNS ke liye, USE karna CHAHIYE.
ZYAADA UNIT TESTS (FAST, ISOLATED), aur KAM, INTEGRATION TESTS (SLOW, REAL DEPENDENCIES) — BALANCE, TEST SUITE ki SPEED aur CONFIDENCE, DONO MAINTAIN karta hai.
Synchronous, IMMEDIATE RESPONSE CHAHIYE HO TO. Asynchronous, DECOUPLED, "FIRE AND FORGET" OPERATIONS ke liye, JAHA IMMEDIATE RESPONSE ki ZAROORAT NAHI.
AHEAD-OF-TIME COMPILATION SE, STARTUP TIME, MILLISECONDS mein (~50ms VS ~2-3s JVM) — SERVERLESS, MICROSERVICES ke liye, IDEAL.
EntityManager, EK "PERSISTENCE CONTEXT" MAINTAIN karta hai — AGAR, EK HI TRANSACTION KE ANDAR, SAME ENTITY, DO BAAR FETCH ki JAAYE, DUSRI BAAR, DATABASE CALL NAHI hoती.
NAHI — Spring Boot applications, INTERNALLY, Spring HI USE karti hain (ApplicationContext, beans, DI, SAB SAME). Spring Boot, SIRF, SETUP/CONFIGURATION, SIMPLIFY karta hai.