Get free ebooK with 50 must do coding Question for Product Based Companies solved
Fill the details & get ebook over email
Thank You!
We have sent the Ebook on 50 Must Do Coding Questions for Product Based Companies Solved over your email. All the best!

Wipro Technical Interview Questions

Last Updated on February 21, 2023 by Prepbytes

Wipro Limited is an established global supplier of information technology services. The company’s headquarters are in Bangalore. Wipro works under the principle of "think and implement," which assists clients in doing business more effectively.

On December 29, 1945, "M.H. Hasham Premji" formed Wipro Limited (Western India palm refined oils limited). It is the Western India Product Company, and it began with a vegetable oil business unit. Later, it expanded into producing soaps and other consumer goods services. It entered the information technology and computer industries in 1981.

Wipro Recruitment Process

Wipro’s recruitment process includes two rounds:

  • Online Assessment
    • Aptitude
    • Coding
  • Interview
    • Technical Interview
    • HR Interview

Wipro Technical Interview Questions

This section includes the most frequently asked Technical Interview Questions from recent Wipro Interview Rounds. The same questions are likely to be asked in your interview as well. So, let’s get started.

Wipro Technical Interview Questions on OOPs Concept

Here are some Wipro technical interview questions on OOPS concepts:

Q – 1 What is encapsulation? How does it help in building better software?
Ans – Encapsulation is a fundamental concept in object-oriented programming that refers to the practice of grouping data and behaviors that operate on that data into a single unit, often referred to as a class. Encapsulation allows for data hiding, meaning that the implementation details of a class can be hidden from other parts of the program, and the class can expose a public interface that allows other code to interact with it in a controlled manner.

Encapsulation helps in building better software in a number of ways:

  • Modularity: Encapsulation allows for the creation of modular code, where each class can be treated as a black box that provides a well-defined interface to the rest of the program. This makes it easier to build complex systems by breaking them down into smaller, more manageable pieces.
  • Abstraction: Encapsulation also allows for abstraction, where the implementation details of a class can be hidden behind a simple, easy-to-use interface. This makes it easier to reason about the behavior of the program, as developers can focus on high-level concepts without getting bogged down in the details of individual classes.
  • Data Integrity: Encapsulation can also help ensure data integrity by controlling access to the data within a class. By making the data private, the class can enforce rules and constraints on how the data is accessed and modified, preventing bugs and inconsistencies from creeping into the program.
  • Code Reuse: Encapsulation also promotes code reuse by allowing classes to be used in different parts of the program without the need for modification. This reduces duplication and makes it easier to maintain and evolve the code over time.

Q – 2 What is meant by dynamic polymorphism?
Ans – Dynamic polymorphism is a fundamental concept in object-oriented programming (OOP) that allows objects of different classes to be treated as if they were instances of the same class. In dynamic polymorphism, the decision of which implementation of a method to use is made at runtime, based on the actual type of the object being referenced, rather than at compile time.

In dynamic polymorphism, the method to be executed is determined at runtime, based on the actual type of the object. This is achieved through the use of virtual functions or methods, which are marked with the keyword "virtual" in C++ or "override" in Java. When a virtual method is called on an object, the runtime system determines the actual type of the object, and uses the appropriate implementation of the method for that type.

For example, consider a base class "Shape" and two derived classes "Circle" and "Rectangle". Each of these classes has a "draw" method that is marked as virtual. When a "Shape" object is created and a "draw" method is called on it, the runtime system determines the actual type of the object and uses the appropriate implementation of the "draw" method for that type. So, if the object is a "Circle" object, the "draw" method of the "Circle" class will be executed, and if the object is a "Rectangle" object, the "draw" method of the "Rectangle" class will be executed.

Q – 3 What is meant by Garbage Collection in the OOPs world?
Ans – Garbage collection is a process in the world of object-oriented programming (OOP) that automatically manages the allocation and deallocation of memory used by objects in a program. It is the process by which the runtime system of a programming language automatically frees up memory that is no longer being used by the program, in order to prevent memory leaks and improve the overall performance of the program.

