Posts

Thread related questions

Thread vs Process Memory Dump DeadLock in Java What is deadlock? Deadlock describes a situation where two or more threads are blocked forever, waiting for each other. Deadlock occurs when multiple threads need the same locks but obtain them in different order. A Java multithreaded program may suffer from the deadlock condition because the  synchronized  keyword causes the executing thread to block while waiting for the lock, or monitor, associated with the specified object. Source :  https://www.tutorialspoint.com/java/java_thread_deadlock.htm How to identify it? How to avoid it ? Memory Leak Java does automatic Garbage collection. However there can be situations where garbage collector does not collect objects because there are references to them. There might be situations where where an application creates lots of objects and does not use them. Just because every objects has valid references,  garbage collector in Java  can’t destroys the objects. Such types of useless obje

OOP and Class Level Questions

Abstract Class vs Interface INTERFACE ABSTRACT CLASS Interface can have only abstract methods. Abstract class can have abstract and non-abstract methods. From Java 8, it can have default and static methods also. Variables declared in a Java interface are by default final. An abstract class may contain non-final variables. Interface has only static and final variables.   Abstract class can have final, non-final, static and non-static variables. Interface can’t provide the implementation of abstract class. Abstract class can provide the implementation of interface.   A Java interface can be implemented using keyword “implements” Abstract class can be extended using keyword “extends”. An interface can extend another Java interface only An abstract class can extend another Java class and implement multiple Java interfaces. Members of a Java interface are public by default. A Java abstract class can have class members like private, Sprotected, etc. Source :  https://ww

Array related Questions

Array vs Linked List ARRAY LINKED LIST Array is a collection of elements of similar data type. Linked List is an ordered collection of elements of same type, which are connected to each other using pointers. Array supports  Random Access , which means elements can be accessed directly using their index, like  arr[0]  for 1st element,  arr[6]  for 7th element etc. Hence, accessing elements in an array is  fast  with a constant time complexity of  O(1) . Linked List supports  Sequential Access , which means to access any element/node in a linked list, we have to sequentially traverse the complete linked list, upto that element. To access  nth  element of a linked list, time complexity is  O(n) . In an array, elements are stored in  contiguous memory location  or consecutive manner in the memory. In a linked list, new elements can be stored anywhere in the memory. Address of the memory location allocated to the new element is stored in the previous node of linked list,

Core Java Interview Preparation

Array vs Linked List Abstract Class vs Interface Thread vs Process Memory Dump DeadLock & avoid Memory Leak