Java8 stream map example

map function in Stream class means you can pass Function and get another Stream result. It is very useful when you want convert collection to another collection. In this page I'll give you a demonstration how to convert list of User to a list of user's name and age.

Understand ThreadPoolExecutor core and maximum

When we create ThreadPoolExecutor we need to specify the size of core and maximun. Let's say you create a executor, the corePoolSize is 2, the maximumPoolSize is 4. In general, there are 2 threads working. If the third task created it will be added in the queue. When the queue is full the executor will create a new thread for handling the new task. New tasks will be rejected when the size of pool is equal with maximumPoolSize and the queue is full.

Java ThreadPoolExecutor example

ThreadPoolExecutor is a useful class to manage threads in JDK. Create a thread task and put it to thread pool. This task will be executed in the feature. The simple thread pool code is here.

MongoDB Authentication Mechanisms

When you connect MongoDB with auth you need to specify the "Authentication Mechanisms". If your MongoDB version is 3.0+ the default "Authentication Mechanisms" is SCRAM-SHA-1, for other versions MONGODB-CR as the default.

MongoDB delete user

If MongoDB does not enable auth you can delete user without authorisation. If MongoDB enables auth you need to make sure you are userAdmin or userAdminAnyDatabase role before deleting the user. User following command to delete the user.

MongoDB enable auth

I assume you have installed MongoDB in your environment. The version of MongoDB in my computer is 3.4.6. There are two ways to enable auth in MongoDB, start mongod service with --auth or change the configuration file. In this page I will show you the second one.

Java execute command get output example

The getInputStream() method of Process return the result of what you executed. If there is an error when you invoke the command with Process, using getErrorStream() to get the information. The example code is here.

Java delete file example

Deleting file is a common daily operations. I will show you how to delete file in java. The example code is here.

Java Semaphore example

Semaphore is used to control the number of available threads. Let's say you have a lot of workers and only 5 computers. When workers finish his work he has to release the computer for next worker. Semaphore is good at handle this case. The example of Semaphore is here.

Java CyclicBarrier example

CyclicBarrier is a tool class in concurrent package. It is used to make the thread waiting for other threads. All threads will be waked up when they are all in "wait" state. The sample code is here.

Relational Database tutorial

Common operations for relational database(MySQL & PostgreSQL).

MySQL delete duplicate rows

Duplicate rows will be in you table when you don't use unique key for some reason. In this page I will show you how to remove duplicate rows in MySQL. Let's say the schema of user table is like following.

Linux chkconfig example

chkconfig command can help you check or update the services installed in your environment. Let's say you have installed postgreSQL in your Linux. The script named "postgresql" will be installed in the directory "/etc/init.d/". chkconfig or chkconfig --list will output the services status like following.

Java CountDownLatch example

In java, if you want do something after multiple threads finish CountDownLatch might help you. This class can help you count how many threads is finished. If there is no thread running, it will wake up the main thread. The code example is like following.

How ArrayList increase

As we all know ArrayList use array to store the items. The length of array is fixed. When the array can't hold all items it will increase. I want to know how ArrayList increases the length. I found the source code(JDK1.8) like following.