==== 6.2.8 Class and Object Access Behavior ==== A static class field is accessed when one of the following Java programming language bytecodes is executed: getstatic, putstatic An object is accessed when one of the following Java programming language bytecodes is executed using the object's reference: getfield, putfield, invokevirtual, invokeinterface, athrow, aload, astore, arraylength, checkcast, instanceof refers to the various types of array bytecodes, such as **baload**, **sastore**, etc. This list also includes any special or optimized forms of these bytecodes that can be implemented in the Java Card VM, such as **getfield_b** and **getfield_s_this**. Prior to performing the work of the bytecode as specified by the Java VM, the Java Card VM will perform an access check on the referenced object. If access is denied, a **java.lang.SecurityException** is thrown. The access checks performed by the Java Card VM depend on the type and owner of the referenced object, the bytecode, and the currently active context. They are described in the following sections.