Basics
basic skills
- Object Oriented Features
- The difference between final, finally, finalize
- What is the difference between int and Integer
- The difference between overloading and overriding
- What is the difference between abstract class and interface
- Talk about the use and implementation of reflection
- Talk about the scene and implementation of custom annotations
- The difference between the GET and POST methods of HTTP requests
- Difference between session and cookie
- session distributed processing
- JDBC process
- MVC design thinking
- Difference between equals and ==
gather
- Difference between List and Set
- Difference between List and Map
- Difference between Arraylist and LinkedList
- Difference between ArrayList and Vector
- Difference between HashMap and Hashtable
- Difference between HashSet and HashMap
- The difference between HashMap and ConcurrentHashMap
- The working principle and code implementation of HashMap
- The working principle and code implementation of ConcurrentHashMap
thread
- How to create a thread and its implementation
- What is the difference between sleep(), join(), yield()
- Talk about the principle of CountDownLatch
- Talk about the CyclicBarrier principle
- Talk about the Semaphore principle
- Talk about the principle of Exchanger
- Talk about the difference between CountDownLatch and CyclicBarrier
- ThreadLocal principle analysis
- Talk about the implementation principle of thread pool
- Several ways of thread pool
- thread life cycle
lock mechanism
- Talk about thread safety
- volatile implementation principle
- synchronize implementation principle
- The difference between synchronized and lock
- CAS optimistic locking
- ABA problem
- Business scenarios and implementation methods of optimistic locking
Core articles
data storage
- Notes on using MySQL indexes
- Talk about anti-pattern design
- Talk about sub-library and sub-table design
- Distributed dilemma and countermeasures brought by sub-database and sub-table
- Talk about SQL optimization
- Deadlock problem encountered by MySQL
- InnoDB and MyISAM storage engine
- The principle of database index
- Why use B-tree
- Difference between clustered index and non-clustered index
- limit 20000 loading is very slow how to solve
- Choosing an Appropriate Distributed Primary Key Scheme
- Choose the right data storage solution
- ObjectId rules
- Talk about MongoDB usage scenarios
- Inverted index
- Talk about ElasticSearch usage scenarios
cache usage
- What are the types of Redis
- Redis internal structure
- Talk about Redis usage scenarios
- Redis persistence mechanism
- How Redis implements persistence
- Redis cluster scheme and implementation
- Why is Redis single-threaded?
- cache crash
- Cache Degradation
- Reasonableness of using cache
message queue
- Usage scenarios for message queues
- Message retransmission compensation solution
- The idempotent solution of messages
- message stacking solution
- How to implement a message queue yourself
- How to ensure the order of messages
Framework articles
Spring
- What is the difference between BeanFactory and ApplicationContext
- Spring Bean life cycle
- How Spring IOC is implemented
- Talk about Spring AOP
- Spring AOP implementation principle
- Dynamic proxies (cglib and JDK)
- Spring transaction implementation
- The underlying principle of Spring transaction
- How to customize the annotation implementation function
- Spring MVC running process
- Spring MVC startup process
- Spring's singleton implementation principle
- What design patterns are used in the Spring framework
- Spring other products (Srping Boot, Spring Cloud, Spring Security, Spring Data, Spring AMQP, etc.)
Netty
- Why choose Netty
- Talk about the usage scenarios of Netty in business
- Native NIO has an epoll bug in JDK 1.7
- What is TCP sticking/unpacking
- The solution to TCP sticking/unpacking
- Netty threading model
- Talk about Netty's zero copy
- Netty internal execution process
- Netty reconnection implementation
Microservices
Microservices
- How to separate the front and back ends
- Which frameworks are microservices
- How do you understand the RPC framework
- Talk about the implementation principle of RPC
- Talk about the implementation principle of Dubbo
- How do you understand RESTful
- Talk about how to design a good API
- How to understand the idempotency of RESTful APIs
- How to ensure the idempotency of interfaces
- Talk about CAP theorem and BASE theory
- How to Consider Data Consistency
- Talk about the implementation of eventual consistency
- What do you think about microservices
- Difference Between Microservices and SOA
- How to split services
- How Microservices Do Database Management
- How to deal with chain call exceptions of microservices
- For fast tracking and locating problems
- Security for Microservices
distributed
- Talk about the use of distributed scenarios in business
- Session distributed solution
- Distributed Lock Scenario
- Distribution is an implementation of locks
- Distributed transaction
- Algorithms and Implementations of Clustering and Load Balancing
- Talk about sub-library and sub-table design
- Distributed dilemma and countermeasures brought by sub-database and sub-table
safe question
- Security Elements and STRIDE Threats
- Protection against common web attacks
- Server communication security attack and defense
- Analysis of the principle of HTTPS
- HTTPS downgrade attack
- Authorization and Authentication
- role-based access control
- Data-Based Access Control
performance optimization
- What are the performance indicators
- How to spot performance bottlenecks
- Common means of performance tuning
- Talk about how you perform performance tuning in your project
Engineering
demand analysis
- How do you understand and split requirements prototypes
- Talk about your understanding of functional requirements
- Talk about your understanding of non-functional requirements
- What interactions and improvements do you suggest for the product?
- How do you understand user pain points
Designing ability
- Tell us about the UML diagrams you have used in your project
- How do you think about componentization
- How do you think about servitization
- How do you do domain modeling
- How do you draw domain boundaries
- Talk about domain modeling in your project
- Talk about outline design
Design Patterns
- What design patterns are used in your project
- Talk about the analysis of the use of design patterns in common open source frameworks
- Tell us about your understanding of design principles
- 23 Design Patterns Design Ideas
- Similarities and differences between design patterns, such as the difference between strategy pattern and state pattern
- The combination between design patterns, such as the practice of strategy pattern + simple factory pattern
- The performance of design patterns, such as singleton pattern which performs better.
business engineering
- How does the front-end separation in your system work?
- Tell us about your development process
- How you communicate with your team
- How do you conduct code reviews
- Tell us about your understanding of technology and business
- Talk about the Exception you often encounter in your project
- Tell me about the most difficult bug you encountered in the project and how to solve it
- Tell me about the difficulties you encountered the most in the project and how you solved them
- What do you think are the shortcomings of your project?
- Have you ever encountered CPU 100%, how to troubleshoot and solve
- Have you encountered memory OOM, how to troubleshoot and solve it
- Tell us about your practice of agile development
- Tell us about your practice of DevOps
- Introduce one of the most valuable projects in your work and your role in the process
soft power
- Tell me about your highlights
- Tell me what book you've been reading recently
- Tell me about the technical books you find most meaningful
- what to do after work
- Discuss about the direction of personal development
- Tell us what skills you think a server developer should have
- Tell us what you think an architect is like and what an architect mainly does
- Talk about a technical expert you understand
(over)