Can You Describe A Deadlock Situation
Deadlock is a common problem that can cause code to stall. Your ability to explain the problem indicates you understand this challenge and may know how to resolve it. When you answer, explain what a deadlock situation is and describe some of the reasons a deadlock may occur.
Example: “A deadlock situation occurs when multiple threads are waiting on one another to release CPU resources so they can run. For example, this can happen when a single thread has exclusive priority but needs resources from a waiting thread, or all the threads are depending on one another to release needed resources.”
Explain The Busy Spin Technique And Why You Might Use It
Bust spinning is a wait strategy that programmers might use to prevent CPU release. This question allows interviewers to gauge your understanding of popular thread manipulation techniques. When you answer, explain what busy spinning does and describe the advantage that it offers.
Example: “Busy spin is when you pause a thread by making it run an empty loop for a certain period. Unlike other methods like wait or sleep, a busy spin doesn’t give up CPU control and therefore preserves CPU cache.”
What Are The Benefits Of Java Certification For Freshers And Experienced Developers
- Good programming language for beginners
- No need to switch languages, as your career progresses you can do more complex tasks with Java
- Since, its widely adopted, chances of finding a Java developer job is fairly easy
- Because Java can be used in many applications, it is very sustainable to learn.
- More opportunities
- Broad range of salary options based on skill set, In India salary ranges from
- In the US, average Salary of Professionals with Java skills is $110k
- It is one of most in-demand skill sets in the IT sector
You May Like: Sql Interview Questions For Testing
Practical Java Concurrency With The Akka Actor Model
This is another advanced Java multithreading course on Udemy to learn how to avoid thread-safety issues, synchronization, and blocking in Java applications using the Akka Actor Model of Scala in Java. You dont need to learn Scala.
This course will teach you how to use the Actor Model provided by the Akka framework to build robust, thread-safe concurrent applications with Java.
Instead of creating threads, worrying about thread-safe variables, using synchronization and locks, learn how the actor model gives us a completely different way to approach concurrent programming.
The course is full of practical real-world scenarios youll even build a basic blockchain mining application.
Worth noting is that although Akka is built in Scala, no Scala knowledge is needed for this course the course covers Akka with Java and we wont be writing any Scala code.
What Do You Understand By Thread Pool
- Java Thread pool represents a group of worker threads, which are waiting for the task to be allocated.
- Threads in the thread pool are supervised by the service provider which pulls one thread from the pool and assign a job to it.
- After completion of the given task, thread again came to the thread pool.
- The size of the thread pool depends on the total number of threads kept at reserve for execution.
The advantages of the thread pool are :
- Using a thread pool, performance can be enhanced.
- Using a thread pool, better system stability can occur.
Recommended Reading: Interview For Supervisor Position Tips
In Java What’s The Difference Between The Wait And Sleep Methods
These are two common Java methods that accomplish similar tasks. Although they appear to do the same thing, programmers use them in different contexts, and it’s important to distinguish their functions. When you answer the question, explain what each method is and what it does.
Example: “The wait method pauses a thread and waits until there are no notify or notifyAll method calls from other threads. The sleep method pauses for a given period, allowing other threads to run, after which it resumes execution.”
Related: 33 Java 8 Interview Questions
What’s A Race Condition
Race conditions occur when a system is unable to execute multiple functions simultaneously. This question addresses one of the primary obstacles to multithreading, so it’s important to show awareness of the issue. When you give your answer, briefly define what a race condition is and mention what strategy a programmer might use to fix the issue.
Example: “A race condition occurs when multiple concurrent threads compete to run first. If the thread that wins the race isn’t the one that was supposed to run first, the code may exhibit unexpected behavior. You can resolve this problem with synchronization.”
Read Also: How To Prepare For Green Card Interview
Q12 What Special Guarantees Does The Jmm Hold For Final Fields Of A Class
JVM basically guarantees that final fields of a class will be initialized before any thread gets hold of the object. Without this guarantee, a reference to an object may be published, i.e. become visible, to another thread before all the fields of this object are initialized, due to reorderings or other optimizations. This could cause racy access to these fields.
This is why, when creating an immutable object, you should always make all its fields final, even if they are not accessible via getter methods.
How Can We Create Daemon Threads
We can create daemon threads in java using the thread class setDaemon. It is used to mark the current thread as daemon thread or user thread. isDaemon method is generally used to check whether the current thread is daemon or not. If the thread is a daemon, it will return true otherwise it returns false. Example: Program to illustrate the use of setDaemon and isDaemon method.
publicclassDaemonThreadextendsThread publicvoidrun else } publicstaticvoidmain }
t1 is Daemon thread t3 is Daemon thread t2 is User thread
But one can only call the setDaemon method before start method otherwise it will definitely throw IllegalThreadStateException as shown below:
publicclassDaemonThreadextendsThread publicstaticvoidmain }
Thread name: Thread-0 Check if its DaemonThread: false
Read Also: When To Email After Interview
What Do You Understand By Callable And Future In Java
Java Callable interface: In Java5 callable interface was provided by the package java.util.concurrent. It is similar to the Runnable interface but it can return a result, and it can throw an Exception. It also provides a run method for execution of a thread. Java Callable can return any object as it uses Generic.
public interface Callable< V>
Java Future interface: Java Future interface gives the result of a concurrent process. The Callable interface returns the object of java.util.concurrent.Future.
Java Future provides following methods for implementation.
- cancel: It is used to cancel the execution of the assigned task.
- get: It waits for the time if execution not completed and then retrieved the result.
- isCancelled: It returns the Boolean value as it returns true if the task was canceled before the completion.
- isDone: It returns true if the job is completed successfully else returns false.
What Is Blockingqueue How Can We Implement Producer
java.util.concurrent.BlockingQueue is a Queue that supports operations that wait for the queue to become non-empty when retrieving and removing an element, and wait for space to become available in the queue when adding an element. BlockingQueue doesnât accept null values and throw NullPointerException if you try to store null value in the queue. BlockingQueue implementations are thread-safe. All queuing methods are atomic in nature and use internal locks or other forms of concurrency control. BlockingQueue interface is part of the Java collections framework and itâs primarily used for implementing the producer-consumer problem. Check this post for producer-consumer problem implementation using BlockingQueue.
Read Also: Self Assessment For Job Interview
Q4 What Are The Differences Between Forward Method And Sendredirect Methods
|forward sends the same request to another resource.
|sendRedirect method sends new request always because it uses the URL bar of the browser.
|forward method works at server side.
|sendRedirect method works at client side.
|forward method works within the server only.
|sendRedirect method works within and outside the server.
Q2 How Can You Create A Thread Instance And Run It
To create an instance of a thread, you have two options. First, pass a Runnable instance to its constructor and call start. Runnable is a functional interface, so it can be passed as a lambda expression:
Thread thread1 = new Thread -> System.out.println) thread1.start
Thread also implements Runnable, so another way of starting a thread is to create an anonymous subclass, override its run method, and then call start:
Thread thread2 = new Thread } thread2.start
Don’t Miss: How To Prepare For A Medical Interview
Q7 Can You Explain The Java Thread Lifecycle
The java thread lifecycle has the following states-
When a thread is created, and before the program starts the thread, it is in the new state. It is also referred to as a born thread.
When a thread is started, it is in the Runnable state. In this state, the thread is executing its task.
Sometimes, a thread goes to the waiting state, where it remains idle because another thread is executing. When the other thread has finished, the waiting thread again comes into the running state.
In timed waiting, the thread goes to waiting state. But, it remains in waiting state for only a specified interval of time after which it starts executing.It remains waiting either till the time interval ends or till the other thread has finished.
A thread is said to be in this state once it terminates. It may be because the thread has completed its task or due to any other reason.
Q18 What Is A Constructor Overloading In Java
In Java, constructor overloading is a technique of adding any number of constructors to a class each having a different parameter list. The compiler uses the number of parameters and their types in the list to differentiate the overloaded constructors.
class Demopublic Demo}
In case you are facing any challenges with these java interview questions, please comment on your problems in the section below. Apart from this Java Interview Questions Blog, if you want to get trained from professionals on this technology, you can opt for a structured training from edureka!
Also Check: Investment Banking Interview Prep Course
What Are Concurrent Collection Classes
Java Collection classes are fail-fast which means that if the Collection will be changed while some thread is traversing over it using iterator, the iterator.next will throw ConcurrentModificationException. Concurrent Collection classes support full concurrency of retrievals and adjustable expected concurrency for updates. Major classes are ConcurrentHashMap, CopyOnWriteArrayList and CopyOnWriteArraySet, check this post to learn .
How To Nail Your Next Tech Interview
Multithreading is a core Java feature that allows multiple threads to run concurrently. A thread is essentially a sub-process that is typically a block of code that performs a specific function. Java Multithreading interview questions are frequently asked during software engineering interviews, such as front-end, back-end, and full-stack developer interviews. If Java is your preferred programming language, then these Java Multithreading interview questions will give you a good idea of what to expect during your interview.
If youâre a software engineer, coding engineer, software developer, engineering manager, or tech lead preparing for tech interviews, check out our technical interview checklist,interview questions page, and salary negotiation e-book to get interview-ready!
Having trained over 9,000 software engineers, we know what it takes to crack the most challenging tech interviews. Since 2014, Interview Kickstart alums have landed lucrative offers from FAANG and Tier-1 tech companies, with an average salary hike of 49%. The highest-ever offer received by an IK alum is a whopping $933,000!
At IK, you get the unique opportunity to learn from expert instructors who are hiring managers and tech leads at Google, Facebook, Apple, and other top Silicon Valley tech companies. Our reviews will tell you how weâve shaped the careers of thousands of professionals aspiring to take their careers to new heights.
Hereâs what weâll discuss in this article:
You May Like: What To Say In A Job Interview
What Is The Difference Between Execute Executequery Executeupdate
Statement execute is used to execute any SQL query and it returns TRUE if the result is an ResultSet such as running Select queries. The output is FALSE when there is no ResultSet object such as running Insert or Update queries. We can use getResultSet to get the ResultSet and getUpdateCount method to retrieve the update count.
Statement executeQuery is used to execute Select queries and returns the ResultSet. ResultSet returned is never null even if there are no records matching the query. When executing select queries we should use executeQuery method so that if someone tries to execute insert/update statement it will throw java.sql.SQLException with message executeQuery method can not be used for update.
Statement executeUpdate is used to execute Insert/Update/Delete statements or DDL statements that returns nothing. The output is int and equals to the row count for SQL Data Manipulation Language statements. For DDL statements, the output is 0.
You should use execute method only when you are not sure about the type of statement else use executeQuery or executeUpdate method.
How Do You Stop A Thread In Java
This could be a trick question since threads usually only stop once they finish executing. Your answer can show interviewers that you understand the nuances of working in Java. When you answer, explain how threads usually stop and provide a method you could use to stop a thread manually.
Example: “There isn’t a direct way to stop a thread in Java. Often, you have to wait for a thread to die when it finishes executing. If you need to manually kill a thread, you can use a Volatile boolean variable within a thread that throws an exception when triggered from another thread.”
Please note that the company mentioned in this article is not affiliated with Indeed.
Recommended Reading: Sre Interview Questions And Answers For Experienced
Q3 Describe The Different States Of A Thread And When Do The State Transitions Occur
The state of a Thread can be checked using the Thread.getState method. Different states of a Thread are described in the Thread.State enum. They are:
- NEW a new Thread instance that was not yet started via Thread.start
- RUNNABLE a running thread. It is called runnable because at any given time it could be either running or waiting for the next quantum of time from the thread scheduler. A NEW thread enters the RUNNABLE state when you call Thread.start on it
- BLOCKED a running thread becomes blocked if it needs to enter a synchronized section but cannot do that due to another thread holding the monitor of this section
- WAITING a thread enters this state if it waits for another thread to perform a particular action. For instance, a thread enters this state upon calling the Object.wait method on a monitor it holds, or the Thread.join method on another thread
- TIMED_WAITING same as the above, but a thread enters this state after calling timed versions of Thread.sleep, Object.wait, Thread.join and some other methods
- TERMINATED a thread has completed the execution of its Runnable.run method and terminated
Intercontinental Exchange Senior Software Engineer Interview Questions
- – Autonomous Province of Kosovo and Metohija
I interviewed at Intercontinental Exchange
Applied by the consulting firm. Interview scheduled in next week . 1 hr interview with Director mix of java & Data Structure & algo. Not sure but something was missing in interview. I am not able to impress him. Reason was not the technical expertise. not sure what was the expectation
Anonymous Interview Candidate in Atlanta, GA
I applied through a recruiter. I interviewed at Intercontinental Exchange in Sep 2022
The interview was conducted over webex. It consisted of two 45 min technical sessions, a mix of coding exercises and development cycle questions, 10 min break in between. The interview was conducted in a pleasant professional manner. The questions were a mix of what you would expect, things you would do purely academically and a few fairly practical real life programming questions. It is one of those interviews that you pass not due to any superior knowledge necessarily but by virtue of failing a number of previous interviews dealing with the same content.
Also Check: What To Expect In 2nd Interview
Q9 Can You Override A Private Or Static Method In Java
You cannot override a private or static method in Java. If you create a similar method with the same return type and same method arguments in child class then it will hide the superclass method this is known as method hiding. Similarly, you cannot override a private method in subclass because its not accessible there. What you can do is create another private method with the same name in the child class. Lets take a look at the example below to understand it better.
class Base public void print class Derived extends Base public void print public class test }
How Do You Create A Thread In Java
Creating a thread is one of the most basic tasks that you may have as a programmer. This question demonstrates your knowledge of Java and your competence in basic coding. When you answer, try to provide more than one method to demonstrate your expertise.
Example: “You can create a thread in Java either by implementing the Runnable interface on a class and creating a thread object, or you can create a class that extends the thread class.”
Also Check: Interview Questions To Ask Software Engineers
What Is Thread Scheduler And Time Slicing
Thread Scheduler is the Operating System service that allocates the CPU time to the available runnable threads. Once we create and start a thread, it's execution depends on the implementation of Thread Scheduler. Time Slicing is the process to divide the available CPU time to the available runnable threads. Allocation of CPU time to threads can be based on thread priority or the thread waiting for longer time will get more priority in getting CPU time. Thread scheduling can't be controlled by java, so it's always better to control it from application itself.