Khối tĩnh trong Java là gì

Khoi Tinh Trong Java La Gi



Trong khi lập trình bằng Java, có thể có yêu cầu viết một bộ mã mà lập trình viên cần thực thi trong quá trình tải lớp vào bộ nhớ. Chẳng hạn, nhắc người dùng bằng một số thông báo trước các chức năng được áp dụng trong chức năng chính hoặc ưu tiên một chức năng quan trọng bằng cách tách nó ra. Trong những trường hợp như vậy, các khối tĩnh trong Java hỗ trợ hợp lý hóa và quản lý các chức năng ở cuối nhà phát triển.

Blog này sẽ minh họa việc sử dụng các khối tĩnh trong Java.

'Khối tĩnh' trong Java là gì?

Một khối được phân bổ là “ tĩnh ” bằng cách liên kết từ khóa tĩnh với nó. Các khối này có mức độ ưu tiên cao hơn “ chủ yếu ” sao cho chúng được thực hiện trước “ chủ yếu() ' phương pháp.







cú pháp



lớpChính {
tĩnh {
Hệ thống . ngoài . bản in ( 'Chào thế giới' ) ;
} }

Theo cú pháp trên, khối bao gồm được gán là “ tĩnh ” và sẽ được gọi trước hàm main.



Cân nhắc quan trọng về “Khối tĩnh”

  • Các khối tĩnh trong Java được gọi tự động khi lớp được nạp vào bộ nhớ.
  • Chúng chỉ được thực hiện một lần, ngay cả khi nhiều đối tượng lớp được tạo.
  • Không có giới hạn/hạn chế về số lượng khối khởi tạo tĩnh trong một lớp.
  • Các khối này cũng có thể được sử dụng để khởi tạo các biến tĩnh.

Ví dụ 1: Sử dụng “Khối tĩnh” trong Java

Trong ví dụ này, khối tĩnh có thể được sử dụng để quan sát trình tự mà nó có thể được thực thi đối với khối chính:





lớp công khai Ví dụ {
tĩnh {
Hệ thống . ngoài . bản in ( 'Đây là một khối tĩnh!' ) ;
}
publicstaticvoidmain ( Sợi dây [ ] tranh luận ) {
Hệ thống . ngoài . bản in ( 'Đây là chính!' ) ;
} }

Trong khối mã trên, chỉ cần bao gồm một “ tĩnh ” khối tích lũy thông báo đã nêu và trong bước tiếp theo, hiển thị thông báo đã cho trong “ chủ yếu ”.

đầu ra



Trong kết quả này, có thể phân tích rằng khối tĩnh được gọi trước khối chính.

Ví dụ 2: Thực thi giá trị tĩnh trong “Khối tĩnh” trong Java

Trong hình minh họa cụ thể này, một giá trị tĩnh có thể được khởi tạo trong khối tĩnh và sau đó được hiển thị trong khối chính:

lớp tùy chỉnh {
tĩnh tôi ;
tĩnh {
Tôi = 10 ;
Hệ thống . ngoài . bản in ( 'Tĩnh Khối gọi!' ) ;
} }
lớp công khai Ví dụ {
publicstaticvoidmain ( Sợi dây [ ] tranh luận ) {
Hệ thống . ngoài . bản in ( phong tục. Tôi ) ;
} }

Trong các dòng mã trên:

  • Trước hết, tạo một lớp có tên “ phong tục ”.
  • Trong lớp, chỉ định một “ tĩnh ” biến và khởi tạo nó trong phân bổ “ tĩnh ' khối.
  • Cuối cùng, gọi biến được khởi tạo trong biến chính bằng cách tham chiếu đến lớp chứa nó.

đầu ra

Trong kết quả trên, có thể thấy rằng, tương tự như vậy, “ tĩnh ” khối được thực thi trước và giá trị khởi tạo trong khối này cũng được hiển thị tương ứng.

Ví dụ 3: Thực thi “Static Block” trước Constructor

Trong ví dụ này, khối tĩnh có thể được chỉ định trước hàm tạo và mức độ ưu tiên cũng như việc thực thi của nó có thể được quan sát tương ứng:

lớp tùy chỉnh {
tĩnh {
Hệ thống . ngoài . bản in ( 'Đây là một khối tĩnh' ) ;
}
phong tục ( ) {
Hệ thống . ngoài . bản in ( 'Đây là một nhà xây dựng' ) ;
} }
lớp công khai Ví dụ {
publicstaticvoidmain ( Sợi dây [ ] tranh luận ) {
đối tượng tùy chỉnh1 = mới phong tục ( ) ;
obj2 tùy chỉnh = mới phong tục ( ) ;
} }

Trong các dòng mã trên:

  • Tương tự như vậy, định nghĩa một lớp có tên “ phong tục ”.
  • Bây giờ, chỉ định “ tĩnh ” khối và bao gồm hàm tạo của lớp, tức là, “ phong tục() ” lần lượt có các thông điệp đã nêu.
  • Về cơ bản, hãy tạo hai đối tượng của lớp đã tạo để gọi các chức năng của lớp theo thứ tự ưu tiên tương ứng.

đầu ra

Trong đầu ra này, những cân nhắc sau đây có thể được thực hiện:

  • Khối tĩnh được ưu tiên cao hơn so với hàm tạo chứa trong đó.
  • Hai đối tượng của lớp được tạo, nhưng khối tĩnh được thực hiện một lần, như đã thảo luận trước đó.

Phần kết luận

Các ' khối tĩnh ” trong Java chỉ thực thi một lần khi một lớp được tải vào bộ nhớ và được thực thi trước “ chủ yếu() ' phương pháp. Các ví dụ được thảo luận trong bài viết chứng minh rằng các khối này có mức độ ưu tiên cao hơn hàm tạo chính và hàm tạo lớp tương ứng và chỉ được gọi một lần, bất kể số lượng đối tượng được tạo. Blog này đã thảo luận về việc sử dụng các khối tĩnh trong Java.