In OOP, when an object is created, it is typically allocated memory from a heap, which is a region of memory reserved for dynamically allocated objects. When an object is no longer needed, it should be deallocated to free up the memory for other objects. However, in some cases, the programmer may forget to deallocate an object, which can result in memory leaks and degraded performance.

Garbage collection automates this process by periodically identifying and deallocating memory that is no longer being used by the program. The garbage collector uses algorithms to identify objects that are no longer being used, and then releases the memory used by those objects, so that it can be reused by other objects.

However, garbage collection can also have a performance impact, as the garbage collector must periodically scan the heap and identify objects that are no longer being used. To mitigate this impact, many modern programming languages provide configurable garbage collection mechanisms that can be tuned to balance memory usage and performance, based on the specific needs of a given application.

Q – 4 What is a singleton pattern? How is it implemented in OOP?
Ans – Singleton is a design pattern in object-oriented programming that restricts the instantiation of a class to a single instance and provides a global point of access to that instance. It ensures that only one instance of a class can be created and provides a way to access that instance globally.

The Singleton pattern is useful in situations where there is a need for a single instance of an object to coordinate actions across a system. For example, a configuration manager that provides access to configuration settings for the entire application could be implemented as a singleton.

In OOP, the Singleton pattern is typically implemented by defining a class that has a private constructor and a static method that returns the same instance of the class every time it is called. The static method is typically named "getInstance" and is used to obtain the single instance of the class.

Here’s an example implementation of the Singleton pattern in Java:

public class Singleton {
    private static Singleton instance;

