Java engineers are usually technical people, so let’s get straight to the point. Interviews are not about your formal education, but the skills and passion you have about the job. A diploma in computer science is great, but if you stopped learning after college, it’s worthless.
Here is the simple question for you – are you able to discuss basic algorithms? Can you show a broader understanding of databases? If you’re not able to discuss the latest developments, you might have a problem. Further, it’s important to build an online presence and connect with other professionals from the field. IT recruiters will Google you anyway, so why wouldn’t you make a great impression before they even meet you? Just update your LinkedIn and GitHub account regularly and delete projects that you don’t have the intention to finish. Also, do a bit of branding on other social media platforms. You have to make an effort to present yourself at your best.
Before we get to the interview questions, let’s take a look at the hiring process for the Java software engineer.
Software Engineer Hiring Process
Just as on any job interview, you will have to go through a few phases. Since software developers are technical people, some interviewers tend to jump into the technical interview right away. So, you may do only one or all of the following phases:
- In this phase, an interview wants to get to know you better, but also to present the company in the best possible way. They will ask you about your previous employment and projects, but they will also want to know if you fit in the company culture.
- This is the phase where you will have to show what you know. In the technical interview, you will probably talk with another developer or project manager familiar with the development. They will ask you specific questions in order to evaluate your skills.
- In the final part, you can ask some questions about the job and the company.
Questions about your experience, skills, and personality
Recruiters don’t want to scare you and start with serious questions straight away. They will first ask you about some basic stuff, and then go deeper into your knowledge.
1. What programming languages have you used in the past? What are programming languages intrigued you the most?
It’s crucial not to lie when answering this question because they will ask you about specific tasks that you had. A recruiter will try to find out if you’re familiar with a language they commonly use at the company and to determine your level of programming knowledge.
2. Do you prefer working in a startup environment or an established company?
This question will show them if you’re the right fit for the company. You’ve probably done a bit of research about the company, so you have to adapt to their expectations if you want to get the job. Moreover, you have to ask yourself the same question before you apply for the job.
3. What are the principles of good software engineering? What principles do you follow?
A recruiter wants to know more about your coding philosophy and critical thinking skills. Here is the tip – try to remember some established developer that you watched on Ted Talk or read about them. Don’t just quote them, but think about how this person has influenced your work.
4. What distinguishes a great software engineer from a good one? Do you feel you have those qualities?
Well, you don’t want to brag, but… Just be honest, where are you when it comes to your skills, and where you want to be. Show a recruiter that you want to learn about the new technologies every day, that you’re aware that the learning process never ends. Be confident about your knowledge, but aware of you lacks in knowledge.
5. Can you follow the Agile software development process?
Nowadays, Agile is the most common way to manage software development procedures, so a recruiter may ask for your opinion about Agile. Make sure that you’re at least familiar with agile if you never had an opportunity to work in the company that used it.
Specific questions for Java software engineers
Basic questions for Java developers
It can be easy to prepare for this kind of interview because companies are usually focused on data structure and algorithm.
- It’s essential to know the right buzzwords, learn the right technologies and prepare the right answers that are commonly asked in Java interview.
So, go through data structure and algorithm and make sure that you know fundamental things. If you fail on basic things, you fail the interview. There is a number of books, tutorials, and articles that can help you refresh your knowledge about basic stuff like a binary tree, queue, stack, linked list and so on.
- Explain JDK, JRE, and JVM?
- Explain public static void main (String args)
- Is Java a statically or dynamically typed language?
- What is the difference between an abstract class and an interface and when would you use one over the other?
- How do you organize your class modules and assets?
- Why is java not 100% Object-oriented?
- What are constructors in Java?
- What are the differences between Heap and Stack Memory?
- What is the difference between equals () and == ?
- What do you understand by the term ‘Functional testing’?
- Explain Bug cycle.
Advanced questions for Java developers
You may be an experienced Java developer, but that doesn’t mean that you shouldn’t prepare for an interview. Here are some questions that will help you test your knowledge.
Life of a software developer; Source: imgur.com
- Based on which methodologies unit tests can be written?
- How does Garbage Collection prevent a Java application from going out of memory?
- How is Java SE related to Java EE?
- Is ForkJoinPool introduced in Java 7 always a better alternative to ThreadPoolExecutor?
- What is the difference between HashMap, ConcurrentHashMap, and Map returned by Collections.synchronizedMap
- Servlets 3.0 introduced async support. Describe a use case for it.
- Why do you think lambda expressions are considered such a big thing for Java 8?
- Why would it be pointless for a static or final method to use dynamic binding?
- What will happen if you put System.exit(0) on try or catch block? Will finally block execute?
Prepare for the interview
No matter how great you are in your job, it’s important for your self-confidence to prepare for the interview. In particular, you have to do a bit of research about the company. Take a look at their website and learn more about the company culture, their projects, the technologies they use, etc. Also, you can check glassdoor and see what are commonly asked questions in the specific company or practice with mock interviews on gainlo. See if you can fit into the profile they’re looking for, but also think about your expectations of the company.