JD Backend Salary Ranges 2024 & How to Ace the Interview
The article shares recent JD backend salary data ranging from 24k to 32k RMB per month, explains the compensation structure, and provides a step‑by‑step interview preparation guide covering project presentation, JWT, Redis, thread pools, MySQL‑Elasticsearch sync, isolation levels and performance analysis.
Recent hiring rounds have revealed JD (Jingdong) backend salary offers, with data from offershow and reader submissions. Typical 20‑month packages include 14 guaranteed months and 6 performance‑based months; base salaries range from 24k to 32k RMB per month, with retail positions generally higher than tech.
For candidates preparing for JD backend interviews, the article outlines a systematic approach: summarize the project in one sentence, highlight core features, describe architecture and technology choices, clarify personal role and contributions using the STAR method, and be ready to discuss technical challenges such as distributed locks, caching, or permission design.
Why use JWT?
Compared with session authentication, JWT is stateless (no server‑side storage), helps prevent CSRF because it is stored in localStorage, is suitable for mobile clients, and simplifies single‑sign‑on.
Redis usage beyond caching
Distributed lock (commonly via Redisson)
Rate limiting (Redis+Lua or Redisson RRateLimiter)
Message queue (List, Stream as Kafka‑like)
Delay queue (Redisson Sorted Set)
Distributed session storage
Complex business scenarios (Bitmap, Sorted Set for leaderboards)
Redis Sentinel
Sentinel is a high‑availability mode that monitors nodes and performs automatic failover. When the master fails, Sentinel promotes a slave to master without manual intervention.
MySQL → Elasticsearch sync with Canal
Canal pretends to be a MySQL slave, subscribes to binlog, parses events into JSON, and pushes them to a message queue (Kafka/RocketMQ) for downstream consumers to write into ES. Incremental sync is native; full sync can be added with DataX. Introducing MQ improves throughput, flow control, data cleaning, and decouples components.
public static ExecutorService newFixedThreadPool(int nThreads) {
// LinkedBlockingQueue default length Integer.MAX_VALUE (unbounded)
return new ThreadPoolExecutor(nThreads, nThreads, 0L,
TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable>());
}Thread pool best practices
Reuse threads to reduce creation overhead.
Configure core and max sizes, queue type, and rejection policy to avoid OOM.
Pre‑start core threads via prestartCoreThread() or prestartAllCoreThreads().
ThreadLocal propagation
Standard ThreadLocal values are not passed to child threads. InheritableThreadLocal copies values at thread creation but does not work with thread pools. Alibaba’s TransmittableThreadLocal decorates thread creation and executor submission to transmit values in pool scenarios.
private void init() {
Thread parent = Thread.currentThread();
if (inheritThreadLocals && parent.inheritableThreadLocals != null) {
this.inheritableThreadLocals = ThreadLocal.createInheritedMap(parent.inheritableThreadLocals);
}
}Garbage collectors
Common collectors: Serial, Serial Old, ParNew, Parallel Scavenge, Parallel Old, CMS, G1, ZGC. ZGC became production‑ready in Java 15; G1 remains default. Enable ZGC with java -XX:+UseZGC or generational ZGC with -XX:+ZGenerational.
MySQL isolation levels
Unrepeatable read occurs when a row is modified by another transaction between two reads. Phantom read occurs when new rows appear in a range query. InnoDB’s REPEATABLE READ uses MVCC snapshot reads and Next‑Key locks to prevent both phenomena.
Analyzing SQL performance
Use EXPLAIN to view the execution plan (type, possible_keys, rows, Extra, etc.). Example output shows a full table scan with filesort. The table explains each column’s meaning.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
JavaGuide
Backend tech guide and AI engineering practice covering fundamentals, databases, distributed systems, high concurrency, system design, plus AI agents and large-model engineering.
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.
