1. 如何得到Java应用程序的可用内存?
2. 请说出下面例中的代码为什么可以运行?
class MainMethodNot
{
static
{
System.out.println("This java program have run without the run method");
System.exit(0);
}
}
3.class文件中的字符串采用何种编码,采用这种编码的好处是什么?
4.说说JVM原理?内存泄露与溢出区别,何时产生内存泄露?
2. 请说出下面例中的代码为什么可以运行?
class MainMethodNot
{
static
{
System.out.println("This java program have run without the run method");
System.exit(0);
}
}
3.class文件中的字符串采用何种编码,采用这种编码的好处是什么?
4.说说JVM原理?内存泄露与溢出区别,何时产生内存泄露?
解决方案 »
- 枚举什么?咋用?求解。。。。
- 【求助】关于与运算
- maven的plugin中,java的annotation写法是: @parameter expression="${project.build.directory}",这种语法怎么回事?求语法的参考指南
- 我想在JFram上显示一个数组,并对这个数组进行排序,请高手帮我改一下我写的程序。
- 菜鸟问题:使用JDBC访问本机ACCESS数据库,出现不能访问的问题,请教大侠!!!
- 关于java包层次关系的问题?
- 请问各位,我在applet中panel上面生成的图像怎么取下来啊!?生成一个image实例!
- 用itext生成pdf文件,请问如何解决中文问题。
- 寻找免费的Forum,FAQ,News,Events.
- selection change event for combo
- 急急急:java中如何让Label透明???
- 在页面中如何隐藏table?
new A();
2. 请说出下面例中的代码为什么可以运行?
静态代码块,JVM加载类时要先执行
3.class文件中的字符串采用何种编码,采用这种编码的好处是什么?
UNICODE
4.说说JVM原理?内存泄露与溢出区别,何时产生内存泄露?
泄露:内存被无用对象占用且不会被释放
溢出:JVM所能提供的内存不够用了
第四题jvm的原理:
是将.class 文件装入内存,并把这些.class 文件包含的伪指令解释为具体平台的机器指令,然后执行。内存溢出:在一个域中输入的数据超过了它的要求
理论上的求值方法是:Runtime.getRuntime().maxMemory()-Runtime.getRuntime().totalMemory()+Runtime.getRuntime().maxMemory() 这才是真正的虚拟机中的可用物理内存
理论上的求值方法是:Runtime.getRuntime().maxMemory()-Runtime.getRuntime().totalMemory()+Runtime.getRuntime().freeMemory() 这才是真正的虚拟机中的可用物理内存
Runtime.getRuntime().freeMemory()
2. 请说出下面例中的代码为什么可以运行?
静态代码块,JVM加载类时要先执行
3.class文件中的字符串采用何种编码,采用这种编码的好处是什么?
UNICODE
4.说说JVM原理?内存泄露与溢出区别,何时产生内存泄露?
泄露:内存被无用对象占用且不会被释放
溢出:JVM所能提供的内存不够用了
第四题的内存泄露
请见
http://www.ibm.com/developerworks/cn/java/l-JavaMemoryLeak/
java.lang.management.MemoryUsage mu = mmmx.getHeapMemoryUsage();
System.out.println(mu.getMax()/1024/1024);//最大内存 用double更好 单位M
System.out.println(mu.getUsed()/1024/1024);//已用内存
System.out.println("----"+(mu.getMax()/1024/1024-mu.getUsed()/1024/1024));//剩余内存
这是对的! 2. 请说出下面例中的代码为什么可以运行?
class MainMethodNot
{
static
{
System.out.println("This java program have run without the run method");
System.exit(0);
}
}由于static块在main方法执行之前执行,如果没有System.exit(0);那么上面的代码可以运行,但是会抛出异常!
这个小知识点很有用,在core java的静态变量中讲过
内存泄露指对象占有的资源没有释放,而溢出指内存空间不够用,出现其他数据被覆盖的现象!
举一个最明显的例子就是Windows 2000/XP以及微软Office2000及其后的产品。因为这些软件都是Unicode内核,因此,无论何种文字,都可以在上面正常显示,而且是同屏显示。以前,简体中文的Word文件拿到英文版打开就会是乱码,简体中文的程序在Windows英文版上运行会出现乱码,而现在一切都解决了。