-1

何が

Runtime.getRuntime().maxMemory();

.freeMemory();

戻る?4 GB RAM のラップトップで奇妙な値が表示されます。それはメガバイトですか、それともキロバイトですか?

スライダーを 512MB に分割する必要がありますが、1024MB ごとに番号を付けます

それは私のループです

        ram = new JSlider();
    ram.setMinimum(512);
    ram.setPaintTicks(true);
    ram.setMajorTickSpacing(512);
    ram.setValue(512);
    ram.setPreferredSize(new Dimension(750, 50));
    ram.setVisible(true);
    Hashtable<Integer, JLabel> labelTable = new Hashtable<Integer, JLabel>();
    int mbs = 1024;
    while(mbs <= Runtime.getRuntime().freeMemory()/1024){       
        labelTable.put(mbs, new JLabel(Integer.toString(mbs)));
        mbs += 1024;
    }
    ram.setLabelTable(labelTable);
    ram.setPaintLabels(true);

        frame.add(ram)
4

2 に答える 2

1

Java ドキュメントから

freeMemory

public long freeMemory()

Java 仮想マシンの空きメモリの量を返します。gc メソッドを呼び出すと、freeMemory によって返される値が増加する場合があります。

戻り値: 将来割り当てられるオブジェクトに現在使用可能なメモリの合計量の概算 (バイト単位) 。

maxMemory

public long maxMemory()

Java 仮想マシンが使用しようとするメモリの最大量を返します。固有の制限がない場合は、値 Long.MAX_VALUE が返されます。

戻り値: 仮想マシンが使用しようとするメモリの最大量 (バイト単位)

(すみません、コメントに収まりませんでした)

于 2013-09-24T06:31:50.070 に答える
0

javadoc には、値がバイト単位になると記載されています。

将来割り当てられるオブジェクトに現在使用可能なメモリの合計量の概算 (バイト単位)。

于 2013-09-24T06:32:34.173 に答える