Thứ tự sử dụng thông thường của các bổ ngữ được đề cập trong Đặc tả ngôn ngữ Java (chứ không phải Đặc tả máy ảo Java), ví dụ: đối với các bổ ngữ lớp, bạn sẽ tìm thấy định nghĩa sau (trích xuất):
ClassModifiers:
ClassModifier
ClassModifiers ClassModifier
ClassModifier: one of
Annotation public protected private
abstract static final strictfp
[....]
Nếu hai hoặc nhiều công cụ sửa đổi lớp (riêng biệt) xuất hiện trong khai báo lớp, thì theo thông lệ, mặc dù không bắt buộc, chúng xuất hiện theo thứ tự phù hợp với trình tự được hiển thị ở trên trong bản sản xuất cho ClassModifier. (dòng chữ nhỏ ở cuối đoạn văn!)
Bạn sẽ tìm thấy câu này ở một số nơi khác mà việc sử dụng các bổ ngữ được chỉ định, ví dụ ở đây đối với các bổ ngữ trường.
Cập nhật : Tôi đã thay thế "được chỉ định / khuyến nghị" bằng "thông lệ" để biến đây thành một câu trả lời có thể chấp nhận được. Hãy tính đến điều này nếu bạn đọc các bình luận ;-) (cảm ơn @EJP đã nói rõ điều này) - Tuy nhiên, tôi sẽ giới thiệu để sử dụng các phong tục đặt hàng.
Google cũng khuyến nghị sử dụng thứ tự tùy chỉnh được đề cập trong thông số Java.
public / protected / private
abstract
static
final
transient
volatile
synchronized
native
strictfp
Cập nhật : Có mộtsáng kiến " Hướng dẫn kiểu Java " mớidành cho các dự án trong cộng đồng OpenJDK. Nó cũng có một đề xuất cho một thứ tự bổ trợ và cũng bao gồmbổ trợ mặc định mớicủa Java 8.
public / private / protected
abstract
static
final
transient
volatile
**default**
synchronized
native
strictfp