Code Vyasa
30+ QDVC Interview Questions and Answers
Q1. On which lifecycle event, the view is attached to the Fragment?
The view is attached to the Fragment during the onAttach() lifecycle event.
The onAttach() method is called when the Fragment is associated with its host Activity.
This is the first lifecycle method called after the Fragment is created.
The onAttach() method receives the Activity as a parameter, allowing the Fragment to interact with its host.
Q2. How to set the view in the middle in ContraintLayout?
To set a view in the middle in ConstraintLayout, use layout_constraintStart_toStartOf, layout_constraintEnd_toEndOf, layout_constraintTop_toTopOf, and layout_constraintBottom_toBottomOf attributes.
Use layout_constraintStart_toStartOf and layout_constraintEnd_toEndOf to align horizontally in the middle.
Use layout_constraintTop_toTopOf and layout_constraintBottom_toBottomOf to align vertically in the middle.
Set both horizontal and vertical constraints to center the view.
Q3. What are the components of the Android App?
The components of an Android app include activities, services, broadcast receivers, and content providers.
Activities: UI components that represent a single screen with a user interface.
Services: Background tasks that run independently of the UI.
Broadcast Receivers: Respond to system-wide broadcast announcements.
Content Providers: Manage a shared set of app data.
Q4. Have you worked with ViewPager2 and ListAdapter?
Yes, I have experience working with ViewPager2 and ListAdapter.
Implemented ViewPager2 to create swipeable screens in Android apps.
Utilized ListAdapter to efficiently manage data for RecyclerViews.
Used ListAdapter's DiffUtil to efficiently update RecyclerView items.
Q5. Write syntax for HashMap in Kotlin and Java and put some values.
Syntax for HashMap in Kotlin and Java with values.
In Kotlin:
val hashMap = hashMapOf<String, Int>()
hashMap.put("key1", 1)
hashMap.put("key2", 2)
In Java:
HashMap<String, Integer> hashMap = new HashMap<>();
hashMap.put("key1", 1);
hashMap.put("key2", 2);
Q6. Can we have an activity without a view?
Yes, an activity can exist without a view in Android.
An activity can perform background tasks without displaying any UI elements.
For example, a music player app may have an activity to handle playback controls in the background.
Activities without views are commonly used for tasks like data processing, network operations, or service handling.
Q7. How to update UI in coroutine scope?
Use runOnUiThread or withContext(Dispatchers.Main) to update UI in coroutine scope.
Use runOnUiThread to update UI from a background thread.
Use withContext(Dispatchers.Main) to switch to the main thread in coroutine scope.
Example: runOnUiThread { textView.text = "Updated text" }
Example: withContext(Dispatchers.Main) { textView.text = "Updated text" }
Q8. How to send data between two activities?
Data can be sent between two activities in Android using Intent with putExtra() method.
Create an Intent object in the sending activity
Use putExtra() method to add data to the Intent
Start the second activity with startActivity() method, passing the Intent
Retrieve the data in the receiving activity using getIntent() and getExtra()
Q9. What is Hot and Cold Flow?
Hot and Cold Flow is a design pattern used in Android development to manage the flow of data between components.
Hot Flow refers to the flow of data that is actively being observed and updated in real-time.
Cold Flow refers to the flow of data that is not actively being observed and updated, but can be retrieved when needed.
Hot Flow is typically used for real-time updates, while Cold Flow is used for fetching data on demand.
Q10. Difference between hashcode, equals() and ==.
Hashcode is a unique identifier for an object, equals() compares the content of two objects, and == checks if two references point to the same object.
Hashcode is an integer value generated by a hashing algorithm to uniquely identify an object.
equals() method is used to compare the content of two objects for equality.
== operator checks if two references point to the same object in memory.
Example: String class overrides equals() method to compare the content of two strings, whi...read more
Q11. Difference between Activity and Fragment.
Activity is a single focused thing that user can do, while Fragment is a modular section of an activity.
Activity represents a single screen with a user interface, while Fragment represents a behavior or a portion of user interface in an Activity.
An Activity can contain multiple Fragments, but a Fragment cannot exist independently without an Activity.
Fragments have their own lifecycle, while they are dependent on the lifecycle of the Activity they are attached to.
Fragments are...read more
Q12. What is a broadcast receiver?
A broadcast receiver is an Android component that allows the system to deliver events or messages to the app.
Broadcast receivers can be used to listen for system-wide broadcast announcements, such as when the device is booted or when the battery is low.
They can also be used to receive custom broadcast messages sent by other apps or components within the same app.
Broadcast receivers are registered in the AndroidManifest.xml file or dynamically in code using the registerReceive...read more
Q13. How can we do pagination?
Pagination in Android can be achieved by using libraries like Paging Library or implementing custom pagination logic.
Use Paging Library provided by Android Architecture Components
Implement custom pagination logic by loading data in chunks
Update RecyclerView adapter with new data as user scrolls
Q14. What is the suspend function?
A suspend function is a function that can be paused and resumed at a later time without blocking the main thread.
Suspend functions are used in Kotlin coroutines to perform asynchronous operations.
They are defined using the 'suspend' keyword in the function signature.
Suspend functions can only be called from within another suspend function or a coroutine builder like 'launch' or 'async'.
Q15. How to launch coroutines?
Coroutines in Android can be launched using the 'launch' function from the CoroutineScope.
Use the 'launch' function from the CoroutineScope to start a coroutine.
Specify the context in which the coroutine should run, such as Dispatchers.Main for the main thread.
Handle exceptions within the coroutine using try-catch blocks.
Example: CoroutineScope(Dispatchers.Main).launch { // coroutine code here }
Q16. What is sealed classes?
Sealed classes are used to restrict inheritance in Kotlin, allowing a class to have a fixed set of subclasses.
Sealed classes are declared using the 'sealed' keyword.
They can only be extended within the same file where they are declared.
Sealed classes are often used in conjunction with when expressions for exhaustive checking.
Q17. Explain some layouts you have worked on.
I have worked on various layouts including linear, relative, grid, and constraint layouts.
Implemented linear layouts to arrange views in a single column or row.
Utilized relative layouts to position views relative to each other.
Used grid layouts for displaying data in a grid-like structure.
Implemented constraint layouts for creating complex and flexible UI designs.
Q18. What is databinding?
Databinding is a feature that allows you to bind UI components in your layout to data sources in your app.
Databinding eliminates the need for boilerplate code to update UI components with data.
It allows for easier communication between UI components and data sources.
Databinding can improve code readability and maintainability.
Example: Binding a TextView directly to a ViewModel property in an Android app.
Q19. What is back stack?
Back stack is a stack of activities in Android that keeps track of the navigation history.
Back stack is managed by the Android system to handle the navigation flow of activities.
When a new activity is started, it is pushed onto the back stack.
Pressing the back button pops the top activity off the stack and navigates to the previous activity.
Activities in the back stack can be brought to the foreground by using the appropriate navigation methods.
Q20. Let and apply scoped function.
Let and apply are scoped functions in Kotlin used for executing a block of code on an object.
Let function is used to execute a block of code on a non-null object and return the result.
Apply function is used to initialize an object and perform operations on it without explicitly returning a value.
Q21. HashMap vs LinkedHashMap.
HashMap is unordered, LinkedHashMap maintains insertion order.
HashMap does not maintain insertion order, LinkedHashMap maintains insertion order.
HashMap allows one null key and multiple null values, LinkedHashMap allows one null key and multiple null values.
HashMap is faster for iteration, LinkedHashMap is slower due to maintaining order.
Q22. RecyclerView vs ListView.
RecyclerView is more efficient for displaying large datasets and supports various layout managers, while ListView is simpler and easier to implement.
RecyclerView is more efficient for displaying large datasets as it only creates enough views to fill the screen, while ListView creates all views at once.
RecyclerView supports various layout managers like LinearLayoutManager, GridLayoutManager, and StaggeredGridLayoutManager, allowing for more complex layouts.
RecyclerView has bui...read more
Q23. LateInit vs Lazy.
LateInit is used for non-nullable properties that are initialized later, while Lazy is used for properties that are initialized only once when accessed.
LateInit is used for non-nullable properties that are initialized later in the code.
Lazy is used for properties that are initialized only once when accessed, making it suitable for expensive operations.
LateInit properties must be initialized before accessing, while Lazy properties are initialized only when accessed.
Q24. Val vs Var.
Val is immutable, Var is mutable in Kotlin programming language.
Val is used for read-only variables, cannot be reassigned.
Var is used for mutable variables, can be reassigned.
Val is preferred for better code safety and readability.
Example: val name = "John" vs var age = 30
Q25. Oops concepts, how you have used oops concepts in ur current project or framework
I have extensively used OOPs concepts in my current project.
I have used inheritance to create a base class for all test cases.
I have used polymorphism to create different test cases using the same base class.
I have used encapsulation to hide the implementation details of the test cases.
I have used abstraction to create interfaces for the test cases.
I have used SOLID principles to ensure the code is maintainable and extensible.
Q26. One Coding question: Maximum subarray sum
Find the maximum sum of a contiguous subarray within an array of integers.
Use Kadane's algorithm to find the maximum subarray sum efficiently.
Initialize two variables: maxEndingHere and maxSoFar.
Iterate through the array and update the variables accordingly.
Example: Input array [1, -2, 3, 4, -1, 2, 1, -5, 4] should return 10 (subarray [3, 4, -1, 2, 1]).
Q27. What is event listener in laravel
Event listener in Laravel is a mechanism to listen for specific events and execute code when those events occur.
Event listeners are defined in the EventServiceProvider class in Laravel.
Listeners are registered with events using the listen method.
Listeners can perform tasks like sending emails, logging information, or updating database records.
Example: 'UserRegistered' event can have a listener that sends a welcome email to the user.
Q28. what is springboot basic annotation
SpringBoot basic annotation @SpringBootApplication is used to mark the main class of a Spring Boot application.
Used to indicate the main class of a Spring Boot application
Combines @Configuration, @EnableAutoConfiguration, and @ComponentScan annotations
Automatically configures the Spring application based on dependencies and classpath
Q29. What is new feature of java
Java 14 introduced new features like switch expressions, records, and text blocks.
Switch expressions allow for more concise code by returning a value from each case block.
Records provide a compact way to declare classes with data fields and accessors.
Text blocks simplify writing multi-line strings by allowing for easier formatting and escaping.
Q30. why springs are immutable
Springs are immutable in Java to ensure thread safety and prevent unintended changes to shared objects.
Immutable objects are inherently thread-safe as they cannot be modified once created.
Prevents unintended changes to shared objects, reducing bugs and making code more predictable.
Promotes better design practices by encouraging the use of immutable objects for shared data.
Examples of immutable classes in Java include String, Integer, and LocalDate.
Q31. what is dependency injection
Dependency injection is a design pattern in which components are given their dependencies rather than creating them internally.
Allows for easier testing by providing mock dependencies
Promotes loose coupling between components
Can be implemented using frameworks like Spring in Java
Q32. Difference between MySQL and MongoDB
MySQL is a relational database management system, while MongoDB is a NoSQL database.
MySQL is a relational database, meaning data is stored in tables with rows and columns.
MongoDB is a NoSQL database, storing data in collections of JSON-like documents.
MySQL uses SQL for querying data, while MongoDB uses a query language similar to JSON.
MySQL is ACID-compliant, ensuring data integrity, while MongoDB sacrifices some ACID properties for scalability.
MySQL is better suited for comp...read more
Q33. What is hash table
A hash table is a data structure that stores key-value pairs, allowing for efficient retrieval of values based on their keys.
Hash tables use a hash function to map keys to indexes in an array, where the corresponding values are stored.
They offer constant time complexity O(1) for insertion, deletion, and lookup operations in the average case.
Examples of hash table implementations in Java include HashMap and HashTable.
Interview Process at QDVC
Top Interview Questions from Similar Companies
Reviews
Interviews
Salaries
Users/Month