Như đã biết, trong Java để khởi tạo một instance của một class chúng ta sẽ sử dụng từ khóa new. Tuy nhiên, trong một số trường hợp chúng ta cần tạo một instance khi chỉ biết tên class hoặc private constructor hoặc không biết được số lượng tham số của constructor, … Với những […]
Hướng dẫn Java Design Pattern – Visitor
Ở các bài viết trước chúng ta đã cùng tìm hiểu về các Pattern thuộc nhóm hành vi (Behavior Pattern): Chain of Responsibility, Command, Interpreter, Iterator, Mediator, Memento, Observer, State, Strategy, Template Method. Trong bài viết này, chúng ta sẽ cùng tìm hiểu về một Pattern cuối cùng thuộc nhóm Behavior Pattern được giới thiệu trong cuốn “Design Patterns: Elements of Reusable Object-Oriented Software – GOF” […]
Kết hợp Java Reflection và Java Annotations
Java Reflection có thể nhận biết được những thứ (Class, field, method, ..) được chú thích bởi một Annotation nào đó. Và tất nhiên nó chỉ nhận biết được các Annotation có @Retention(RetentionPolicy.RUNTIME). Reflection và Annotation là 2 tính năng rất mạnh mẽ của Java, nếu bạn hiểu rõ và vận dụng tốt nó sẽ giúp cho bạn tiết kiệm rất […]
Hướng dẫn sử dụng Java Annotation
Annotation (chú thích) là một loại siêu dữ liệu (metadata information) trong java có thể được áp dụng ở các phần tử mã nguồn java để sau đó một số công cụ (tool), trình gỡ lỗi (debugger) hoặc chương trình ứng dụng có thể tận dụng các chú thích này. Các Annotation được thêm vào […]
Hướng dẫn sử dụng Java Reflection
Java Reflection là gì? Java là một ngôn ngữ hướng đối tượng (Object-oriented), thông thường bạn cần tạo ra một đối tượng và bạn có thể truy cập vào các trường (field), hoặc gọi phương thức (method) của đối tượng này thông qua toán tử dấu chấm ( . ). Java Reflection giới thiệu một […]
So sánh Array và ArrayList trong Java
Trong các bài viết trước, tôi đã giới thiệu với các bạn Array và ArrayList. Trong bài này, tôi sẽ so sánh sự khác nhau giữa Array và ArrayList. Array ArrayList Array có kích thước cố định. Không thể thay đổi kích thước nếu nó đã được tạo. Kích thước của ArrayList có thể thay […]