    private Singleton() {
        // Private constructor to prevent external instantiation

    public static Singleton getInstance() {
        if (instance == null) {
            instance = new Singleton();
        return instance;

In this implementation, the "Singleton" class has a private constructor, so it cannot be instantiated from outside the class. The "getInstance" method is used to obtain the single instance of the class, and it checks whether the instance has already been created. If the instance has not been created, it creates a new instance and returns it. Otherwise, it simply returns the existing instance.

Q – 5 What is an abstract class? When should you use it?
Ans – An abstract class is a class in object-oriented programming that cannot be instantiated directly, and is typically used as a base class or super class for other classes to inherit from. An abstract class is defined using the "abstract" keyword, and may include one or more abstract methods, which are methods that are declared but have no implementation.

The main purpose of an abstract class is to define a common interface or set of methods that can be used by its subclasses, while leaving the implementation of those methods to the subclasses themselves. This allows for a high degree of flexibility and customization, while still ensuring that the subclasses conform to a common interface or contract.

Examples of abstract classes in Java include the "InputStream" and "OutputStream" classes, which define a common set of methods for reading and writing data to different types of input and output streams.

When to use an abstract class:

  • When you want to define a common interface or set of methods that will be used by a group of related classes.
  • When you want to provide a default implementation for some methods, while leaving other methods to be implemented by the subclasses.
  • When you want to ensure that the subclasses conform to a common interface or contract, while still allowing for customization and flexibility.
  • When you want to prevent the instantiation of a class directly, and force the use of its subclasses instead.

Wipro Technical Interview Questions on DBMS and SQL

Here are some Wipro technical interview questions on DBMS and SQL:

Q – 1 What is a view in SQL? How is it different from a table?
Ans – In SQL, a view is a virtual table that is based on the result of a SELECT statement. It is a stored query that is defined by a SELECT statement and can be used just like a table in many SQL operations. The main difference between a view and a table is that a view does not store any data itself, but rather provides a dynamic, virtual representation of the data stored in one or more underlying tables.

Here are some of the key differences between a view and a table in SQL:

  • Data storage: A table stores data, while a view does not. A view is essentially a stored query that defines a virtual table based on data stored in one or more underlying tables.
  • Definition: A table is defined by its schema, which includes the column names, data types, and other attributes of the table. A view is defined by a SELECT statement, which specifies the columns and rows to be included in the view.
  • Data modification: Tables can be used to modify data using INSERT, UPDATE, and DELETE statements. Views, on the other hand, cannot be used to directly modify data. However, some views can be updated if they are defined with the appropriate conditions.
  • Security: Views can be used to restrict access to certain columns or rows of data in the underlying tables. For example, a view can be defined to show only certain columns of a table, or to show only rows that meet certain conditions. This can be useful for enforcing data security and access controls.

Q – 2 What do you mean by Clustered Index?
Ans – In a database, a clustered index is an index that determines the physical order of the data in a table. It reorders the way the table’s data is physically stored on disk, based on the values in one or more columns of the table. The result is that the data is stored in a specific order, rather than being scattered across the disk in an arbitrary order.

In a clustered index, the data is physically stored in the same order as the index, and the leaf nodes of the index contain the actual data pages of the table. This means that when data is retrieved using the index, the data can be read more quickly because it is physically adjacent to the data that was just read. This is in contrast to a non-clustered index, where the index contains a separate data structure that references the data pages of the table.

Because of the way that data is physically stored in a clustered index, it is typically used for columns that are frequently searched, sorted, or used in range queries. The clustered index can greatly improve the performance of these types of operations, because the data is already physically ordered in the same way as the index.

Q – 3 How do the commands DROP, TRUNCATE, and DELETE differ in SQL?
Ans – In SQL, DROP, TRUNCATE, and DELETE are three commands used to remove data from a database. While they may seem similar, they differ in how they work and what they do:

  • DROP: The DROP command is used to completely remove a table from a database. When a table is dropped, all of its data, indexes, and constraints are permanently deleted. This means that any data stored in the table will be lost. The DROP command cannot be undone, so it should be used with caution.
  • TRUNCATE: The TRUNCATE command is used to delete all rows from a table, while keeping the table structure intact. Unlike the DROP command, TRUNCATE does not remove the table itself. When TRUNCATE is used, the table’s data is deleted, but the indexes and constraints are not. Because TRUNCATE is faster than DELETE, it is often used to quickly remove large amounts of data from a table. However, like the DROP command, TRUNCATE cannot be undone.
  • DELETE: The DELETE command is used to remove specific rows from a table based on a specified condition. Unlike TRUNCATE and DROP, DELETE allows for selective removal of data from a table. When DELETE is used, the table’s structure, indexes, and constraints remain intact. The data that is deleted can be restored if necessary, as long as a backup of the data is available.

Q – 4 What is SQL injection? How can it be prevented?
Ans – SQL injection is a type of security vulnerability in which an attacker injects malicious SQL code into a web application’s input fields, such as login forms, search fields, or other data submission forms. The injected code can then be executed by the application’s database, potentially allowing the attacker to access or modify sensitive data or even take control of the application.

There are several ways to prevent SQL injection, including:

  • Input validation: One of the best ways to prevent SQL injection is to validate all user input to ensure that it meets expected format and content requirements. This can include checking for certain characters that are commonly used in SQL injection attacks, such as semicolons, quotes, and other special characters.
  • Parameterized queries: Another effective way to prevent SQL injection is to use parameterized queries, which are pre-compiled SQL statements that use placeholders for input values. Parameterized queries help to ensure that all user input is treated as data, rather than as executable code.
  • Stored procedures: Stored procedures are pre-written SQL code that can be called from within an application. Using stored procedures can help to prevent SQL injection by limiting the ability of an attacker to inject malicious code.
  • Database permissions: It is also important to ensure that the database user account used by an application has only the minimum necessary permissions to perform its tasks. This can help to limit the impact of a successful SQL injection attack by preventing the attacker from accessing or modifying sensitive data.

Q – 5 What is difference between UNIQUE and PRIMARY KEY constraints?
Ans – Both UNIQUE and PRIMARY KEY constraints are used to enforce uniqueness in a column or set of columns, but they differ in their purpose and behavior.

  • UNIQUE constraint: A UNIQUE constraint is used to ensure that no two rows in a table have the same values in a specified column or set of columns. A UNIQUE constraint can be applied to one or more columns, and it allows for NULL values, so a column with a UNIQUE constraint can have multiple NULL values. A table can have multiple UNIQUE constraints, and it can have both UNIQUE and PRIMARY KEY constraints.
  • PRIMARY KEY constraint: A PRIMARY KEY constraint is a special type of UNIQUE constraint that is used to identify a unique row in a table. A PRIMARY KEY constraint is always applied to a single column or set of columns, and it does not allow NULL values. A table can have only one PRIMARY KEY constraint, and it cannot have both PRIMARY KEY and UNIQUE constraints on the same column or set of columns.

Wipro Technical Interview Questions on OS

Here are some Wipro technical interview questions on OS:

Q – 1 What is a semaphore, and how is it used to synchronize processes or threads?
Ans – A semaphore is a synchronization mechanism that is commonly used in operating systems to coordinate the access of shared resources between multiple processes or threads. It is a variable that is typically implemented as a non-negative integer and is used to control access to shared resources, such as critical sections, data structures, and devices.

A semaphore has two main operations: wait and signal. The wait operation (also known as P operation) decrements the semaphore value by one and blocks the calling process if the resulting value is negative, meaning that the resource is currently being used by another process. The signal operation (also known as V operation) increments the semaphore value by one and wakes up a blocked process if there is any, indicating that the resource is now available.

By using semaphores, multiple processes or threads can coordinate their access to shared resources, ensuring that only one process can access the resource at a time. For example, a semaphore can be used to control access to a critical section of code, which is a portion of code that needs to be executed exclusively by one process or thread at a time.

Q – 2 What is thrashing in OS?
Ans – Thrashing in operating systems refers to a situation where a system is spending more time on managing the virtual memory than on executing user programs. It occurs when the system is constantly swapping pages between the main memory and the disk, trying to satisfy the demands of all running programs for memory.

Thrashing happens when the system’s working set, which is the set of pages that are actively used by the currently executing processes, exceeds the size of the physical memory available. When the working set is too large, the system cannot keep all the required pages in memory, so it must swap them in and out frequently, which leads to a significant slowdown in performance.

To prevent thrashing, the system needs to maintain a balance between the demand for memory and the available physical memory. This can be achieved by using efficient memory management techniques, such as virtual memory and page replacement algorithms, that can optimize the allocation of memory resources.

Q – 3 What is starvation and aging in OS?
Ans – In operating systems, starvation is a situation where a process is unable to acquire the resources it needs to execute because it is consistently being passed over in favor of other processes. Starvation can occur in systems that use scheduling algorithms that do not consider the priority or age of a process when selecting which process to execute next.

Aging is a technique used in some scheduling algorithms to prevent or mitigate starvation. Aging involves increasing the priority of a process over time as it waits in the queue, so that a long-waiting process is eventually given a higher priority and is executed. This ensures that even low-priority processes eventually get a chance to execute, preventing starvation.

Q – 4 What is a page fault, and how is it handled by an operating system?
Ans – In operating systems, a page fault is an exception that occurs when a process tries to access a page that is not currently in physical memory, and is instead stored on disk. This can happen when a process is accessing a virtual memory address that has not yet been loaded into physical memory, or when the page was previously loaded into memory but has since been swapped out.

When a page fault occurs, the operating system’s page fault handler is invoked, which is responsible for handling the fault and bringing the required page into memory. The page fault handler may also implement advanced techniques such as demand paging, where pages are only loaded into memory when they are actually needed by the process, or prefetching, where the page fault handler anticipates which pages a process will need and proactively loads them into memory to reduce the number of page faults.

Wipro Technical Interview Questions on Networking

Here are some Wipro technical interview questions on Networking:

Q – 1 What is a subnet? How is it used in networking?
Ans – A subnet, short for "subnetwork," is a logical subdivision of an IP network that enables better network management, security, and efficient use of IP addresses.

In networking, IP addresses are used to identify and communicate with devices on a network. A subnet is created by dividing a larger network into smaller sub-networks, each with its own unique range of IP addresses. This allows network administrators to better manage and control the flow of network traffic and the allocation of IP addresses.

Each subnet has its own unique IP address range, which is typically determined by the subnet mask. The subnet mask is a 32-bit number that is used to determine the network and host portions of an IP address. By dividing a network into smaller subnets, network administrators can reduce the amount of broadcast traffic on the network and increase network performance and security.

Q – 2 How does TCP ensure reliable data transmission over a network?
Ans – TCP (Transmission Control Protocol) is a transport layer protocol in the TCP/IP suite of protocols that provides reliable data transmission over a network. TCP ensures reliable data transmission by using several mechanisms:

  • Connection-oriented communication: Before transmitting any data, TCP establishes a reliable connection between the sender and receiver. This three-way handshake process establishes the initial sequence numbers, window sizes, and other parameters required for reliable data transmission.
  • Acknowledgment and Retransmission: After sending each segment of data, TCP waits for an acknowledgment from the receiver that the data has been received successfully. If the sender does not receive an acknowledgment within a specified time, it retransmits the data. This ensures that data is not lost during transmission.
  • Windowing: TCP uses a sliding window mechanism to control the flow of data between the sender and receiver. This mechanism allows the sender to transmit multiple segments of data before receiving an acknowledgment from the receiver. The receiver indicates the size of the window it can receive, and the sender adjusts the amount of data sent based on the size of the window.
  • Sequence and Acknowledgment numbers: TCP uses sequence numbers to ensure that the data is received in the correct order. The sender assigns a unique sequence number to each segment of data, and the receiver acknowledges the sequence number of the last segment received. This ensures that the data is reassembled in the correct order at the receiving end.
  • Congestion Control: TCP uses various congestion control algorithms to prevent network congestion and ensure efficient data transmission. These algorithms detect network congestion and adjust the rate at which data is sent accordingly.

Q – 3 What is a router? How does it differ from a switch?
Ans – A router and a switch are both networking devices, but they serve different functions in a network.

A router is a networking device that connects multiple networks together, such as connecting a local network to the internet. It is responsible for directing network traffic between different networks, using a routing table to determine the best path for data to travel from the source to the destination. A router also performs Network Address Translation (NAT), which allows multiple devices on a network to share a single public IP address.

In addition to directing network traffic between networks, a router can also perform other functions, such as acting as a firewall, filtering network traffic, and providing security features like Virtual Private Network (VPN) support.

On the other hand, a switch is a networking device that connects multiple devices on a single network. It directs network traffic between devices on the same network, using MAC addresses to identify devices and direct data to the correct device. A switch works at the data link layer (layer 2) of the OSI model.

Frequently Asked Questions (FAQs)

Here are some FAQs on Wipro Technical Interview Questions

Q1. What kind of technical questions can I expect in a Wipro technical interview?
A. You can expect questions related to programming languages, data structures and algorithms, database concepts, cloud technologies, and software development methodologies. Additionally, Wipro may ask questions related to your specific area of expertise.

Q2. How do I prepare for a Wipro technical interview?
A. To prepare for a Wipro technical interview, you should review your technical knowledge, practice coding exercises, and prepare for behavioral questions. Additionally, research the company and understand its values, culture, and services.

Q3. What programming languages should I be proficient in for a Wipro technical interview?
A. It’s important to be proficient in at least one programming language, such as Java, Python, or C++. However, it’s also important to have a good understanding of multiple programming languages, as you may be asked to work with different languages in your role.

Q4. Can I expect to be asked about database concepts in a Wipro technical interview?
A. Yes, Wipro may ask you questions about database concepts such as normalization, indexing, and transactions. You should be familiar with SQL and NoSQL databases.

Q5. Can I expect to be asked about my previous work experience in a Wipro technical interview?
A. Yes, Wipro may ask you about your previous work experience, including the technologies you’ve used, the projects you’ve worked on, and the challenges you’ve faced. Be prepared to explain your role in past projects and highlight your accomplishments.

Leave a Reply

Your email address will not be published. Required fields are marked *