• 締切済み

Javaでのメモリの使い方についてです。

Javaでのメモリの使い方についてです。 以下のサイトにクラスを継承したときの話が記載されていますが、 これは、メモリのどの領域についてでしょうか。 私の認識では、ヒープ領域ではなく、静的領域の話という認識です。 http://www.atmarkit.co.jp/fjava/rensai2/javaent04/javaent04.html#ap02

みんなの回答

  • salsberry
  • ベストアンサー率69% (495/711)
回答No.1

その例のlatitude, longitude, heightはインスタンスのフィールドなので、インスタンスを生成したときのヒープ領域の使用量の話です。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Javaにおけるメモリーの使い方についての質問です。

    Javaにおけるメモリーの使い方についての質問です。 以下のサイトには、Javaの継承は、スーパークラスのメモリ領域に、 サブクラスで使うメモリ領域を追加することなんだということが記載されています。 この説明(継承ではスーパークラスのメモリ領域にサブクラスでのメモリ領域を追加する)は、 インスタンスを作成したときの話でしょうか? もしインスタンスを作成したときの話であれば、例えば、GeographicInfo型のインスタンスを 1つ作り、その後にGeographicInfo3D型のインスタンスを1つ作ると、普通に考えれば それぞれで別のメモリ領域が確保されますが思いますが、この説明が正しいとすると、latitude、longitudeの領域は、それぞれで共通であるというように見受けられます。 そんなバカなことはありえないと思いますから、インスタンスを生成したときの話ではないと 思いますが、では、なんの時の話でしょうか。 http://www.atmarkit.co.jp/fjava/rensai2/javaent04/javaent04.html#ap02

    • ベストアンサー
    • Java
  • JVMでのメモリの使用率について

    OS(solaris)のコマンドにてjavaプロセスが使用しているメモリの使用率を把握したいと思っています。 自分の認識では大きく分けると ヒープ領域とネイティブ領域の二つがある認識なのですが、 JVM起動の際にオプションとしてヒープ領域を設定した場合、 ネイティブ領域の割り当てはどのようにして行われるのでしょうか? JAVA_OPTIONS="-hotspot -DWLSERVER_MAIN -Xms256m -Xmx256m -XX:NewSize=128m -XX:MaxNewSize=128m -XX:SurvivorRatio=8 -XX:MaxPermSize=128m 上記オプションにて起動し、OSのプロセス毎のメモリ使用率にて 起動したJVMのプロセスのメモリ使用量を確認すると下記のようになっています。 prstat -u weblogic PID USERNAME SIZE RSS STATE PRI NICE TIME CPU PROCESS/NLWP 26603 weblogic 515M 143M sleep 58 0 0:06.32 8.3% java/56 この場合 515MB - 256MB(ヒープ領域) = 259MB(ネイティブとして使用される領域) という認識でいいのでしょうか? 以上、宜しくお願いします。

  • メモリにロードされたクラスの判別方法

    javaを勉強し始めてまだ1週間の入門者です。 見当違いの事を書いているかもしれませんが、その場合は指摘下さい。 条件は下記通りです。 AクラスとBクラスがある。 AクラスからBクラスを呼び出す。 AクラスとBクラスには継承関係は無い。 BクラスがjavaVMのメモリ領域にロードされるタイミングは以下のタイミングの認識で宜しいでしょうか? 1.AクラスからBクラスのstatic変数が参照されたとき 2.AクラスからBクラスをインスタンス化したとき 上記認識が正しい場合ですが、プログラム上でBクラスがjavaVMのメモリ上にロードされているかを確認する方法があるかを調べていたのですが良くわかりませんでした。 クラスAを実行させる際に、javaのverboseオプションを使用してクラスがロードされているのを確認する事はできましたが、プログラム上で判定できないかと思いました。 検索サイトで調べてみると、ClassLoaderクラスを使用すれば出来そうな感じがしたのですが、使い方が分からず行き詰ってしまいました。 上記のように任意クラスがjavaVMのメモリ上にロードされているかいないかを判別する手法があるようでしたら、サンプル等がある場所だけでも良いので教えて頂けると助かります。 以上、よろしくお願い致します。

    • ベストアンサー
    • Java
  • サーブレットからBeanを呼び出すやり方

    AccessのDB接続部分をjava Beanで作成し、それをサーブレット側から呼び出して実行したいのですが、サーブレットからBeanを呼び出すやり方がわかりません。 またBeanのプログラムは http://www.atmarkit.co.jp/fjava/rensai/smartj02/smartj02_1.html#ap01 に書かれているものとほとんど変わらないものです。 初歩的な質問かと思いますがよろしくお願いします。

  • 仮想メモリ増加

    WindowsでJavaWebStartのアプリケーションを起動しています。 10日程起動したままにしておくとタスクマネージャのjavaw.exeの仮想プロセスが増加し続けています。 起動時は200M程度で10日後は1Gを超えています。 メモリリークかと考え調べましたがヒープ領域も非ヒープ領域も増えていません。 メモリの断片化かと考え仮想メモリ増加後にメモリクリーナも試しましたが、メモリは減少しません。 microsoftのvadumpも使い調べましたが、問題あるように見えません。 やはり、プログラムの問題でしょうか?それかjavaのコンパイラの問題でしょうか? どなたかご教授願います。 調査の手段だけでもいいです。

  • VB.NETのメモリ領域について

    VB.NETのメモリ領域について 以下の(1)~(12)の変数のために、 スタック領域、静的領域、ヒープ領域のどこのメモリが使われるか教えてください。 Class Sample   Dim a As Integer '(1)   Dim b As String = "BBB" '(2)   Shared c As Integer '(3)   Shared d As String = "DDD" '(4)   Sub X()     Dim f As Integer '(5)     Dim g As String = "GGG" '(6)     Static h As Integer '(7)     Static i As String = "III" '(8)   End Sub   Shared Sub Y()     Dim k As Integer '(9)     Dim l As String = "LLL" '(10)     Static m As Integer '(11)     Static n As String = "NNN" '(12)   End Sub End Class それぞれこんな認識で合ってますか? スタック領域 (1)(5)(9) スタック領域にポインタ+ヒープ領域に実体 (2)(6)(10) 静的領域 (3)(7)(11) 静的領域にポインタ+ヒープ領域に実体 (4)(8)(12)

  • Javaのヒープ領域について

    JDK6でのヒープ領域ですがJavaオプション-Xms、-Xmxで指定可能です。 調べてみたところデフォルト値はそれぞれ-Xmsが物理メモリの1/64、-Xmxが物理メモリの1/4とのことです。 実際にlinuxでfreeを実行すると4Gでした。 JavaでRuntime.getRuntime.maxMemory()をlinux上で実行したところ660Mとなってしましました。 物理メモリが4Gなので1/4で1Gではないのでしょうか? また、デフォルト値の算出方法が誤っていましたら教えてください。

  • Java visualVM 何を監視すれば・・・

    こんにちわ visualVMについて質問がございます。 わかる方いらっしゃれば、ぜひご教授お願い致します。 現在、JavaのJNIを使用し、C++のプログラム(他社製dll)を呼び出すシステムを開発しております。 その中で、プログラムを実行し、VMが落ちることもなく順調に走らせ、 問題なく終了すると、プログラムと同じフォルダに hs_err_pid5368.logというものが生成されます。 終了するたび1つずつ増えていきます。 調べたところ、JavaのVMが異常終了したときにVMから生成されるものでした。 さらに調べたところ、メモリ管理の問題や、コーディングの問題、クラスデータ共有の問題であることだとインターネットにありました。 ですので、これらの問題を解決しようと、 プログラムを見直して書き換えたり ヒープを増やして実行したり dllに問題がないか問い合わせたり クラスデータ共有を無効にして実行したりしても、改善されません。 そこで、visualVMでVMを監視することにしましたが CPUのどこを見ればいいのか メモリの何がいけないのか スレッドの・・・ヒープの・・・(以下略) 何がどうなったらVMに悪影響が出るのか わかりかねております。 わかる方いらっしゃれば、どうかご教授宜しくお願い致します。

  • java キーボード入力の構文の意味

    独学でJavaを学んでいるのですが、キーボードからの入力を可能にする構文の意味がよくわかりません。 その構文というのは BufferedReader br = new BufferedReader(new InputStreamReader(System.in)) なのですが、以下の意味理解で間違えていないでしょうか? 【構文としての意味】 Systemクラスのプロパティのinを仮引数にするInputStreamReaderクラスのメモリ領域を確保します。そしてそのメモリ領域を仮引数にするBufferedReaderクラスのメモリ領域を確保します。そしてそのメモリ領域をBurredReaderクラスの変数brに代入します。 【ストリームとしての意味】 標準入力はストリームの内、文字ストリームを通ります(選択します)。その時、バッファを介します。 多分間違っているかと思うのですが、もし修正してくださるのであれば、初心者にもわかル用に教えていただけると幸いです。 ちなみに私は「やさいいJava」をとりあえず読み終わった感じのレベルです。

  • やさしいJavaを読み終えて

    Java初心者です、 やっと"やさしいJava"を読み終えたのですが 次に読む本として何が相応しいのか分かりません。 自分としてはSwingなどでアプリや簡易ゲームなど作成したいです、 ですが未だクラスライブラリの使い方が良く分からないです。 継承やスレッドなど基礎中の基礎は覚えたのですが、 クラスライブラリの扱い方がちゃんと理解出来てないので ウィンドウ等を使ったGUIプログラムが作成出来ません。 何方かクラスライブラリの扱い方などが書いて有る書籍、 やさしいJavaの次に読む書籍など有りましたら教えて頂けませんか? もちろん書籍に限らずWebサイトでもOkです、 ご回答お待ちしております。

    • ベストアンサー
    • Java