本文目录一览:
java内存分析
很简单,构造时候就已经"Hello World"做了临时存储了
String temp = "Hello World";
String str = new String(temp)
如何分析java的内存占用情况
hi:
虚拟机的内存情况查看,使用Runtime类进行。如下:
//虚拟机内存使用量查询
class RamRun implements Runnable{
private Runtime runtime;
public void run(){
try{
runtime=Runtime.getRuntime();
System.out.println("处理器的数目"+runtime.availableProcessors());
System.out.println("空闲内存量:"+runtime.freeMemory()/ 1024L/1024L + "M av");
System.out.println("使用的最大内存量:"+runtime.maxMemory()/ 1024L/1024L + "M av");
System.out.println("内存总量:"+runtime.totalMemory()/ 1024L/1024L + "M av");
}catch(Exception e){
e.printStackTrace();
}
}
}
java内存分析(栈堆)
首先SuperWords a1=new SuperWords();
SubWords a2=new SubWords();
分别在栈中产生了一个内存块a1指向堆中的SuperWords和一个内存块a2指向堆中的SubWords!因为SubWords是继承SuperWords的!所以它在内存中的图形为SuperWords内存块中有个SubWords的内存块!
a1.set_words1("cool");
在a1指向的堆块new出来的内存中的属性words1值赋为cool!
a2.set_words2("beautiful");
在a2指向的堆块中new出来的内存中的属性words2的值赋为beautiful!
a1.show_message1();
调用 System.out.println("The whole words is "+words1+" "+words2); 打印
因为words2没有赋值所以输出为:The whole words is cool null
a2.show_message2();
调用System.out.println("The whole words is "+words2+" "+words1); 打印
因为word1没有赋值所以输出为:The whole words is beautiful null!