如何测试程序运行占用的内存大小?有什么相关的api么?
顺便问下:class My{
....
}LinkedList<My> l = new LinkedList<My>();
for(int i = 0;i<10;i++){
l.add(new My());
}我想吧l转换为map[]的,
为什么 map[] m = (map[])l.toArray();在运行的时候报错?
而 map[] temp = new map[]{};
map[] m = l.toArray(temp);就没错。。
LinkedList里面的toArray(T[] a) 的a必须像上面的temp一样先声明么?
顺便问下:class My{
....
}LinkedList<My> l = new LinkedList<My>();
for(int i = 0;i<10;i++){
l.add(new My());
}我想吧l转换为map[]的,
为什么 map[] m = (map[])l.toArray();在运行的时候报错?
而 map[] temp = new map[]{};
map[] m = l.toArray(temp);就没错。。
LinkedList里面的toArray(T[] a) 的a必须像上面的temp一样先声明么?
public class T
{
public static void main(String[] args) throws Exception
{
// 创建 1000 个 String
String strA[] = new String[1000];
long start = 0;
long end = 0;
// 先垃圾回收
System.gc();
start = Runtime.getRuntime().freeMemory();
for (int i = 0; i < 1000; i ++)
strA[i] = new String();
// 快要计算的时,再清理一次
System.gc();
end = Runtime.getRuntime().freeMemory();
System.out.println("一个String对象占内存:" + (start - end)/1000.0);
}
}
顺便问下:有人可以回答下我的1楼问的那个 顺便问下 的问题么?谢
public class T {
public static void main(String[] args) throws Exception {
// 创建 100000 个 map
map strA[] = new map[100000];
long start = 0;
long end = 0; // 先垃圾回收
System.gc(); start = Runtime.getRuntime().freeMemory();
for (int i = 0; i < 100000; i++)
strA[i] = new map("",""); // 快要计算的时,再清理一次
System.gc(); end = Runtime.getRuntime().freeMemory(); System.out.println("一个map对象占内存:" + (start - end) / 100000.0); }
}
class map {
private String key; private String val; public map(String k, String v) {
key = k;
val = v;
}}
为什么 map[] m = (map[])l.toArray();在运行的时候报错?
而 map[] temp = new map[]{};
map[] m = l.toArray(temp);就没错。。
LinkedList里面的toArray(T[] a) 的a必须像上面的temp一样先声明么?
可以这样:
LinkedList<map> l = new LinkedList<map>();
map[] m = l.toArray(new map[0]);