Tổng hợp Kiến thức Cốt lõi Java cho Phỏng vấn Kỹ thuật: Từ OOP đến Đồng bộ hóa và Hiệu suất
Kiến trúc Dữ liệu và Cơ chế Nền tảng
Java phân loại kiểu dữ liệu thành hai nhóm chính: kiểu nguyên thủy (primitive) và kiểu tham chiếu (reference). Tám kiểu nguyên thủy bao gồm byte, short, int, long, float, double, char và boolean. Mỗi loại đều có lớp bao đóng (wrapper) tương ứng trong gói java.lang để hỗ trợ thao tác đối tượng trong Collectio ...
Đăng vào ngày 18 tháng 6 lúc 03:42
Công cụ Phân tích Bộ nhớ JVM: jmap
jmap (Java Memory Map) là công cụ chẩn đoán quan trọng của JDK, được sử dụng để **xem xét tình trạng sử dụng bộ nhớ của tiến trình Java, tạo bản ghi đống (Heap Dump), và phân tích phân bố đối tượng**. Công cụ này dựa vào cơ chế Attach của JVM và thường được dùng để xác định rò rỉ bộ nhớ hoặc các vấn đề OOM.
1. Ngữ pháp cơ bản
jmap [options] & ...
Đăng vào ngày 14 tháng 6 lúc 08:03
jcmd: Công cụ chẩn đoán đa năng cho ứng dụng Java hiện đại
Giới thiệu về jcmd
jcmd là công cụ dòng lệnh được giới thiệu từ JDK 7, đóng vai trò như một giải pháp thống nhất để thay thế các tiện ích truyền thống như jstack, jmap, và jinfo. Dựa trên cơ chế Attach API của JVM, jcmd cho phép tương tác trực tiếp với tiến trình Java đang chạy nhằm thu thập thông tin trạng thái, thực thi hành động điều khiển h ...
Đăng vào ngày 12 tháng 6 lúc 23:44
Các phương pháp tải mã bytecode động trong Java
Các phương pháp tải mã bytecode động trong Java
Trong các lỗ hổng khử tuần tự, người ta thường gặp các lớp như TemplatesImpl hoặc BCEL liên quan đến việc tải động mã bytecode độc hại để thực thi lệnh bất kỳ;
Hiểu rõ cơ chế này là nền tảng để nắm bắt nguyên lý hoạt động của memory shell và hiểu sâu hơn về cơ chế tải lớp Java và tính linh hoạt củ ...
Đăng vào ngày 8 tháng 6 lúc 19:43
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