Cơ chế quản lý bộ nhớ thông qua các loại Reference trong Java
Trong Java, việc hiểu rõ cách Garbage Collector (GC) tương tác với các loại tham chiếu khác nhau là yếu tố then chốt để tối ưu hóa bộ nhớ và tránh lỗi OutOfMemoryError. Java cung cấp bốn loại tham chiếu chính: Strong Reference, Soft Reference, Weak Reference và Phantom Reference.
1. Strong Reference (Tham chiếu mạnh)
Đây là loại tham c ...
Đăng vào ngày 26 tháng 7 lúc 10:36
Sử dụng lớp Scanner và Random để tương tác và tạo số ngẫu nhiên trong Java
Tìm hiểu về lớp Scanner trong Java: Thu thập dữ liệu từ người dùng
Lớp Scanner là một công cụ mạnh mẽ thuộc gói java.util của Java, được thiết kế để đơn giản hóa việc đọc dữ liệu đầu vào. Mặc dù có thể đọc từ nhiều nguồn khác nhau như tệp hoặc chuỗi ký tự, cách sử dụng phổ biến nhất của Scanner là lấy dữ liệu từ bàn phím người dùng thông qua lu ...
Đăng vào ngày 26 tháng 7 lúc 10:34
Phân Tích Dữ Liệu Quan Trọng Từ SVG Bằng Java: Hướng Dẫn Chi Tiết
Trong quá trình phát triển một dự án backend liên quan đến trực quan hóa dữ liệu, tôi đã phải xử lý hàng loạt biểu tượng vector do người dùng tải lên. Hầu hết các biểu tượng này ở định dạng SVG, và yêu cầu là phải trích xuất các thông tin như kích thước, tọa độ đường dẫn, và màu sắc, sau đó lưu trữ vào cơ sở dữ liệu và tạo ảnh xem trước. Ban đầ ...
Đăng vào ngày 26 tháng 7 lúc 08:15
Tính năng cú pháp mới trong Java 17
Tính năng cú pháp mới trong Java 17
Mục lục
Tính năng cú pháp mới trong Java 17
JEP và Project Amber
Giới thiệu
Records [JEP 395]
Biểu thức switch và yield [JEP 361]
Phối hợp mẫu cho instanceof [JEP 394]
Khối văn bản [JEP 378]
Lớp bị niêm phong [JEP 409]
Những cải tiến chính khác của Java 17
Lưu ý: Mã nguồn chi tiết xem tạ ...
Đăng vào ngày 25 tháng 7 lúc 06:56
Chuyển đổi LocalDate sang Timestamp trong Java
Trong Java, lớp LocalDate biểu diễn ngày tháng không chứa thông tin thời gian. Để chuyển đổi sang timestamp (dưới dạng mili giây hoặc giây), cần kết hợp với phần thời gian, thường mặc định là 00:00:00 đầu ngày.
Cách 1: Sử dụng atStartOfDay() và toEpochSecond()
Phương thức atStartOfDay() chuyển LocalDate thành LocalDateTime với thời gian bắt đ ...
Đăng vào ngày 24 tháng 7 lúc 15:58
Kỹ thuật Generics trong Java: Từ cơ bản đến nâng cao
Generics trong Java là một tính năng mạnh mẽ cho phép các lớp, giao diện và phương thức hoạt động với các kiểu dữ liệu khác nhau mà vẫn giữ được tính an toàn kiểu. Thay vì viết mã lặp đi lặp lại cho từng kiểu dữ liệu, generics cho phép bạn định nghĩa các cấu trúc dữ liệu và thuật toán theo cách chung chung, sau đó chỉ định kiểu cụ thể khi sử dụ ...
Đăng vào ngày 24 tháng 7 lúc 15:39
Cơ bản về xử lý I/O trong Java
Sau khi tìm hiểu, bạn sẽ thấy rằng gói java.io cung cấp nhiều lớp và abstract class để làm việc với dữ liệu đầu vào/đầu ra. Có thể phân loại các luồng (stream) theo ba tiêu chí chính:
Hướng dữ liệu: InputStream (đọc vào) và OutputStream (ghi ra) — luôn xét từ góc độ chương trình.
Đơn vị xử lý: Byte stream (xử lý byte) và Character stream ( ...
Đăng vào ngày 24 tháng 7 lúc 14:53
Xây dựng Connection Pool hiệu quả với Netty
Netty là một framework giao tiếp bất đồng bộ hiệu năng cao, cung cấp một API đơn giản hơn so với các giao diện NIO gốc của Java. Tuy nhiên, không phải tất cả các nhà phát triển đều hiểu rõ cơ chế hoạt động bên trong của Netty khi sử dụng.
Việc tìm kiếm các bài viết hướng dẫn xây dựng connection pool phía client với Netty cũng khá hạn chế. Bài ...
Đăng vào ngày 24 tháng 7 lúc 05:29
Kiến trúc và các thành phần cốt lõi trong Spring Integration
Spring Integration là một framework mạnh mẽ triển khai các mô hình tích hợp hệ thống doanh nghiệp (Enterprise Integration Patterns - EIP). Dựa trên nền tảng Spring Messaging, nó mở rộng mô hình lập trình của Spring để hỗ trợ việc truyền dẫn dữ liệu giữa các thành phần hoặc hệ thống khác nhau thông qua cơ chế hướng sự kiện (event-driven).
Các đ ...
Đăng vào ngày 24 tháng 7 lúc 03:45
Quản lý và Thực thi Đa luồng trong Java
1. Vòng đời và các trạng thái của luồng trong Java
Trong môi trường Java, một luồng (thread) trải qua nhiều giai đoạn khác nhau từ khi được tạo ra cho đến khi kết thúc. Hiểu rõ các trạng thái này là nền tảng để làm việc hiệu quả với đa luồng. Các trạng thái cơ bản bao gồm:
Mới (New): Luồng ở trạng thái này ngay sau khi đối tượng l ...
Đăng vào ngày 24 tháng 7 lúc 02:38