-1

做什么

Runtime.getRuntime().maxMemory();

.freeMemory();

返回?我在我的 4 GB ram 笔记本电脑上得到了一些 strane 值。是 mbytes 字节还是 kbytes?

我需要将滑块分成 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 回答