Ernst & Young
20+ Peoplelink Unified Communications Interview Questions and Answers
Java is platform independent because it can run on any system with JVM, which is platform dependent due to its need to interact with the underlying hardware.
Java code is compiled into bytecode, which can be executed on any system with a JVM installed.
JVM acts as an intermediary between the Java code and the underlying hardware of the system.
JVM is platform dependent because it needs to interact with the specific hardware and operating system of the system it is running on.
Exa...read more
Abstract class can have both abstract and non-abstract methods, while interface can only have abstract methods.
Abstract class can have constructors, fields, and methods, while interface can only have constants and method signatures.
A class can extend only one abstract class, but can implement multiple interfaces.
Abstract classes are used to define common characteristics of subclasses, while interfaces are used to define a contract for classes to implement.
Example: Abstract cl...read more
setMaxResults() limits the number of results returned by a query, while setFetchSize() determines the number of rows fetched at a time from the database.
setMaxResults() is used to limit the number of results returned by a query.
setFetchSize() determines the number of rows fetched at a time from the database.
setMaxResults() is typically used for pagination purposes, while setFetchSize() can improve performance by reducing the number of round trips to the database.
Example: setM...read more
Packages in Java help organize code, prevent naming conflicts, and provide access control.
Organize code into logical groups for easier maintenance and readability
Prevent naming conflicts by using unique package names
Provide access control by using access modifiers like public, private, protected, and default
Facilitate reusability by allowing classes to be easily imported and used in other packages
Some standard Java pre-defined functional interfaces include Function, Consumer, Predicate, and Supplier.
Function: Represents a function that accepts one argument and produces a result. Example: Function<Integer, String>
Consumer: Represents an operation that accepts a single input argument and returns no result. Example: Consumer<String>
Predicate: Represents a predicate (boolean-valued function) of one argument. Example: Predicate<Integer>
Supplier: Represents a supplier of re...read more
Spring Boot offers annotations like @SpringBootApplication, @RestController, @Autowired, @Component, @RequestMapping, etc.
@SpringBootApplication - Used to mark the main class of a Spring Boot application.
@RestController - Used to define a class as a controller in a RESTful web service.
@Autowired - Used for automatic dependency injection.
@Component - Used to indicate that a class is a Spring component.
@RequestMapping - Used to map web requests to specific handler methods.
An interface in OOP is a blueprint of a class that defines a set of methods without implementation.
Interfaces in Java are used to achieve abstraction and multiple inheritance.
All methods in an interface are abstract by default and do not have a body.
Classes can implement multiple interfaces but can only extend one class.
Example: interface Shape { void draw(); }
Example: class Circle implements Shape { public void draw() { // implementation } }
The @RestController annotation in Spring Boot is used to define a class as a RESTful controller.
Used to create RESTful web services in Spring Boot
Combines @Controller and @ResponseBody annotations
Eliminates the need to annotate every method with @ResponseBody
The @SpringBootApplication annotation is used to mark a class as a Spring Boot application and enables auto-configuration and component scanning.
1. Enables auto-configuration by scanning the classpath for specific types and configuring beans based on their presence.
2. Enables component scanning to automatically discover and register Spring components such as @Component, @Service, @Repository, and @Controller.
3. Combines @Configuration, @EnableAutoConfiguration, and @Component...read more
Hibernate provides several concurrency strategies like optimistic locking, pessimistic locking, and versioning.
Optimistic locking: Allows multiple transactions to read and write to the database without locking the data. It checks for concurrent modifications before committing the transaction.
Pessimistic locking: Locks the data to prevent other transactions from accessing or modifying it until the lock is released.
Versioning: Uses a version number to track changes to an entity...read more
N+1 SELECT problem in Hibernate occurs when a query results in N+1 additional queries being executed.
Occurs when a query fetches a collection of entities and then for each entity, an additional query is executed to fetch related entities
Can be resolved by using fetch joins or batch fetching to fetch all related entities in a single query
Example: Fetching a list of orders and then for each order, fetching the customer information separately
Microservice Architecture is an architectural style that structures an application as a collection of loosely coupled services.
Each service is self-contained and can be developed, deployed, and scaled independently.
Services communicate with each other over a network, typically using HTTP/REST or messaging protocols.
Microservices allow for better scalability, flexibility, and resilience compared to monolithic architectures.
Examples of companies using microservices include Netf...read more
Spring Cloud addresses issues related to distributed systems and microservices architecture.
Service discovery and registration
Load balancing
Circuit breakers
Distributed configuration management
Routing and gateway
Monitoring and tracing
Lambda expressions are a feature introduced in Java 8 to provide a concise way to represent anonymous functions.
Lambda expressions are used to provide implementation of a functional interface.
They enable you to treat functionality as a method argument, or code as data.
Syntax of lambda expressions is (argument) -> (body).
Example: (int a, int b) -> a + b
The final keyword in Java is used to restrict the modification of variables, methods, and classes.
Final variable: Once assigned, the value of a final variable cannot be changed.
Final method: A final method cannot be overridden by subclasses.
Final class: A final class cannot be extended.
Dependency injection is a design pattern in which the dependencies of an object are provided externally rather than created within the object itself.
In dependency injection, the dependencies of a class are injected into the class from an external source, rather than the class creating the dependencies itself.
This helps in achieving loose coupling between classes, making the code more maintainable and testable.
There are different types of dependency injection such as construct...read more
Q17. How can we create our own immutable class
An immutable class in Java can be created by declaring the class as final, making all fields private and final, and not providing any setter methods.
Declare the class as final to prevent inheritance
Make all fields private and final to prevent modification
Do not provide any setter methods to prevent changing the state
Initialize all fields in the constructor
Avoid returning mutable objects or references to internal mutable objects
Q18. Difference between checked and unchecked exceptions.
Checked exceptions are checked at compile-time while unchecked exceptions are not.
Checked exceptions are checked at compile-time and must be handled or declared in the method signature.
Unchecked exceptions are not checked at compile-time and do not need to be handled or declared.
Checked exceptions are usually used for recoverable errors while unchecked exceptions are used for unrecoverable errors.
Examples of checked exceptions include IOException and SQLException while exampl...read more
Q19. How you would connect springboot project with data base.
Use Spring Data JPA to connect Spring Boot project with database.
Add database configuration in application.properties or application.yml file
Create entity classes annotated with @Entity and @Table
Create repository interfaces extending JpaRepository
Use @Autowired annotation to inject repository in services or controllers
Q20. Difference between String and String Builder
String is immutable, StringBuilder is mutable.
String is a sequence of characters stored in the heap memory.
String Builder is a mutable sequence of characters stored in the heap memory.
String objects are immutable, meaning their values cannot be changed once created.
String Builder objects are mutable, meaning their values can be changed after creation.
String concatenation creates a new String object each time, which can be inefficient.
String Builder is more efficient for conca...read more
More about working at Ernst & Young
Interview Process at Peoplelink Unified Communications
Top Java Developer Interview Questions from Similar Companies
Reviews
Interviews
Salaries
Users/Month