Java怎样查看系统物理内存大小?还有可用内存 那位大哥帮帮忙谢了。。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Runtime.getRuntime().get.....你就可以看到那些方法了.. Java不是很关心自己JVM之外的东西,想得到这些信息的话用JNI实现吧 拿JAVA做这个,也太那什么了吧 67.内存空间的获取 String str=new String(""); Properties p = System.getProperties(); str+="--- Memory Usage:"+'\n'; Runtime rt = Runtime.getRuntime(); str+="Total Memory = "+ rt.totalMemory()+'\n' + " Free Memory = " + rt.freeMemory()+'\n' +"Max Memory =" +rt.maxMemory() ;; jTextArea1.setText(str); 还是不对newman0708(nch):你程序里 Properties p = System.getProperties();有什么作用? 现在应该不会有问题了吧。 String str=""; str+="--- Memory Usage:"+'\n'; Runtime rt = Runtime.getRuntime(); str+="Total Memory = "+ rt.totalMemory()+'\n' + " Free Memory = " + rt.freeMemory()+'\n' +"Max Memory =" +rt.maxMemory() ;output--- Memory Usage:Total Memory = 2031616 Free Memory = 1748728Max Memory =134217728 VJ应该好做这个吧,虽然我没有用过VJ,据说就是因为VJ和操作系统结合在了一起,导致和原有java规范的不兼容,也导致了SUN取消了Microsoft的java使用权,so,VJ应该是很容易调用API函数的。 Runtime.getRuntime().totalMemory();晕,多看些相关的书,一些基本的东西应该了解的,我是说optimizeit等呵呵 解决:Runtime r = Runtime.getRuntime();float freeMemory = (float) r.freeMemory();float totalMemory = (float) r.totalMemory();我来解释一下你遇到的不解:你所看到的现象也是真的。之所以RunTime的函数报告的内存与你看到的不一样是因为java运行是以虚拟机为单位。她报告的都是虚拟机的情况。而在一个windows系统里,你可以启动安装多个虚拟机。而每个虚拟机在启动的时候,并不能得到windows系统的全部资源,jvm的资源也由windows来分配。windows所掌管的就是你硬件上的256M,而jvm得到的仅是部分。但对于运行在jvm里的java程序,当然只探测jvm的资源情况。如果你非要让java程序跑到jvm之外的环境去探测实际硬件环境,那就只有native code了。我晕~~还是不对啊我运行的结果和你的一模一样可我的内存是256M的而且可用内存肯定不对(不可能只有1M多) class memoryCheck{ public static void main(String[] args) { Runtime rt=Runtime.getRuntime(); System.out.println(rt.freeMemory()); System.out.println(rt.totalMemory()); } } 这本书讲的内容貌似不怎么基础 think in java 第五版 初学者问题 Window的dispose()方法,为什么激活不了windowClosing事件 html怎样动态获取applet的参数? java 实现dos下自动输入参数 推荐下书网址. 下面这个java多线程的笔试题怎么做? 急觅O'Reilly的《Java RMI》! (100分!)急!!!关于nio包的问题,为什么在别的机器运行错误? volatile 具体是什么意思? JDK路径设置全解 遇到过 java.lang.NoClassDefFoundError 的Java新手请进
你就可以看到那些方法了..
String str=new String("");
Properties p = System.getProperties();
str+="--- Memory Usage:"+'\n';
Runtime rt = Runtime.getRuntime();
str+="Total Memory = "+ rt.totalMemory()+'\n'
+ " Free Memory = "
+ rt.freeMemory()+'\n'
+"Max Memory ="
+rt.maxMemory() ;;
jTextArea1.setText(str);
newman0708(nch):你程序里 Properties p = System.getProperties();
有什么作用?
str+="--- Memory Usage:"+'\n';
Runtime rt = Runtime.getRuntime();
str+="Total Memory = "+ rt.totalMemory()+'\n'
+ " Free Memory = "
+ rt.freeMemory()+'\n'
+"Max Memory ="
+rt.maxMemory() ;
output
--- Memory Usage:
Total Memory = 2031616
Free Memory = 1748728
Max Memory =134217728
呵呵
Runtime r = Runtime.getRuntime();
float freeMemory = (float) r.freeMemory();
float totalMemory = (float) r.totalMemory();我来解释一下你遇到的不解:
你所看到的现象也是真的。之所以RunTime的函数报告的内存与你看到的不一样是因为java运行是以虚拟机为单位。她报告的都是虚拟机的情况。
而在一个windows系统里,你可以启动安装多个虚拟机。而每个虚拟机在启动的时候,并不能得到windows系统的全部资源,jvm的资源也由windows来分配。windows所掌管的就是你硬件上的256M,
而jvm得到的仅是部分。
但对于运行在jvm里的java程序,当然只探测jvm的资源情况。
如果你非要让java程序跑到jvm之外的环境去探测实际硬件环境,那就只有native code了。我晕~~
还是不对啊
我运行的结果和你的一模一样
可我的内存是256M的
而且可用内存肯定不对(不可能只有1M多)
public static void main(String[] args)
{
Runtime rt=Runtime.getRuntime();
System.out.println(rt.freeMemory());
System.out.println(rt.totalMemory());
}
}