Original address: Liang Guizhao’s blog

Blog address: blog.720ui.com

Here, the author combined with his past interview experience, sorted out some core knowledge list, to help readers better review and review the Java server core technology. This paper will lead to the main questions, if there is time, the author will take out some important knowledge points for detailed analysis and answers. Please follow the wechat official account “Server-side Thinking” for the latest articles.

Based on article

The basic skills

  • Object-oriented characteristics
  • Final, finally, Finalize
  • What’s the difference between int and Integer
  • The difference between overloading and overwriting
  • What is the difference between abstract classes and interfaces
  • Talk about the use and implementation of reflection
  • Talk about the scenario and implementation of custom annotations
  • The differences between GET and POST for HTTP requests
  • Session is different from cookie
  • Session Distributed processing
  • JDBC process
  • MVC Design idea
  • Equals ==

A collection of

  • List is different from Set
  • List is different from Map
  • Arraylist is different from LinkedList
  • ArrayList is different from Vector
  • Difference between HashMap and Hashtable
  • HashSet is different from HashMap
  • The difference between HashMap and ConcurrentHashMap
  • The working principle and code implementation of HashMap
  • ConcurrentHashMap working principle and code implementation

thread

  • The method and implementation of creating threads
  • What is the difference between sleep(), join (), and yield ()
  • Talk about CountDownLatch
  • Talk about CyclicBarrier
  • Talk about the Semaphore principle
  • Talk about recovery principle
  • Tell us the difference between CountDownLatch and CyclicBarrier
  • Analysis of ThreadLocal principle
  • Talk about how thread pools work
  • Several ways to pool threads
  • The life cycle of a thread

Locking mechanism

  • Talk about thread safety
  • How volatile works
  • Implementation principle of Synchronize
  • The difference between synchronized and lock
  • CAS optimistic locking
  • ABA problem
  • The business scenario and realization of optimistic lock

Core article

Data is stored

  • MySQL index usage precautions
  • Talk about anti-pattern design
  • Talk about sub – database and sub – table design
  • Distributed dilemma and countermeasures brought by separate database and table
  • Talk about SQL optimization
  • MySQL deadlock problem
  • Storage engine InnoDB with MyISAM
  • Principles of database indexing
  • Why b-tree
  • Differences between clustered and non-clustered indexes
  • Limit 20000 is loading slowly
  • Choose an appropriate distributed primary key scheme
  • Select an appropriate data storage solution
  • The ObjectId rules
  • This section describes the MongoDB application scenarios
  • Inverted index
  • Talk about ElasticSearch scenarios

The cache using

  • What types of Redis are available
  • Redis internal structure
  • Talk about Redis usage scenarios
  • Redis persistence mechanism
  • How does Redis persist
  • Redis cluster scheme and implementation
  • Why is Redis single threaded
  • Cache collapses
  • Cache the drop
  • The rationality of using caching

The message queue

  • Usage scenarios for message queues
  • Message retransmission compensation solution
  • Idempotent solution for messages
  • Message accumulation solution idea
  • How do you implement message queuing
  • How do I guarantee the orderliness of messages

The framework paper

Spring

  • What’s the difference between BeanFactory and ApplicationContext
  • The life cycle of Spring beans
  • How is Spring IOC implemented
  • Tell me something about the Spring AOP
  • Implementation principles of Spring AOP
  • Dynamic Proxy (Cglib and JDK)
  • Spring transaction implementation
  • Underlying principles of Spring transactions
  • How do I customize the annotation implementation
  • Spring MVC runs the process
  • Spring MVC startup process
  • Spring’s singleton implementation principles
  • What design patterns are used in the Spring framework
  • Other Spring products (Srping Boot, Spring Cloud, Spring Secuirity, Spring Data, Spring AMQP, etc.)

Netty

  • Why Netty
  • This section describes the Netty application scenario
  • The native NIO has an epoll bug in JDK 1.7
  • What is TCP sticky/unpack
  • TCP sticky/unpack solution
  • Netty threading model
  • Talk about Netty’s zero copy
  • Netty internal execution process
  • Netty reconnection implementation

Micro service article

Micro service

  • How is the front end separation done
  • Microservices which frameworks
  • How do you understand RPC framework
  • Talk about how RPC works
  • Talk about how Dubbo works
  • How do you understand RESTful
  • How to design a good API
  • How to understand the idempotency of RESTful apis
  • How to ensure idempotency of interfaces
  • CAP theorem, BASE theory
  • How to consider data consistency
  • Talk about how to achieve final consistency
  • What do you think of microservices
  • Differences between microservices and SOA
  • How to Split services
  • How do microservices manage databases
  • How to deal with chain invocation exceptions of microservices
  • For fast tracking and location problems
  • Security of microservices

distributed

  • Talk about using distributed scenarios in your business
  • Session Distributed scheme
  • Distributed lock scenario
  • Distribution is an implementation of locking
  • Distributed transaction
  • Clustering and load balancing algorithm and implementation
  • Talk about sub – database and sub – table design
  • Distributed dilemma and countermeasures brought by separate database and table

Security issues

  • Safety factor and STRIDE threat
  • Defend against common Web attacks
  • Server communication security
  • HTTPS Mechanism
  • HTTPS degrade attack
  • Authorization and Certification
  • Role-based access control
  • Data based access control

Performance optimization

  • What are the performance specifications
  • How do I find performance bottlenecks
  • Common means of performance tuning
  • Tell me about your performance tuning in a project

Project report

Demand analysis

  • How do you understand and break down requirements prototypes
  • Explain your understanding of functional requirements
  • Explain your understanding of non-functional requirements
  • What interactions and improvements do you suggest for the product
  • How do you understand user pain points

Ability to design

  • Tell me about a UML diagram you used in a project
  • How do you think about componentization
  • How do you think about servitization
  • How do you model your domain
  • How do you draw domain boundaries
  • Tell me about domain modeling in your project
  • Talk about schematic design

Design patterns

  • What design patterns are used in your project
  • Describe the use of design patterns in common open source frameworks
  • Tell me about your understanding of design principles
  • Design concept of 23 design modes
  • Similarities and differences between design patterns, such as policy patterns versus state patterns
  • The combination of design patterns, such as the policy pattern + simple factory pattern practice
  • Design patterns for performance, such as which singleton patterns perform better.

The business project

  • How do you do front-end and back-end separation in your system
  • Tell me about your development process
  • How do you communicate with your team
  • How do you conduct code reviews
  • Tell me about your understanding of technology and business
  • Tell me about the exceptions you often encounter in your project
  • Tell me about the most difficult Bug you encountered in the project. How did you solve it
  • Tell me about the most impressive difficulty you encountered in the project. How did you solve it
  • What do you think are the shortcomings of your project
  • Have you ever encountered 100% CPU, how to check and solve
  • Have you ever encountered OOM? How to check and solve it
  • Tell me about your agile development practices
  • Tell me about your practice in shipping maintenance
  • Describe one of the most valuable projects in your job and your role in that process

Soft power

  • Tell me your highlights
  • What book have you been reading recently
  • Tell me about the technical books that you found most interesting
  • What do you do outside of work
  • Say something about your personal development direction
  • Tell me what skills you think a server developer should have
  • Tell me what you think an architect is. What does an architect do
  • Tell me what you understand as a technologist

(after)

More wonderful articles, all in the “server-side thinking” wechat public account!