public abstract class ExplicitMemory extends MemoryArea
修飾子とタイプ | メソッドと説明 |
---|---|
static int |
countExplicitMemories()
ExplicitヒープにあるExplicitメモリーブロックの個数を返却します。
|
long |
freeMemory()
Explicitメモリーブロックが利用できるメモリーサイズを返却します。
|
static java.lang.management.MemoryUsage |
getMemoryUsage()
Explicitヒープの利用状況を返却します。
|
boolean |
isActive()
このオブジェクトが表すExplicitメモリーブロックが処理できる状態であるかどうかを返却します。
|
boolean |
isReclaimed()
このオブジェクトが表すExplicitメモリーブロックが解放予約状態または解放済み状態であるかどうかを返却します。
|
java.lang.Object |
newArray(java.lang.Class type,
int length)
パラメータtypeの表すクラスのパラメータlength長の配列インスタンスをこのオブジェクトが表すExplicitメモリーブロックに直接生成します。
|
java.lang.Object |
newArray(java.lang.Class type,
int[] dimensions)
dimensions.length次元の配列インスタンスをこのオブジェクトが表すExplicitメモリーブロックに直接生成します。
|
java.lang.Object |
newInstance(java.lang.Class type)
パラメータtypeの表すクラスのインスタンスをこのオブジェクトが表すExplicitメモリーブロックに直接生成します。
|
java.lang.Object |
newInstance(java.lang.Class type,
java.lang.Object... args)
パラメータtypeの表すクラスのインスタンスをExplicitメモリーブロックに直接生成します。
|
java.lang.Object |
newInstance(java.lang.reflect.Constructor cons,
java.lang.Object... args)
パラメータconsが表すコンストラクタをパラメータargsで実行し、このオブジェクトが表すExplicitメモリーブロックに直接生成します。
|
static void |
reclaim(ExplicitMemory... areas)
パラメータareasのすべての要素に対して解放予約をします。
|
static void |
reclaim(ExplicitMemory area)
パラメータareaがnull以外の値の場合に共通エラーチェックで処理できると判定されたとき、パラメータareaに排他処理を実施してから、
パラメータareaの表すExplicitメモリーブロックを解放予約します。
|
static void |
reclaim(ExplicitMemory area0,
ExplicitMemory area1)
パラメータarea0、area1の表すExplicitメモリーブロックを解放予約します。
|
static void |
reclaim(java.lang.Iterable<ExplicitMemory> areas)
パラメータareasのすべての要素に対して解放予約をします。
|
void |
setName(java.lang.String name)
Explicitメモリーブロックに名称を設定します。
|
java.lang.String |
toString()
このオブジェクトの文字列表現を返却します。
|
long |
totalMemory()
Explicitメモリーブロックの確保済み総サイズを返却します。
|
long |
usedMemory()
Explicitメモリーブロックの使用されているメモリーのサイズを返却します。
|
getName
public void setName(java.lang.String name)
注: 複数のExplicitMemoryに同じ名前を設定できるため、名称に一意性はありません。
setName
クラス内 MemoryArea
name
- 名称を表す文字列(String)を指定します。java.lang.NullPointerException
- パラメータnameの値がnullです。public boolean isActive()
true:処理できる状態です。有効なExplicitメモリーブロックで、サブ状態がEnableの場合に返却します。
false:処理できない状態です。次のどちらかの状態の場合にこの値を返却します。
注: ExplicitMemoryは、一度無効状態になった場合、再度有効状態になることはありません。
public java.lang.Object newInstance(java.lang.Class type) throws java.lang.NullPointerException, java.lang.InstantiationException, java.lang.IllegalAccessException, java.lang.reflect.InvocationTargetException, java.lang.NoSuchMethodException, java.lang.SecurityException, InaccessibleMemoryAreaException
newInstance
クラス内 MemoryArea
type
- 直接生成する配列インスタンスのクラスです。共通エラーチェック
を参照してください。java.lang.NullPointerException
- パラメータtype、またはパラメータtypeが表すクラスがnullです。java.lang.SecurityException
- SecurityManagerがあり、かつ次のうちどれかに当てはまる場合にスローされます。
java.lang.NoSuchMethodException
- パラメータtypeまたはパラメータtypeが表すクラスに、publicのパラメータなしコンストラクタがありません。java.lang.ExceptionInInitializerError
- typeのクラス初期化に失敗しました。java.lang.InstantiationException
- パラメータtypeまたはパラメータtypeが表すクラスが抽象クラスまたはインタフェースです。java.lang.reflect.InvocationTargetException
- パラメータtypeまたはパラメータtypeが表すクラスのコンストラクタの実行で例外が発生しました。java.lang.IllegalAccessException
- クラスまたはそのnullaryコンストラクタにアクセスできません。InaccessibleMemoryAreaException
- サポートされていない機能です。public java.lang.Object newInstance(java.lang.Class type, java.lang.Object... args) throws java.lang.InstantiationException, java.lang.IllegalAccessException, java.lang.IllegalArgumentException, java.lang.reflect.InvocationTargetException, java.lang.NoSuchMethodException, java.lang.SecurityException, InaccessibleMemoryAreaException
注:
パラメータtypeには、publicクラスを与えることを推奨します。
プリミティブ型を引数とするコンストラクタを呼び出すことはでききません。
プリミティブ型を引数とするコンストラクタを呼び出す場合は、newInstance(Constructor, Object...)
を使用します。
次にnewInstance(Constructor, Object...)
を使用したコード例を示します。
import JP.co.Hitachi.soft.jvm.MemoryArea.*;
import java.lang.reflect.*;
public class test1 {
public static void main(String[] args) throws Exception {
ExplicitMemory em = new BasicExplicitMemory();
TheClass obj = null;
Constructor cons = TheClass.class.getConstructor(
new Class[]{int.class}
);
// 実行成功
obj = (TheClass)em.newInstance(cons,1);
// NoSuchMethodExceptionをスロー
obj = (TheClass)em.newInstance( TheClass.class,1);
}
}
newInstance
クラス内 MemoryArea
type
- 直接生成する配列インスタンスのクラスです。args
- コンストラクタに渡すパラメータです。共通エラーチェック
を参照してください。
注: arg_typesは、パラメータargsの各要素をこのオブジェクトとしてObject.getClass()を呼び出した結果を要素とするClass配列です。
java.lang.NullPointerException
- パラメータtypeまたはパラメータargsの値のどちらかまたは両方がnullです。java.lang.SecurityException
- curityManagerがあり、かつ次のうちどれかに当てはまる場合にスローされます。
java.lang.NoSuchMethodException
- パラメータargsの要素と同じ型のパラメータを持つpublicコンストラクタがパラメータtypeの表すクラスにありません。java.lang.ExceptionInInitializerError
- パラメータtypeまたはパラメータtypeが表すクラスの初期化に失敗しました。java.lang.InstantiationException
- パラメータtypeまたはパラメータtypeが表すクラスが抽象クラスまたはインタフェースです。java.lang.reflect.InvocationTargetException
- パラメータtypeまたはパラメータtypeが表すクラスのコンストラクタの実行で例外が発生しました。InaccessibleMemoryAreaException
- サポートされていない機能です。java.lang.IllegalAccessException
- ConstructorオブジェクトがJava言語アクセス制御を実施するため、基本となるコンストラクタにアクセスできません。java.lang.IllegalArgumentException
- 次のどれかに当てはまる場合にスローされます。
public java.lang.Object newInstance(java.lang.reflect.Constructor cons, java.lang.Object... args) throws java.lang.InstantiationException, java.lang.IllegalAccessException, java.lang.IllegalArgumentException, java.lang.reflect.InvocationTargetException, InaccessibleMemoryAreaException
注: パラメータconsには、publicクラスのコンストラクタを与えることを推奨します。
newInstance
クラス内 MemoryArea
cons
- 直接生成する配列インスタンスのコンストラクタを指定します。args
- コンストラクタに渡すパラメータを指定します。共通エラーチェック
を参照してください。java.lang.NullPointerException
- パラメータconsまたはパラメータargsの値のどちらかまたは両方がnullです。java.lang.ExceptionInInitializerError
- パラメータconsが表すコンストラクタでクラスの初期化に失敗しました。java.lang.InstantiationException
- パラメータconsが表すコンストラクタが抽象クラスです。java.lang.IllegalArgumentException
- パラメータconsが示すコンストラクタのパラメータとパラメータargsが一致しません。java.lang.IllegalAccessException
- ConstructorオブジェクトがJava言語アクセス制御を実施するため、基本となるコンストラクタにアクセスできません。java.lang.reflect.InvocationTargetException
- パラメータconsまたはパラメータargsが表すコンストラクタの実行で例外が発生しました。InaccessibleMemoryAreaException
- サポートされていない機能です。public java.lang.Object newArray(java.lang.Class type, int length) throws java.lang.NegativeArraySizeException, InaccessibleMemoryAreaException, java.lang.IllegalArgumentException
newArray
クラス内 MemoryArea
type
- 直接生成する配列インスタンスのクラスを指定します。length
- 直接生成する配列インスタンスの長さを指定します。共通エラーチェック
を参照してください。java.lang.NullPointerException
- パラメータtypeがnullです。java.lang.NegativeArraySizeException
- パラメータlengthが0未満です。java.lang.IllegalArgumentException
- パラメータlengthが0以上で、パラメータtypeが255次元以上の配列クラスまたはVoid.TYPEです。InaccessibleMemoryAreaException
- サポートされていない機能です。public java.lang.Object newArray(java.lang.Class type, int[] dimensions) throws InaccessibleMemoryAreaException, java.lang.IllegalArgumentException, java.lang.NegativeArraySizeException
newArray
クラス内 MemoryArea
type
- 直接生成する配列インスタンスのクラスを指定します。dimensions
- 直接生成する配列インスタンスの次元数および要素数を指定します。共通エラーチェック
を参照してください。java.lang.NullPointerException
- パラメータdimensionsまたはパラメータtypeのうち、どちらかのパラメータの値または両方のパラメータの値がnullです。java.lang.NegativeArraySizeException
- パラメータdimensionsが負の値を要素に持っています。java.lang.IllegalArgumentException
- 次のどれかに当てはまる場合にスローされます。
InaccessibleMemoryAreaException
- サポートされていない機能です。public long freeMemory() throws InaccessibleMemoryAreaException
freeMemory
クラス内 MemoryArea
共通エラーチェック
を参照してください。
0:APIの処理ができない場合に返却します。
このオブジェクトが表すExplicitメモリーブロックが利用できるメモリーサイズ(バイト数):APIの処理ができる場合は、このオブジェクトが表すExplicitメモリーブロックが利用できるメモリーサイズをlong型で返却します。
InaccessibleMemoryAreaException
- サポートされていない機能です。public long usedMemory() throws InaccessibleMemoryAreaException
usedMemory
クラス内 MemoryArea
共通エラーチェック
を参照してください。InaccessibleMemoryAreaException
- サポートされていない機能です。public long totalMemory() throws InaccessibleMemoryAreaException
totalMemory
クラス内 MemoryArea
0:APIの処理ができない場合に返却します。
このオブジェクトが表すExplicitメモリーブロックの確保済みの総メモリーサイズ(バイト数):
APIの処理ができる場合は、このオブジェクトが表すExplicitメモリーブロックが利用できるメモリーサイズをlong型で返却します。
共通エラーチェック
を参照してください。InaccessibleMemoryAreaException
- サポートされていない機能です。public static void reclaim(ExplicitMemory area) throws InaccessibleMemoryAreaException
注: 解放予約をするだけで、解放処理はしません。 オプションHitachiExplicitMemoryAutoReclaimがONの場合(-XX:+HitachiExplicitMemoryAutoReclaimを指定している場合)、 自動解放されたあとのExplicitメモリーブロックは、明示管理ヒープ自動配置設定ファイルで生成されたExplicitメモリーブロックと同じ動作をします。 この動作をさせたくない場合は、オプションHitachiExplicitMemoryAutoReclaimをOFF(-XX:+HitachiExplicitMemoryAutoReclaimを指定しない)にしてください。
area
- 解放予約をするExplicitメモリーブロックを指定します。InaccessibleMemoryAreaException
- サポートされていない機能です。public static void reclaim(ExplicitMemory area0, ExplicitMemory area1) throws InaccessibleMemoryAreaException
注: 解放予約をするだけで、解放処理はしません。 オプションHitachiExplicitMemoryAutoReclaimがONの場合(-XX:+HitachiExplicitMemoryAutoReclaimを指定している場合)、 自動解放されたあとのExplicitメモリーブロックは、明示管理ヒープ自動配置設定ファイルで生成されたExplicitメモリーブロックと同じ動作をします。 この動作をさせたくない場合は、オプションHitachiExplicitMemoryAutoReclaimをOFF(-XX:+HitachiExplicitMemoryAutoReclaimを指定しない)にしてください。
area0
- 解放予約をするExplicitメモリーブロックその1を指定します。area1
- 解放予約をするExplicitメモリーブロックその2を指定します。InaccessibleMemoryAreaException
- サポートされていない機能です。public static void reclaim(ExplicitMemory... areas) throws InaccessibleMemoryAreaException
注: 解放予約をするだけで、解放処理はしません。 オプションHitachiExplicitMemoryAutoReclaimがONの場合(-XX:+HitachiExplicitMemoryAutoReclaimを指定している場合)、 自動解放されたあとのExplicitメモリーブロックは、明示管理ヒープ自動配置設定ファイルで生成されたExplicitメモリーブロックと同じ動作をします。 この動作をさせたくない場合は、オプションHitachiExplicitMemoryAutoReclaimをOFF(-XX:+HitachiExplicitMemoryAutoReclaimを指定しない)にしてください。
areas
- 解放予約をするExplicitメモリーブロックを持つ配列を要素に指定します。java.lang.NullPointerException
- パラメータareasがnullです。InaccessibleMemoryAreaException
- サポートされていない機能です。public static void reclaim(java.lang.Iterable<ExplicitMemory> areas) throws InaccessibleMemoryAreaException
注: 解放予約をするだけで、解放処理はしません。 オプションHitachiExplicitMemoryAutoReclaimがONの場合(-XX:+HitachiExplicitMemoryAutoReclaimを指定している場合)、 自動解放されたあとのExplicitメモリーブロックは、明示管理ヒープ自動配置設定ファイルで生成されたExplicitメモリーブロックと同じ動作をします。 この動作をさせたくない場合は、オプションHitachiExplicitMemoryAutoReclaimをOFF(-XX:+HitachiExplicitMemoryAutoReclaimを指定しない)にしてください。
areas
- 解放予約をするExplicitメモリーブロックのイテレーターを指定します。java.lang.NullPointerException
- パラメータareasの値がnullです。InaccessibleMemoryAreaException
- サポートされていない機能です。public boolean isReclaimed()
true:このオブジェクトが表すExplicitメモリーブロックが解放予約状態または解放済み状態の場合に返却します。
false:このオブジェクトが表すExplicitメモリーブロックが有効な状態の場合に返却します。
public static java.lang.management.MemoryUsage getMemoryUsage()
init:Explicitヒープの初期値です。常に0となります。
used:Explicitヒープの使用されているメモリーサイズ(バイト数)です。
committed:Explicitヒープの確保済みサイズ(バイト数)です。
max:-XX:HitachiExplicitHeapMaxSizeで指定した最大Explicitヒープサイズの値(バイト数)です。ただし、オプションHitachiUseExplicitMemoryがOFFの場合(-XX:+HitachiUseExplicitMemoryを指定した場合)は0を返却します。
注:MemoryUsageインスタンスが持つ値はgetMemoryUsage()を呼び出した時点での値です。MemoryUsageインスタンスから各フィールドを読み出した時点では、実際の値と異なる場合があります。
public static int countExplicitMemories()
注:
public java.lang.String toString()
toString
クラス内 MemoryArea
Copyright (C) 2014, 2015, Hitachi, Ltd.
Copyright (C) 2013, Oracle and/or its affiliates. All rights reserved.