Tại Sao Hàm Main Trong Java Lại Là Public Static ?
Có thể bạn quan tâm
Trong tất cả chúng ta khi bắt đầu tiếp cận học ngôn ngữ lập trình Java đều làm quen với hàm main trước tiên. Nhưng chúng ta thường không để ý đến đặc điểm của hàm này. Hàm main trong Java có đặc điểm là public static void và ít người để ý tại sao nó lại có đặc điểm đó. Nếu trong C hoặc C++ thì chúng ta cũng gặp hàm main nhưng hàm main này trả về kiểu int nhưng trong Java lại là void. Chúng ta cùng tìm hiểu ham main trong Java tại sao lại có những đặc điểm là public static void.
Vai trò của hàm main trong Java là gì?
Hàm main trong Java là điểm xuất phát cho bất kỳ một chương trình thuần Java nào. Trong chương trình Java, quá trình thực thi bắt đầu từ hàm main khi chúng ta chạy lệnh.
Mã:
Java java -classpath D:\javacore\demo\ Demo //Demo là tên lớp có chứa hàm main1 | java-classpathD:\javacore\demo\ Demo//Demo là tên lớp có chứa hàm main |
thì JVM sẽ tìm đến hàm public static void main(String args[]) trong lớp đó và nếu không tìm thấy hàm đó thì quăng ra lỗi NoSuchMethodError:main và kết thúc chương trình.
Đặc điểm của hàm main trong Java
Hàm main phải được khai báo chặt chẽ và đủ ký tự theo đặc tả của Java, nếu không thì JVM không thể xác định được nó và chương trình của bạn sẽ không chạy. Đây là cú pháp khai báo hàm main.
public static void main(String args[])
Với Java 5 trở lên thì cú pháp khai báo hàm main là:
public static void main(String args)
Tai sao hàm main trong Java là static
Có những lý do sau đây:
- Hàm main là static nên JVM có thể gọi nó mà không cần phải tạo ra bất kỳ một thể hiện nào của lớp chứa hàm main. Trong C và C++ cũng có hàm main để làm điểm khởi đầu cho việc thực thi chương trình, ngôn ngữ Java sử dụng lại quy tắc này.
- Nếu hàm main không được khai báo static thì JVM phải tạo ra thể hiện của lớp chứa hàm main và vì hàm dựng(constructor) của lớp đó có thể được nạp chồng(overload) nên sẽ không có một cách chắc chắn để JVM tìm thấy hàm main chính xác của lớp đó.
- Hàm static và dữ liệu kiểu static được load vào bộ nhớ riêng gọi là context trong JVM, được tạo ra khi JVM load lớp đó. Trong khi hàm và dữ liệu không phải là static được khai báo trong các lớp thì cần phải được tạo ra trước khi sử dụng chúng. Vì thế hàm main là static thì nó sẽ được load vào JVM context và được thực thi.
- Java xác định rằng hàm hoặc biến nào được khai báo là public thì có thể truy xuất từ bên ngoài lớp đó. Vì hàm main là public nên JVM dễ dàng để truy xuất vào và thực thi nó.
Tại sao hàm main là void: Vì hàm main được thiết kế để thực thi một xử lý nào đó của lớp nên không có giá trị trả về
Tóm lại:
- Trong Java hàm main phải được khai báo là public static void.
- JVM sẽ quăng ra ngoại lệ NoSuchMethodExeption:main nếu nó không tìm thấy hàm main. Hàm main là điểm xuất phát của chương trình Java.
- Hàm main được thực thi bởi luồng đặc biệt gọi là luồng “main”. Chương trình Java sẽ chạy cho đến khi luồng main hoặc không còn luồng phụ nào sinh ra từ hàm main thực thi nữa.
- Ngoài static void và public bạn có thể sử dụng từ khóa final, synchronized và strictfp với hàm main trong Java.
- Hàm main có thể được nạp chồng như bất kỳ hàm khác nhưng JVM sẽ chỉ gọi hàm main khai báo theo đúng cú pháp trên.
Hy vọng bài viết này giúp ích cho các lập trình viên java.
5 / 5 ( 12 votes )Bài viết liên quan:
- Giới thiệu và hướng dẫn cài đặt môi trường học lập trình java
- [Học lập trình Java] Đối tượng Java đầu tiên của bạn
- [Học lập trình Java] Thêm hành vi trong java
- [Học lập trình Java ] Biến tham chiếu trong ngôn ngữ Java
Từ khóa » Hàm Main Trong Java Là Gì
-
Bạn Hiểu Về Hàm Main Trong Java đến Mức Nào? 12 Câu Hỏi đơn ...
-
Phương Thức Main Trong Java | How Kteam
-
Tại Sao Hàm Main Trong Java Lại Là Public Static?
-
Phương Thức Main() Trong Java - Bạn đã Hiểu Hết Chưa?
-
Tại Sao Hàm Main Trong Java Là Static - Thả Rông
-
Cách Gọi Hàm Main Trong Java
-
Một Số Câu Hỏi "hóc Búa" Về Hàm Main Trong Java - Deft Blog
-
Trong Java,Tại Sao Phương Thức Main Là Public Static Void?
-
Bàn Về Phương Thức Main() Trong Java - Writes - Dạy Nhau Học
-
Mỗi Ngày Một Kiến Thức Mới - Lý Do Sử Dụng Hàm “main” Trong Lập ...
-
Lớp Và Phương Thức Trong Java
-
Tại Sao Phương Thức Main Trong Java Là Static - Học Tốt
-
Public Static Void Main(String Args Là Gì) - Học Tốt