Nguyên lý cốt lõi của EA Async: Cách lớp Transformer sửa đổi bytecode để thực hiện chức năng await

Nguyên lý cốt lõi của EA Async: Cách lớp Transformer sửa đổi bytecode để thực hiện chức năng await [Liên kết tải miễn phí] EA Async là một công cụ mạnh mẽ giúp triển khai các phương thức async-await trên JVM. Nó sử dụng kỹ thuật chuyển đổi bytecode, cho phép lập trình viên viết mã bất đồng bộ dễ dàng như trong các ngôn ngữ khác. Bài viết này sẽ ...

Đăng vào ngày 4 tháng 6 lúc 18:09

Tính độc lập nền tảng của ngôn ngữ lập trình

Các ngôn ngữ lập trình như C và Java thể hiện hai phương pháp khác nhau trong việc xử lý tính tương thích đa nền tảng. Để hiểu rõ nguyên lý này, chúng ta sẽ phân tích quy trình biên dịch và thực thi chương trình "Hello World" ở cả hai hệ thống. Quy trình biên dịch chương trình C #include <stdio.h> int main() { printf("Hello, World! ...

Đăng vào ngày 3 tháng 6 lúc 01:35

Hiểu sâu về cơ chế Garbage Collection và tối ưu hóa hiệu năng trong JVM

Phân vòng đời đối tượng và cấu trúc bộ nhớ Heap JVM sử dụng cơ chế "Generational Collection" để quản lý bộ nhớ, nơi các đối tượng được phân loại dựa trên thời gian tồn tại của chúng và lưu trữ ở các vùng nhớ khác nhau: Young Generation (Thế hệ trẻ): Khu vực lưu trữ các đối tượng có vòng đời ngắn ("sinh và chết nhanh"). Hầu hết các đối tượng mớ ...

Đăng vào ngày 1 tháng 6 lúc 21:26

Thuật toán đánh dấu ba màu trong JVM

Giới thiệu thuật toán đánh dấu ba màu Trình thu gom rác (GC) có mục tiêu chính là thực hiện việc thu hồi bộ nhớ, trong quá trình này gồm hai bước chính: đánh dấu bộ nhớ, thu hồi bộ nhớ. Khái niệm đánh dấu ba màu Phương pháp đánh dấu ba màu chủ yếu nhằm mục đích đánh dấu hiệu quả các khối bộ nhớ có thể được thu hồi. Đánh dấu ba màu (Tri-colo ...

Đăng vào ngày 31 tháng 5 lúc 16:44

Cách phá vỡ cơ chế ủy quyền hai chiều trong Java

Trước khi đọc bài viết, hãy suy nghĩ về hai câu hỏi sau và tìm lời giải trong nội dung dưới đây: Nếu bạn tự viết lại lớp java.lang.String và tải nó bằng URLClassLoader, liệu có thể ghi đè lên lớp String gốc trong JDK không? Nếu câu trả lời là không, thì có cách nào để thay thế được lớp java.lang.String trong JDK không? 1. Cơ chế ủy quyền ...

Đăng vào ngày 28 tháng 5 lúc 07:56

Cấu hình cơ bản của Elasticsearch phiên bản 6.6.0

Tổng quan các tệp cấu hình chính 1. elasticsearch.yml (Tệp cấu hình dịch vụ) Vị trí tệp: ${ES_HOME}/config/elasticsearch.yml # ======================== Cấu hình Elasticsearch ========================= # # LƯU Ý: Elasticsearch đi kèm với các thiết lập mặc định hợp lý cho phần lớn trường hợp. # Trước khi bạn điều chỉnh và tối ưu hóa cấu h ...

Đăng vào ngày 27 tháng 5 lúc 12:01

Giám sát và chẩn đoán rò rỉ bộ nhớ heap trong luồng ảo: 3 phương pháp thiết yếu

Giám sát mức sử dụng bộ nhớ heap của luồng ảo Kể từ khi Java 21 giới thiệu luồng ảo (Virtual Threads), khả năng xử lý đồng thời đã được cải thiện đáng kể nhờ vào tính nhẹ của chúng. Tuy nhiên, việc tạo ra hàng loạt luồng ảo vẫn có thể gây áp lực lên bộ nhớ heap. Do đó, việc theo dõi mức sử dụng heap là yếu tố then chốt để tối ưu hiệu suất. Kíc ...

Đăng vào ngày 27 tháng 5 lúc 01:06

Cấu hình đường dẫn Log4j linh hoạt cho ứng dụng Java

Trong quá trình phát triển ứng dụng Java, việc quản lý file log là một phần không thể thiếu. Một vấn đề phổ biến mà các lập trình viên thường gặp phải là sự khác biệt về cấu trúc thư mục giữa môi trường phát triển (Local) và môi trường thực tế (Production). Việc thiết lập đường dẫn tuyệt đối trong file cấu hình log4j.properties thường gây ra sự ...

Đăng vào ngày 23 tháng 5 lúc 00:29

Quản lý và thu hồi bộ nhớ ngoài heap trong JVM

Quản lý và thu hồi bộ nhớ ngoài heap trong JVM 1. Phân bổ và thu gom rác bộ nhớ trong JVM Bộ nhớ của JVM thường được chia thành các khu vực cơ bản: Khu vực trẻ (Young Generation): Các đối tượng mới tạo ra thường nằm ở đây. Khu vực già (Old Generation): Sau vài lần thu gom rác, các đối tượng từ khu vực trẻ sẽ chuyển sang khu vực già và tồn tại l ...

Đăng vào ngày 22 tháng 5 lúc 00:08

Sử dụng chú thích trong Java

Chú thích (Annotation) là một tính năng quan trọng và mạnh mẽ trong Java, cho phép thêm thông tin.metadata vào mã nguồn mà không làm thay đổi logic xử lý. Tính năng này hỗ trợ tạo mã tự động, xử lý động tại thời gian chạy và đơn giản hóa cấu hình, giúp tăng hiệu suất phát triển và độ linh hoạt của ứng dụng. Cơ sở về chú thích Chú thích được đị ...

Đăng vào ngày 19 tháng 5 lúc 22:00