The original Firebase authorized login cannot obtain the user email address
Solutions to problems encountered in Android solutions to problems encountered in iOS Solutions to problems encountered in an overseas project using Firebase to centrally manage all the three party authorized login. During the development process, I encountered problems that I could not obtain the email addresses of third party users, so I recorded them and shared them with friends who had the same problems. Firebase is Google Cloud Platfor…
The 2020-01-05 18:10:43
Read the number 140
Comments on 0
A brief introduction to PayPal and BrainTree selection experience
On September 30, 2019, PayPal was approved to officially enter China through the equity acquisition of China National Alipay. On the evening of December 19, 2019, PayPal officially announced that it has completed a 70% transaction with Gopay…
The 2019-12-30 08:00:00
Read the number 70
Comments on 0
Charles HTTPS capture (iOS13 available)
Packet capture tool is frequently used in APP development, which is very helpful for developers to understand the principle of network transmission and analyze and locate network problems. Wireshark has always been my favorite Wireshark, but because of the recent short connection project, Wireshark…
The 2019-12-16 08:00:00
Read the number 248
Comments on 0
The original JDK11 cannot start VisualVM
Recently a new project was upgraded from JDK8 to JDK11, and when starting the project with VisualVM using IDEA, the startup was not successful. Then I looked in the JDK directory and found no jVisualVM executable in the bin directory. VisualVM is no longer integrated into the Oracle JDK.
The 2019-09-25 22:36:37
Read the number 221
Comment number 2
Original article fixes Java hot update
In the era of continuous delivery, redeploying a new release is just a click of a button. In some cases, however, the redeployment process may be complex and downtime may not be permitted. So the JVM provides another option: to make small changes without restarting the application, also known as hot updates. For some large applications, each restart takes a lot of time, so if you can not restart the virtual…
The 2019-09-25 08:00:00
Read the number 378
Comment number 2
MySQL performance tuning
Access to free learning materials, join the front and back end technology exchange group and sideline group. Newly created sideline Q Group: 735764906. Database operations are becoming a performance bottleneck for the entire application, especially for Web applications. Database performance is not just a DBA concern, but a back-end development concern. So this article explains the optimization direction of MySQL in all aspects…
The 2019-09-03 08:00:00
Read the number 7816
Comment number 2
Original reply keywords to obtain massive data
After following the wechat official account, you can send the following keywords to get the web disk link: Java Java-related video materials. Java Ebooks Java ebooks. Python Python e-books. Go Go related e-books. Machine learning machine learning related ebook. The number…
The 2019-08-29 08:00:00
Read the number 1614
Comments on 0
Original quick understanding of forward proxy and reverse proxy
Some time ago received the reader’s comments, is worried about the next blog to write what the author, quickly write down the small book. Forward proxy The forward proxy works on the client. For example, to access some foreign websites, you may need to purchase a VPN and set it up on the user’s browser (not on a remote server). The browser first accesses the VPN address, the VPN address forwards the request, and finally returns the request result.
The 2019-08-26 08:00:00
Read the number 1849
Comment number 3
Original explain attribute details with hundredfold faster optimization examples
In MySQL, you can use the EXPLAIN command to obtain information about how MySQL executes the SELECT statement, including how tables are joined during the SELECT statement execution and the order in which they are joined. While the EXPLAIN command does not provide any optimization recommendations, it can provide important information to help with tuning decisions. EXPLAIN can only EXPLAIN SELECT operations, other operations should be rewritten as S…
The 2019-08-19 08:00:00
Read the number 1982
Comments on 1
Original thoroughly understand MySQL index
MyISAM and InnoDB are the two most commonly used storage engines of MySQL. This article will introduce and compare them in detail. For the other storage engines of MySQL, please search and learn by yourself. This article will illustrate the differences between the index structures of the two engines, and then explain how indexing works. By understanding this article, you will be able to understand the reasons behind the various principles of indexing optimization. For lack of space, knowledge not covered here will be found in…
The 2019-08-12 08:00:00
Read the number 2166
Comments on 1
The original thoroughly understands the initialization sequence of Java programs
In Java programs, when an object is instantiated, all the member variables of the object’s class are initialized first. Only after all the class members have been initialized will the constructor of the object’s class be called to create the object. Principle variables take precedence over blocks and static over non-static. Parent class initialization takes precedence over derived class initialization. Initialize in the order in which the member variables are defined, even if the variables…
The 2019-08-09 08:00:00
Read the number 2274
Comments on 0
Understand Java wait-notify mechanism thoroughly
Thread lifecycle transition New state (New) : Create a New thread object. Ready/Runnable: After a thread object is created, another thread calls the start method of that object. The thread in this state is in the runnable thread pool and becomes runnable, waiting to acquire CPU usage. Running: The thread in the ready state gets…
The 2019-08-06 08:00:00
Read the number 2592
Comments on 0
Original thoroughly understand Reactor model and Proactor model
In high-performance I/O design, there are two well-known models: Reactor model for synchronous I/O and Proactor model for asynchronous I/O. To learn about both models, you need to know some basic information about IO, synchronous asynchro, and asynchro. Check out the server-side threading model, whether it’s Reactor model or Proact…
The 2019-08-05 08:00:00
Read the number 2260
Comments on 0
Original thoroughly understand Redis thread model
In order for the next blog post to enable readers to learn more fully about the threading model, this article explains the Redis threading model as necessary. Because “Redis Design and Implementation” for Redis concise and elegant explanation, so most of the content of this article is excerpted from the book, but also welcome to Redis have more low-level understanding of the needs of readers, buy their own learning. File event handler Redis based on React…
The 2019-08-03 08:00:00
Read the number 4534
Comments on 1
Original thoroughly understand Java network IO
IO is short for Input/Output. There are five IO models in Unix network programming: blocking IO nonblocking IO multiplexing signal driven IO…
The 2019-08-02 08:00:00
Read the number 2361
Comments on 1
Original thoroughly understand Netty high performance zero copy
As a Java network programming learner, you must not only know NIO, but also Mina and Netty, two excellent networking frameworks. In addition to NIO’s efficient principles of zero-copy and direct memory mapping, this article will analyze Netty’s zero-copy features in detail. The reason for Netty’s high performance As an asynchronous event-driven network framework, Netty’s high performance is mainly due to its I/O mode…
The 2019-08-01 08:00:00
Read the number 4050
Comments on 0
Original NIO efficient principle of zero copy and direct memory mapping
In my last blog post, I explained NIO in detail and summarized three reasons why NIO is more efficient than BIO. This blog will cover the third reason in more detail. To clarify, zero copy and direct memory mapping are not unique concepts in Java, and the two techniques are not equivalent. Zero copy Zero copy is used to avoid errors in User mode (user-space).
The 2019-07-31 08:00:00
Read the number 3955
Comments on 1
Original thoroughly understand the principle of NIO efficiency
Preface This article read not to understand it doesn’t matter, can collect first. The author plans to finish introducing epoll and NIO and other knowledge points, and then write an introduction to Java network IO model, so as to make the knowledge system of Java network IO more complete and rigorous. Beginners can also wait for the IO model introduction blog, and then go back to those blogs, it will be more fruitful. Advantages of NIO over BIO NIO (No…
The 2019-07-29 08:00:00
Read the number 4591
Comments on 4
The original thoroughly understands how epoll works efficiently
Preface This article read not to understand it doesn’t matter, can collect first. The author plans to finish introducing epoll and NIO and other knowledge points, and then write an introduction to Java network IO model, so as to make the knowledge system of Java network IO more complete and rigorous. Beginners can also wait for the IO model introduction blog, and then go back to those blogs, it will be more fruitful. If you’ve successfully tackled this blog, congratulations, NGI…
The 2019-07-28 08:00:00
Read the number 4157
Comments on 0
Original quick understanding of cache penetration with cache avalanche
The cache penetrates the cache system. Generally, the cache is queried by key. If no value exists, the cache is queried in the back-end system (for example, the persistence layer database). If the value corresponding to a key does not necessarily exist, and the number of concurrent requests for the key is high, it will cause a lot of stress on the backend system. This is called cache penetration. Normal request: Cache breakdown: How to avoid…
The 2019-07-26 08:00:00
Read the number 6166
Comments on 4
Original Redis expired key deletion policy and data expulsion policy
Redis is a high-performance in-memory NoSQL database whose capacity is limited by the maximum memory limit. When using Redis in a real production environment, you occasionally find that Redis has a larger memory footprint than you expected. In fact, in addition to the overhead of holding key-value pairs, Redis has some additional memory generated at runtime, including: Expired keys progressively…
The 2019-07-25 08:00:00
Read the number 4852
Comments on 0
Current limiting algorithm and implementation of original high concurrency system
When developing high-concurrency systems, there are three powerful tools to protect the system: caching, degradation, and limiting traffic. Caching: The purpose of caching is to improve system access speed and increase system processing capacity. Downgrading: Downgrading is the strategic downgrading of some services and pages based on current business conditions and traffic when the server pressure increases dramatically, so as to release server resources and ensure the normal operation of core tasks. Current limiting: The purpose of current limiting is to pass…
The 2019-07-23 08:00:00
Read the number 6768
Comments on 4
The original thoroughly understands the running process of JDBC
A few days ago, I published a blog writing mybatis to thoroughly understand the framework principle. In order to help beginners better understand myBatis framework, this time to explain the Java JDBC running process. The full name of JDBC is Java DataBase Connection, which can be used to manipulate relational databases. The JDBC interface…
The 2019-07-22 08:00:00
Read the number 8089
Comments on 4
Original handwriting mybatis thoroughly understand the framework principle
Mybatis, formerly known as iBatis, is a combination of “Internet” and “Abatis”. It is an excellent persistence layer framework that supports customized SQL, stored procedures, and advanced mapping. Mybatis avoids almost all of the JDBC code and manual setting of parameters as well as fetching result sets. It can use simple XML or annotations to configure and map native information to interface and Java PO…
The 2019-07-16 08:00:00
Read the number 5823
Comments on 0
Original sword offer solution Java version of the source code index
“Sword Finger Offer” analyzes 50 typical interview questions for programmers, systematically sorting out 5 key points that affect the interview from five aspects of basic knowledge, code quality, problem solving ideas, optimization efficiency and comprehensive ability. Is a computer college students algorithm to improve a necessary book. After a year of PHP and Java mixed development of the project, the author felt a little Java skills damaged, so ready to spend a few days of free time, according to the topic sequence of niuke.com,…
The 2019-07-14 22:09:34
Read the number 5363
Comments on 1
The default keyword that is easily forgotten in original Java
Default keyword The default keyword has two uses in JDK8. 1. Use default int day = 8; String dayString; switch (day) { case 1: dayString = “Monday”…
The 2019-07-10 08:00:00
Read the number 5736
Comments on 0
Original skip lists are all here
It is used by data structures such as ConcurrentSkipListSet, ConcurrentSkipListMap, not to mention Redis. It’s a thought, even if you don’t write it. Skip table data structure skip table is called skip table, skip table for short. Skip table is a randomized data structure, in essence is a binary search ordered linked list. The jumper in the original has…
The 2019-07-09 08:00:00
Read the number 6523
Comments on 1
Original quick understanding of Java concurrency tool classes based on AQS implementation
AQS is short for AbstractQueuedSynchronizer, such as its name suggests, the abstract queue type synchronizer, it is a Java improve the bottom of the synchronous tools, expressed in a variable of type int synchronization state, and provides a series of CAS operation to manage the synchronization state, Many synchronization class implementations rely on it, such as the common CountDownLatch, Semapho…
The 2019-07-08 08:00:00
Read the number 7049
Comments on 5
ConcurrentHashMap and JDK8 optimization
Because HashMap has some problems in concurrency, the concurrent container ConcurrentHashMap is provided in the JDK. For issues and principles in HashMap concurrency, I strongly recommend reviewing this article. ConcurrentHashMap uses segmented locking to store the entire data structure in segments (16 by default) and assign a lock to each segment.
The 2019-07-07 08:00:00
Read the number 7416
Comments on 1
Original Java thread safety policies and multithreaded concurrency best practices
Thread-safe policy Immutable Objects Are Immutable Objects, meaning that once an object is created its state (its data, that is, the value of its properties) cannot be changed, and any changes to it should produce a new object. Immutable objects must meet the following conditions: The state of an object cannot be changed after it is created. All fields are final.
The 2019-07-02 08:30:00
Read the number 5706
Comments on 0
Original detail under the concurrent HashMap and JDK8 optimization
HashMap uses a linked list method to avoid hash collisions (with the same hash value) and converts the list to a red-black tree when its length is greater than TREEIFY_THRESHOLD (default: 8). When the value is less than or equal to UNTREEIFY_THRESHOLD (the default value is 6), the system degenerates back to the linked list to achieve performance balancing. The following figure shows the data structure of HashMap (array + linked list + red-black tree)…
The 2019-06-30 08:00:00
Read the number 7217
Comments on 6
Original secure publishing objects – Publishing and escaping
Publishing an object simply means providing a reference to an object to code outside of scope. Such as returning an object, or passing it as a parameter to a method of another class. Example of unsafe publishing objects: @slf4j @notThreadSafe public class UnsafePublish {private…
The 2019-06-29 08:00:00
Read the number 5642
Comments on 0
Original TCP sticky unpacking details and Netty code examples
TCP is a “stream” protocol. A stream is an unbounded string of data. Think of the flow of water in a river. It’s continuous. There’s no dividing line. TCP does not understand the specific meaning of upper-layer service data. It divides packets according to the actual situation of THE TCP buffer. Therefore, in terms of services, A complete packet may be divided into multiple packets for transmission by TCP, or several small packets may be encapsulated into one large packet.
The 2019-06-28 08:00:00
Read the number 5649
Comments on 0
Original Java class loading and object creation process details
Class loading process Five processes of class loading: loading, validation, preparation, parsing, and initialization. Load During the load phase, the virtual machine does three main things: it fetches the binary byte stream that defines a class by its fully qualified name. Transform the static storage structure represented by this byte stream into a runtime data structure for the method area. Generate a JA representing this class in the Java heap…
The 2019-06-27 08:00:00
Read the number 5703
Comments on 0
Original JVM memory model and garbage collection mechanism
JVM memory model According to the Java Virtual Machine specification, Java data regions are divided into five data regions. The method area and heap are shared by all threads, while the virtual machine stack, local method stack, and program counter are thread private. Some bloggers call the method area persistent because the former is the JVM specification and the latter is an implementation of the JVM specification, and only HotSpot has permanent generation, JDK…
The 2019-06-26 08:00:00
Read the number 5705
Comments on 0
Original creative patterns for quick understanding of design patterns
For a more comprehensive understanding of design patterns, it is recommended to look at Spring’s Design Patterns Quick Start dry, the first half of which is a taxonomy and overview of design patterns, not related to Spring. The creation of objects in the creation mode consumes a lot of resources of the system, so the research on the creation of objects, so that the efficient creation of objects is the problem to be discussed in the creation mode. There are six specific creation patterns to examine, which are:…
The 2019-06-25 08:00:00
Read the number 5696
Comments on 0
Want to learn ai afraid of math? Don’t panic. It’s easy to get started
I would like to introduce myself: THE author is a non-famous 985 graduate student of grade 15. She has almost 3 years of machine learning experience before the beginning of the semester and during the university, and her research direction is image recognition. As I have experience in machine learning, from time to time, some students who want to learn machine learning would ask me how to get into machine learning. In fact, in my opinion, if it is not to tune and wash the data, to modify the optimization algorithm model, in addition to reading a lot of papers, or have a good…
The 2019-06-24 08:00:00
Read the number 9639
Comments on 16
Original quickly understand UDP protocol
The http-over-QUIC experimental protocol will be renamed HTTP/3 and is expected to be the third official version of the HTTP protocol, according to Internet Engineering Task Force (IETF) officials. Quic(QuickUDP Internet Connections) is a new transport method that reduces latency compared to TCP. On the surface, Quic is very similar to real…
The 2019-06-23 08:00:00
Read the number 5645
Comments on 0
Original quick to understand Https
HTTPS: HTTPS is the combination of HTTP and SSL. It is used to prevent information leakage caused by HTTP plaintext transmission. SSL encrypts the communication between the client and server through public and private keys, and digital certificates by authoritative authorities prevent the possibility of man-in-the-middle attacks. The default port is 443. SSL requires a ca to apply for a certificate. Generally, there are few free certificates, so some fees are required. .
The 2019-06-22 08:00:00
Read the number 5778
Comments on 0
Original Spring design patterns quick start dry goods
Design patterns are a set of familiar, repeated code design lessons. Design patterns are used to reuse code, make it easier for others to understand, and ensure code reliability. Classification of design patterns 1. The creation of objects in the creation mode consumes a lot of resources of the system, so the research on the creation of objects, so that the efficient creation of objects is the problem to be discussed in the creation mode. Here are 6 specific innovations…
The 2019-06-21 08:00:00
Read the number 5634
Comments on 0
- The previous page
- 1
- 2
- 3
- The next page