Recent Posts
-
This thread termination will lead to service downtime?
Before we start, let's look at what's wrong with the following code? public class ThreadStopExample { public stati…… -
Redis transaction in-depth analysis and use
1. Preface Transaction refers to providing a mechanism to package multiple commands and execute them sequentially at o…… -
MySQL “passive” performance optimization summary!
When you are young, you don't know the pain of optimization. When you meet a pit, you know the difficulty of optimizat…… -
Several ways to improve string performance by 10 times! (source code + principle analysis)
String type is one of the most frequently used data types. So improving the running efficiency of string is undoubtedl…… -
How to prove that sleep does not release the lock, but wait releases the lock?
Wait locking example public class WaitDemo { private static Object locker = new Object(); public static void …… -
Spring boot (XII) unit test JUnit
1、 Introduction JUnit is an excellent open source Java unit testing framework, and it is also the most popular testin…… -
Rabbitmq series (II) deeply understand the working principle and simple use of rabbitmq
Deeply understand the working principle and simple use of rabbitmq Rabbitmq series Introduction to rabbitmq Before int…… -
Spring boot (VII) mybatis code automatic generation and auxiliary plug-ins
1、 Introduction 1.1 introduction to mybatis generator Mybatis generator is an official product of mybatis. It is used…… -
Use of countdownlatch in Java concurrency
In Java concurrency, controlling the access of shared variables is very important. Sometimes we also want to control t…… -
Understand enummap and enumset
Understand enummap and enumset brief introduction Generally speaking, we will choose to use HashMap to store data in k…… -
Abstractqueuedsynchronizer (AQS), the base of synchronization class
Abstractqueuedsynchronizer (AQS), the base of synchronization class We introduced many synchronization classes before,…… -
Java secure coding guide: input verification
brief introduction In order to ensure the security of Java programs, we believe that any input from external users may…… -
Aslist and ArrayList have to tell stories
Aslist and ArrayList have to tell stories brief introduction When it comes to collection classes, ArrayList should be …… -
Java has a deep understanding of shallow copy and deep copy
brief introduction Copying objects is a common problem in Java. There are two types in Java, base type and reference t…… -
PriorityQueue and priorityblockingqueue
PriorityQueue and priorityblockingqueue brief introduction Generally speaking, queues are FIFO. Of course, we also int…… -
Lambda expressions and closures
brief introduction We usually talk about closures, which generally refers to the environment of JavaScript. Closure is…… -
New features of jdk9: String compression and character encoding
brief introduction What is the underlying storage of string? I believe most people will say it's an array. If you ask …… -
The use of futuretask in Java
Introduction to futuretask Conversion of callable and runnable Run as runnable -
Java secure coding guide: double detection of locks
brief introduction Double detection locking mode is a design mode. We reduce the cost of acquiring locks by detecting …… -
Java safe coding guide: thread safety rules
brief introduction If we introduce shared variables into multithreading, we need to consider thread safety in multithr…… -
The difference between interrupt, interrupted and isinterrupted in Java
In the previous article, we talked about calling interrupt () to stop a thread. This article will explain in detail th…… -
Java security coding guide: dead lock
brief introduction In order to ensure the security of shared data in Java, we introduce the lock mechanism. With a loc…… -
-
New features of jdk14
In the release on September 17, Oracle mentioned that the function of switch expression is expected to be finalized in…… -
Mark up interfaces, annotations, and the past and present lives of annotation processors
Mark up interfaces, annotations, and the past and present lives of annotation processors brief introduction I believe …… -
Reject policy of bounded queue in Java
When using executorservice, we know that there is a queue in executorservice to save the submitted tasks. Through diff…… -
Java secure coding guide: string and coding
brief introduction String is the most commonly used Java type in our daily coding process. Languages in different regi…… -
Introduction to splitter in Java 8 stream
Introduction to splitter in Java 8 stream brief introduction Splitter is an interface introduced in Java 8. It is usua…… -
New feature of JDK 14: instanceof pattern matching
New feature of JDK 14: instanceof pattern matching Jdk14 was officially released in March 2020. Unfortunately, the for…… -
Junior sister learning javaio: the wonderful use of channel in NiO
brief introduction Younger martial sister, do you remember our initial intention of using IO and NiO? Younger martial …… -
Type inference and lambda expressions in Java
brief introduction Java is a strongly typed programming language. Each variable used in Java needs to define its type,…… -
In depth understanding of loop expansion and coarse locking in compilation optimization
brief introduction When talking about JIT, I mentioned two optimization loop expansion and coarse locking in the compi……