Many of us might be thinking is really Java required for a Big Data/Spark/Data engineer interview? If yes, what all the concepts we need to cover for the interview?
Not exactly! It depends on the compnay, interviewer and your resume. If you are going for any company which is using Java in their Spark applications development or if you had mentioned Java in your skill set in resume then you must have some Java skills. Many of the Big data developers are migrated from Java or Python to Big data and Spark applications development. So It is better to have Java skills when you are attending for Spark/Big data developer interview.
What all the topics/concepts we need to cover in Java?
Again, no direct questions. All the questions will be scenario based. Never ever expect interviewer to ask you questions on data types and definitions of terms in Java. You find some posts on this website related to Java, which are commonly asked scenario based questions on Java. In this blog I will summarize all the topics that you need to cover before attending the interview.
Collections - The most dangerous topic in Java. A lot of things you need to cover in this. Even after that you face so many unknown questions. Here mainly you need to cover differences between different collections, how they are implemented internally(you might be asked to implement custom HashMap or any custom collection on the spot), how they are used.
Threads - Another terrible topic in Java. You need to implement thread, thread pool executors(rare) and another common problem in Java producer-consumer problem.
Classes and data types - Here you might be asked to implement OOPs concepts and some custom data types, implementation of immutable classes, some design patterns(commonly Singleton class).
Apart from these, try to get knowledge on polymorphism, object cloning, object serialization, marker interfaces, access specifiers and their usage, method overloading and overriding, aggregation and composition, abstraction and inheritance and some algorithmic questions in Java.