Java
Duy Văn | 05/03/2025
Java là một ngôn ngữ lập trình cực kỳ phổ biến, được rất nhiều người sử dụng. Các hệ thống CNTT trên thế giới cũng sử dụng rất nhiều Java, để phục vụ các mục đích:
- Phát triển ứng dụng di động
- Phát triển ứng dụng máy tính, web
- Web servers
- Games
- Kết nối database
- …
Java hoạt động trên nhiều hệ điều hành, từ Windows, Mac, Linux, Raspberry Pi,… cũng không thể không kể đến tuổi thơ của nhiều người khi chơi các con game điện thoại Nokia, các con Game này đều được viết bằng Java.
Java vẫn là ngôn ngữ lập trình phổ biến nhất thế giới và yêu cầu về Java trên thị trường việc làm luôn cao
Java khá đơn giản và dễ sử dụng, open source và miễn phí
Bản chất syntax của nó cũng giống C++ và C#, nên nếu bạn đã từng học qua các ngôn ngữ này thì việc học Java sẽ dễ dàng hơn
Cài đặt Java
Cách đơn giản nhất để cài đặt Java là tải về các bộ JDK (Java Development Kit) từ trang chủ của Oracle. Bạn có thể tìm kiếm “download JDK” trên Google và chọn phiên bản phù hợp với hệ điều hành của bạn
Sau đó với lệnh terminal hoặc cmd, bạn có thể kiểm tra xem Java đã được cài đặt thành công chưa bằng cách gõ lệnh sau:
java -version
Để ví dụ chạy thử thì chúng ta sẽ thí nghiệm với đoạn code huyền thoại để in “Hello Word”
public class Main{
public static void main(String[] args){
System.out.println("Hello world");
}
}
Chúng ta sẽ lưu lại đoạn code trên làm một file tên Main.java. Sau đó, bước đầu tiên là compile nó với
javac Main.java
Sau khi đã compile mà không có lỗi lầm gì, chạy lệnh để thực thi code
java Main
Hello world
Đặc điểm của Java
Java về bản chất là lai tạo giữa ngôn ngữ biên dịch và thông dịch. Với bộ Java DK cơ bản, khi thực hiện javac, nó sẽ biên dịch ra một byte-code để Java Virtual Machine (JVM) hiểu, sau đó JVM - với vai trò là trình thông dịch, sẽ đọc byte-code và chạy code
Java không biên dịch code ra hướng dẫn cho hệ điều hành hay phần cứng, tuy nhiên JVM bây giờ có thể sử dụng kỹ thuật JIT(Just In Time compilation) để biên dịch ra byte-code có thể hiểu được bởi CPU và chạy ngay lập tức
Với hướng tiếp cận sử dụng trình thông dịch JVM, đoạn bytecode sau khi được compile có thể chạy được trên bất kỳ nền tảng nào miễn là JVM chạy được trên nền tảng đấy. Tuy nhiên, xét từ góc độ hiệu năng, làm như trên vô hình chung là đang tự tạo ra một rào cản hiệu năng khi trình thông dịch sẽ làm giảm hiệu năng của ứng dụng, mỗi lần gọi một method, bytecode sẽ phải được thông dịch một lần
Để giải quyết vấn đề hiệu năng trên các use case không thay đổi môi trường thì nhu cầu cần có hiện tại là một bước bổ sung để biên dịch tiếp bytecode này cho CPU. JIT sinh ra để JVM có thể biên dịch các phần hot code - mã thường xuyên được gọi thành mã máy giúp tăng tốc độ thực thi, machine code được tạo ra sẽ được lưu trong cache để dùng lại về sau, giảm việc dựa giẫm vào bytecode của trình thông dịch
Ngoài ra JIT còn sử dụng một số kỹ thuật tối ưu mã như là hợp nhất (code inlining), bỏ đi mã chết (dead code elimination) và tối ưu vòng lặp (loop optimization)
HotSpot là trình JIT mặc định của khá nhiều bản phân phối của JVM bao gồm OpenJDL và OracleJDK, nó bao gồm hai compiler:
- C1: biên dịch nhanh cho các ứng dụng nhỏ, tối ưu cho việc khởi động ứng dụng
- C2: biên dịch tối ưu hoá cao, cung cấp hiệu năng tối đa cho ứng dụng cần nhiều tài nguyên, cần xử lý như ứng dụng lớn, web services, áp dụng nhiều kỹ thuật tối ưu
Table of contents
- Java Syntax
- Output
- Variable
- Data Type
- Operator
- String
- Math
- Boolean
- If - Else
- Loop
- Array
- Method
- OOP in Java
- Constructor
- Modifier
- Package
- Encapsulation
- Abstraction
- Inheritance
- Polymorphism
- Inner Class
- Enum
- Input
- Time
- Array List
- Linked List
- Hashmap
- Hashset
- Iterator
- Wrapper Class
- Exception
- Regex
- Thread
- Lambda expressions
- Handling File
- Trick