Java Backend Interview Preparation Guide and Experience Summary
This article shares a detailed month‑long interview journey, outlining personal strengths and weaknesses, a structured learning plan, resume submission tactics, interview scheduling advice, common Java interview topics, and practical tips to help junior developers successfully navigate backend interview processes.
Personal Introduction
I graduated in July 2015 and have a little over one year of experience by March‑April 2017, which puts me in an awkward position between fresh graduates and candidates with three years of experience. I graduated from a non‑985/211 university, which has a minor impact once you have work experience. My previous job was in a traditional telecom project that was already in production, so my tasks were mostly minor bug fixes and low‑impact development, leaving me with limited project experience.
Strengths
1. Numerous academic awards (school‑level excellence, city‑level outstanding graduate, provincial ACM second prize). 2. Good communication skills. 3. Strong learning ability and logical thinking.
Learning Process
To compensate for my weaknesses, I devoted my spare time to systematic study:
1. Review interview questions
I collected useful Java interview question lists, such as "Java Interview Questions Collection (Part 1)" and various company‑specific Java backend interview summaries.
2. Deep dive into topics
When encountering unfamiliar concepts (e.g., HashMap internals), I read JDK source code and articles by authors like "May's Cangjie", "Zhangshixi's Core Java series".
3. Master past projects
I identified the most impressive features I had built and studied their entire workflow and related knowledge thoroughly.
4. Practice interview problems
I solved many coding problems on platforms like Niuke.com to avoid common mistakes.
5. Record learning
I logged daily study time and content to maintain motivation.
Resume Submission & Interview Scheduling
1. Where to submit?
Lagou, BOSS Zhipin, Liepin.
2. Should I mass‑apply?
If you lack interview experience, mass‑apply to matching positions to accumulate experience; otherwise, target only well‑matched roles.
3. How many interviews per day?
Ideally two: one in the morning (~10 am) and one in the afternoon (~2 pm), with the afternoon slot preferred for deeper evaluation.
4. No response after resume submission?
Often due to lack of standout points; increase the number of applications.
5. Should I resign before securing a new job?
When interview frequency rises and frequent leave requests become awkward, I chose to resign to avoid missing offers.
6. Precautions
1) Plan route and time the day before. 2) Bring a bag with resume, power bank, tissues, and umbrella.
Interview Stages
1. Common written test topics
SQL (GROUP BY, joins) and hand‑written code (singleton, sorting, threading, producer‑consumer). Demonstrating a sorting algorithm beyond bubble sort (e.g., quicksort or heap sort) can impress interviewers.
2. Interview process
1) Self‑introduction 2) Java fundamentals 3) Project discussion 4) Scenario questions (e.g., handling sudden server load) 5) Your questions for the interviewer.
3. Frequently asked knowledge points
Collections : HashMap, LinkedHashMap, ConcurrentHashMap, ArrayList, LinkedList internals; differences between HashMap/Hashtable, ArrayList/LinkedList/Vector, thread‑safety of HashMap, etc. Threads : three ways to create threads, thread safety, Runnable vs Callable, wait vs sleep, synchronization mechanisms, CAS, ThreadLocal, thread pool creation, ThreadPoolExecutor internals, distributed thread safety. JVM : garbage collection mechanisms and algorithms, class loading process, parent‑delegation model, custom class loaders. Design Patterns : familiarity and implementation details. MySQL : writing SQL, optimization experience, index structures, execution order, types of indexes, when to create indexes, EXPLAIN output. Frameworks : differences between Hibernate/MyBatis, Spring MVC/Struts2, Spring design patterns, AOP purpose, bean injection methods, IoC vs DI, singleton vs prototype, transaction isolation and propagation, caching mechanisms, MyBatis # vs $ and resultType vs resultMap, DAO binding. Other topics : stack vs queue, IO vs NIO, interface vs abstract class, autoboxing, constant pool, == vs equals, overloading vs overriding, String vs StringBuilder/Buffer, variable thread safety, return behavior in try/catch/finally, B‑tree and binary tree, AJAX acronym, XML full name, distributed lock and session solutions, common Linux commands.
Some Experience Tips
1) Start with ordinary companies, then move to ideal ones after gaining insights. 2) Avoid mentioning unfamiliar technologies. 3) Skip companies offering steep discounts for short internships unless you have no alternatives. 4) Negotiate salary with small companies. 5) Skip job fairs; they waste time. 6) Treat interviews as technical exchanges, not just hiring decisions. 7) If you are told to wait for a response after the interview, it usually means no offer. 8) Minimize phone interviews. 9) Keep learning daily during interview periods. 10) When you receive an offer, assess if the company meets 100% of your expectations; otherwise keep searching. 11) Interviewers can reveal company conditions. 12) Lagou provides the most interview opportunities despite many rejections. 13) Re‑apply to ideal companies multiple times; persistence pays off. 14) When asked about deep‑dive knowledge, seize the chance to showcase it.
Java Captain
Focused on Java technologies: SSM, the Spring ecosystem, microservices, MySQL, MyCat, clustering, distributed systems, middleware, Linux, networking, multithreading; occasionally covers DevOps tools like Jenkins, Nexus, Docker, ELK; shares practical tech insights and is dedicated to full‑stack Java development.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.