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.

JavaGuide
JavaGuide
JavaGuide
JD Backend Salary Ranges 2024 & How to Ace the Interview

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.

Redis Sentinel monitoring
Redis Sentinel monitoring

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.

Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

JavaBackend DevelopmentRedisThreadPoolMySQLInterview PreparationJWTJD
JavaGuide
Written by

JavaGuide

Backend tech guide and AI engineering practice covering fundamentals, databases, distributed systems, high concurrency, system design, plus AI agents and large-model engineering.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.