Add office photos
Employer?
Claim Account for FREE

Mavenir Systems

3.6
based on 433 Reviews
Filter interviews by

Exaware Interview Questions and Answers

Updated 2 Sep 2024

Q1. What is channel in Go? What are the differences between buffered and unbuffered channel?

Ans.

A channel in Go is a communication mechanism that allows goroutines to communicate with each other.

  • Buffered channels have a specific capacity and can send multiple values without the need for a corresponding receive operation immediately.

  • Unbuffered channels have no capacity and require both a send and receive operation to be ready at the same time for communication to occur.

Add your answer

Q2. What is scaling? Horizontal and vertical scaling.

Ans.

Scaling refers to the ability of a system to handle increasing amounts of work or its potential to accommodate growth.

  • Horizontal scaling involves adding more machines to distribute the load, while vertical scaling involves increasing the resources of a single machine.

  • Horizontal scaling is more cost-effective and provides better fault tolerance, but can be more complex to implement.

  • Vertical scaling is simpler to implement but can be more expensive and may have limitations in t...read more

Add your answer

Q3. Write a go code to remove duplicate elements from a slice.

Ans.

Go code to remove duplicate elements from a slice of strings

  • Use a map to keep track of unique elements

  • Iterate over the slice and add elements to the map

  • Create a new slice with unique elements from the map

Add your answer

Q4. How do you achieve concurrency in Go?

Ans.

Concurrency in Go is achieved using goroutines and channels.

  • Use goroutines to run functions concurrently

  • Communicate between goroutines using channels

  • Avoid using shared memory for synchronization

Add your answer
Discover Exaware interview dos and don'ts from real experiences

Q5. Difference between array and slice in Go.

Ans.

Arrays have fixed length, slices are dynamic and can grow/shrink. Slices are references to arrays.

  • Arrays have fixed length, specified at compile time.

  • Slices are dynamic, can grow or shrink at runtime.

  • Slices are references to arrays, allowing for more flexibility.

  • Example: var arr [3]string // array with fixed length of 3

  • Example: slice := make([]string, 0) // slice with dynamic length

Add your answer

Q6. Write a go code to implement struct.

Ans.

Implementing a struct in Go code

  • Define a struct using the 'type' keyword

  • Add fields to the struct with their respective data types

  • Access struct fields using dot notation

Add your answer

Q7. What is containerization.

Ans.

Containerization is a method of packaging, distributing, and running applications in isolated environments called containers.

  • Containers are lightweight, portable, and can run on any platform that supports containerization.

  • They include everything needed to run the application, such as code, runtime, system tools, libraries, and settings.

  • Popular containerization tools include Docker, Kubernetes, and Podman.

  • Containerization helps in achieving consistency in development, testing,...read more

Add your answer

Q8. Explain struct and interface

Ans.

Struct is a user-defined data type that groups related data fields together. Interface defines a set of methods that a type must implement.

  • Struct is used to create complex data structures by grouping related data fields together.

  • Interface defines a set of methods that a type must implement. It allows for polymorphism in Go.

  • Example: type Person struct { Name string; Age int }

  • Example: type Shape interface { Area() float64 }

  • Example: type Circle struct { Radius float64 }

  • Example: ...read more

Add your answer

Q9. Explain goroutine.

Ans.

Goroutine is a lightweight thread managed by Go runtime, allowing concurrent execution of functions.

  • Goroutines are created using the 'go' keyword in Go programming language.

  • They are more lightweight than threads and are managed by the Go runtime.

  • Goroutines allow for concurrent execution of functions without the need for manual thread management.

  • Example: go myFunction()

  • Example: go func() { // code here }

Add your answer
Contribute & help others!
Write a review
Share interview
Contribute salary
Add office photos
Interview Tips & Stories
Ace your next interview with expert advice and inspiring stories

Top Software Engineer Interview Questions from Similar Companies

3.9
 • 44 Interview Questions
3.9
 • 26 Interview Questions
3.7
 • 16 Interview Questions
3.9
 • 10 Interview Questions
3.3
 • 10 Interview Questions
3.9
 • 10 Interview Questions
View all
Share an Interview
Stay ahead in your career. Get AmbitionBox app
qr-code
Helping over 1 Crore job seekers every month in choosing their right fit company
70 Lakh+

Reviews

5 Lakh+

Interviews

4 Crore+

Salaries

1 Cr+

Users/Month

Contribute to help millions
Get AmbitionBox app

Made with ❤️ in India. Trademarks belong to their respective owners. All rights reserved © 2024 Info Edge (India) Ltd.

Follow us
  • Youtube
  • Instagram
  • LinkedIn
  • Facebook
  • Twitter