[Spring Boot] Logging trong Spring Boot

Spring Boot uses Commons Logging for all internal logging but leaves the underlying log implementation open. Default configurations are provided for Java Util LoggingLog4J2, and Logback. In each case, loggers are pre-configured to use console output with optional file output also available.

By default, if you use the “Starters”, Logback is used for logging. Appropriate Logback routing is also included to ensure that dependent libraries that use Java Util Logging, Commons Logging, Log4J, or SLF4J all work correctly.

Tiếp tục đọc

#spring-boot, #spring-framework

Hashing và Hash Table

Giả sử, chúng ta muốn thiết kế một hệ thống lưu trữ hồ sơ nhân viên. Mỗi hồ sơ sẽ có một key (khóa) để định danh bằng cách dùng số điện thoại. Chúng ta muốn hệ thống đó phải thực hiện các thao tác sau một cách hiệu quả:

  • Thêm mới một số điện thoại và thông tin hồ sơ nhân viên tương ứng.
  • Tìm kiếm một số điện thoại và lấy các thông tin đính kèm.
  • Xóa một số điện thoại và tất cả các thông tin liên quan tới nó.
Tiếp tục đọc

#data-structures, #hashing-data-structure

Deque – Cấu trúc dữ liệu hàng đợi hai đầu

Deque, hay còn gọi là Double Ended Queue, là một phiên bản cấu trúc dữ liệu hàng đợi mà cho phép chèn và xóa phần tử ở cả hai đầu của hàng đợi.

Tiếp tục đọc

#data-structures, #queue-data-structure

Priority Queue – Cấu trúc dữ liệu hàng đợi ưu tiên

Priority Queue (Hàng đợi ưu tiên) là một phần mở rộng của Queue. Nó có các đặc điểm sau:

  • Mọi phần tử trong hàng đợi đều có một mức độ ưu tiên gắn với nó.
  • Một phần tử có độ ưu tiên cao hơn sẽ được xử lý (dequeued) trước một phần tử có độ ưu tiên thấp.
  • Nếu hai phần tử có cùng độ ưu tiên, chúng sẽ được xử lý lần lượt theo thứ tự của chúng trong hàng đợi.
Tiếp tục đọc

#data-structures, #queue-data-structure

Queue – Cấu trúc dữ liệu hàng đợi

Queue (Hàng đợi) là một linear data structure. Queue hoạt động theo cơ chế FIFO (First In First Out). Tức là, phần tử nào được thêm vào đầu tiên sẽ được lấy ra đầu tiên.

Queue mô tả rất tự nhiên hàng đợi của con người trong cuộc sống hàng ngày. Ví dụ, quầy thanh toán ở siêu thị, người xếp hàng đầu tiên đứng đầu hàng đợi sẽ được phục vụ trước. Người mới tới sẽ xếp chèn vào cuối hàng.

Tiếp tục đọc

#data-structures, #queue-data-structure

[FAQ] Sự khác nhau giữa ArrayList và Vector trong Java?

Cả hai lớp ArrayListVector đều implements từ interface List. Cả 2 lớp đều sử dụng một mảng động, có thể thay đổi kích thước, để lưu trữ các phần tử. Chúng đều là một phần của Java Collections Framework. Bài viết này sẽ nói về các điểm khác nhau của 2 lớp này.

Tiếp tục đọc

Vector – Lớp Vector trong Java

Lớp Vector xuất hiện từ JDK 1, trước cả khi xuất hiện Collections Framework từ JDK 2. Lớp Vector có tính năng như ArrayList. Khác biệt ở chỗ các phương thức của Vector được đồng bộ hóa, còn ArrayList thì không.

Tiếp tục đọc

#java, #java-collections

[FAQ] Sự khác nhau giữa LinkedList và ArrayList trong Java?

ArrayListLinkedList là 2 implementations phổ biến nhất của interface List. Chúng đều là một phần của Java Collections Framework. Bài viết này sẽ nói về các điểm giống và khác nhau của 2 lớp này.

Tiếp tục đọc

ArrayList – Lớp ArrayList trong Java

Lớp ArrayList trong Java được xây dựng dựa trên cấu trúc dữ liệu dạng Array (mảng). Lớp ArrayList được sử dụng rộng rãi vì các chức năng và tính linh hoạt của nó. Hầu hết các lập trình viên chọn ArrayList hơn là chọn Array vì nó là một sự thay thế rất tốt cho các mảng truyền thống trong Java. Lớp ArrayList sử dụng một mảng động, có thể thay đổi kích thước, để lưu trữ các phần tử. Nó là một phần của Java Collections Framework.

Tiếp tục đọc

#array-data-structure, #data-structures, #java, #java-collections

LinkedList – Lớp LinkedList trong Java

Lớp LinkedList trong Java được cài đặt theo dạng Doubly Linked List (Danh sách liên kết đôi). Nó thừa kế lớp AbstractSequentialList và implements hai interfaces ListDeque. Nó là một phần của Java Collections Framework.

Tiếp tục đọc

#data-structures, #java, #java-collections, #linked-list-data-structure