Kỹ thuật Sinh mã và Đặc hóa Kiểu trong Agrona: Xây dựng Bộ sưu tập Nguyên thủy Hiệu năng Cao
Agrona là một thư viện công cụ và cấu trúc dữ liệu tối ưu cho môi trường Java, nổi bật với khả năng tự động sinh mã để tạo các phiên bản chuyên biệt hóa cho các kiểu dữ liệu nguyên thủy. Thay vì dựa vào cơ chế Generic truyền thống gây ra chi phí đóng gói đối tượng (boxing), thư viện này áp dụng chiến lược sinh mã tĩnh, giúp loại bỏ hoàn toàn ov ...
Đăng vào ngày 30 tháng 8 lúc 12:00
Triển khai đăng nhập bằng mã SMS và quản lý phiên với Redis
Hệ thống sử dụng bộ công nghệ bao gồm Redis, Spring Boot, MySQL, Lombok, Mybatis-plus và Hutool để triển khai các chức năng cốt lõi như đăng nhập bằng mã SMS, truy vấn thông tin thương nhân có hỗ trợ bộ nhớ đệm, đấu giá giảm giá theo thời gian thực, tìm kiếm thương nhân lân cận, điểm danh người dùng, theo dõi bạn bè và người dùng đánh giá địa đ ...
Đăng vào ngày 29 tháng 8 lúc 20:02
Các phương pháp khởi tạo dự án Spring Boot hiệu quả
1. Chuẩn bị môi trường phát triển
Trước khi bắt đầu xây dựng ứng dụng Spring Boot, bạn cần đảm bảo hệ thống đã cài đặt các công cụ sau:
JDK: Phiên bản 1.8 hoặc 11/17 (tùy thuộc vào phiên bản Spring Boot bạn chọn).
Build Tool: Maven 3.6 trở lên hoặc Gradle.
IDE: IntelliJ IDEA, Eclipse hoặc VS Code.
2. Khởi tạo dự án thủ công từ Ma ...
Đăng vào ngày 29 tháng 8 lúc 19:46
Sắp xếp phân cấp danh mục trong MySQL với MyBatis-Plus
Khi làm việc với dữ liệu phân cấp như danh mục sản phẩm, menu đa cấp, việc truy vấn và sắp xếp theo thứ tự cha-con là một yêu cầu phổ biến. Bài viết này trình bày cách giải quyết vấn đề này trong MySQL kết hợp với MyBatis-Plus.
Vấn đề cần giải quyết
Giả sử có bảng category lưu trữ danh mục xe hơi:
id | parent_id | name
----|-----------|---- ...
Đăng vào ngày 27 tháng 8 lúc 08:22
Sử dụng ArrayList trong Java và Sự Khác Biệt với Mảng
ArrayList và Khái Niệm Generic
ArrayList là một cấu trúc dữ liệu thuộc Collections Framework trong Java, cho phép lưu trữ danh sách các phần tử với kích thước động.
ArrayList<String> danhSach = new ArrayList<>();
Khi khai báo ArrayList, chúng ta sử dụng cặp dấu ngoặc nhọn <E> để chỉ định kiểu dữ liệu (generic). Generic đảm bả ...
Đăng vào ngày 26 tháng 8 lúc 20:23
Đếm số lượng dãy con tăng dần dài nhất trong mảng (C++/Java)
Cho một mảng các số nguyên không sắp xếp, hãy tìm số lượng dãy con tăng dần dài nhất.
Ví dụ 1:
Input: [1,3,5,4,7]
Output: 2
Giải thích: Hai dãy con tăng dần dài nhất là [1, 3, 4, 7] và [1, 3, 5, 7].
Ví dụ 2:
Input: [2,2,2,2,2]
Output: 5
Giải thích: Dãy con tăng dần dài nhất có độ dài 1, và có 5 phần tử như vậy, nên kết quả là 5.
Phân tí ...
Đăng vào ngày 23 tháng 8 lúc 22:52
Giao diện trong Java
Trong ngôn ngữ lập trình Java, giao diện (Interface) là một kiểu trừu tượng định nghĩa tập hợp các phương thức trừu tượng và hằng số (có thể không chứa phương thức hay hằng số nào). Giao diện đóng vai trò như một cam kết, quy định hành vi mà một lớp đối tượng nhất định phải có.
Dưới đây là những điểm quan trọng liên quan đến giao diện trong Jav ...
Đăng vào ngày 23 tháng 8 lúc 08:23
Phân biệt length và length() trong Java
Trong Java, length và length() đều dùng để lấy kích thước, nhưng chúng thuộc về hai khái niệm khác nhau: length là thuộc tính của mảng, còn length() là phương thức của lớp String.
Ví dụ cơ bản
int[] scores = new int[5];
System.out.println(scores.length); // thuộc tính, không có dấu ngoặc
String name = "example";
System.out.println(name.l ...
Đăng vào ngày 23 tháng 8 lúc 06:46
Cơ chế Interceptor và kiến trúc Plugin trong MyBatis
MyBatis Interceptor là một tính năng mạnh mẽ cho phép nhà phát triển can thiệp vào quá trình thực thi SQL mà không cần thay đổi mã nguồn cốt lõi của thư viện. Dựa trên mô hình Design Pattern "Decorator" và cơ chế Proxy của Java, MyBatis cung cấp khả năng mở rộng linh hoạt cho các tác vụ như ghi log, phân trang tự động, hoặc bảo mật dữ liệu.
1. ...
Đăng vào ngày 22 tháng 8 lúc 18:34
Xây dựng cây phân cấp tổ chức từ dữ liệu phẳng trong Vue và Java
Trong hệ thống quản lý tổ chức, dữ liệu thường được lưu trữ dạng bảng phẳng với mã tổ chức và mã cấp trên. Để hiển thị trên giao diện Vue dưới dạng cây phân cấp, cần chuyển đổi dữ liệu này thành cấu trúc đệ quy gồm các trường label và children.
Entity định nghĩa nút cây
Class Java đại diện cho mỗi nút trong cây:
@Data
@Accessors(chain = true)
...
Đăng vào ngày 21 tháng 8 lúc 23:33