各バイトコードの処理は, InterpreterRuntime クラスの以下のメソッドで行われる.
InterpreterRuntime::_new() -> instanceKlass::check_valid_for_instantiation() で new 対象のクラスをチェック (インターフェースや abstract クラスに対して instantiate しようとしていたら InstantiationError) -> instanceKlass::allocate_instance() でメモリの確保を行う -> (See: here for details)
InterpreterRuntime::newarray() -> oopFactory::new_typeArray() -> (See: here for details)
InterpreterRuntime::anewarray() -> oopFactory::new_objArray() -> (See: here for details)
InterpreterRuntime::multianewarray() -> objArrayKlass::multi_allocate() or typeArrayKlass::multi_allocate() -> (See: here for details)
See: here for details
See: here for details
java.lang.Class クラスは instantiate されない.
((cite: jdk/src/share/classes/java/lang/Class.java))
/*
* Constructor. Only the Java Virtual Machine creates Class
* objects.
*/
private Class() {}
See: here for details
See: here for details
See: here for details
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.