Access Modifiers
Access modifiers คือ keywords ที่ใช้กับ classes, variables, methods, และ constructors เพื่อควบคุม access level ของพวกมัน
มี access modifiers 4 ตัวใน Java:
Default
เมื่อไม่ระบุ access modifier Java จะถือว่าเป็น default modifier Scope ของ default modifier จำกัดเฉพาะ ภายในแพ็กเกจPublic
Scope ของ public modifier คือเข้าถึงได้ ทุกที่ แม่นอกแพ็กเกจPrivate
Scope ของ private modifier คือเข้าถึงได้ ภายในคลาสตัวมันเองเท่านั้นProtected
Scope ของ protected modifier จำกัด ภายในแพ็กเกจและทุก subclasses
Non-access Modifiers
Non-access modifiers คือ keywords ที่ไม่เกี่ยวข้องกับ access level แตให้ special functionality เมื่อระบุ
Final
Final keyword ใช้กับ variable, method หรือ class ป้องกันไม่ให้แก้ไขเนื้อหา ตอนประกาศกับ class ป้องกันไม่ให้ extend ได้Static
Static modifier ใช้กับ class variables และ methods ที่เข้าถึงได้ โดยไม่ต้องมี instance ของคลาส Static variables มี single storage ทุก objects แชร์ single storage เดียวกัน เข้าถึงได้โดยตรงไม่ต้อง object Static methods ก็สามารถประกาศได้ main() method เป็น static method ยอดนิยม Static blocks ก็สามารถประกาศได้ และ execute ก่อน main() methodAbstract
abstract ใช้กับ class และ methods Abstract class ไม่สามารถ instantiate ได้ วัตถุประสงค์คือเพื่อถูก extend Abstract methods ประกาศโดยไม่มี body และจบด้วย semicolon ถ้าคลาสมี abstract method ควรระบุว่า abstract ด้วย คลาสที่ extend abstract class ต้อง implement abstract methods ทั้งหมดSynchronized
ระบุว่าเมธอดสามารถเข้าถึงได้โดย หนึ่ง thread ในเวลาเดียวกันTransient
Instance variable ถูก mark เป็น transient เพื่อบอก JVM ให้ ข้าม variable นั้น ตอน serialize object ที่ contain มันVolatile
Volatile keyword ใช้ mark java variable ว่า "being stored in main memory" หมายถึงทุกการอ่าน volatile variable จะอ่านจาก main memory ของคอมพิวเตอร์ ไม่ใช่ CPU cache และการเขียน volatile variable จะเขียนไป main memory ไม่ใช่แค่ CPU cacheStrictfp
Strictfp keyword ใน java รับรองว่าจะได้ผลลัพธ์เดียวกันบนทุก platform หากทำ operations บน floating-point variable