JVM

java内存模型的进阶

2019-03-07  本文已影响29人  DaemonXiao

JVM三大性能调优参数-Xms -Xmx -Xss的含义?

java指令:java- Xms128m -Xmx128m -Xss256 -jar xxxx.jar

Java内存中堆和栈的区别?

存放内容:堆存放对象,栈存放指针(引用变量:指向堆地址),变量
管理方式:栈自动释放,对需要GC
空间大小:栈比堆小
碎片相关:栈产生的碎片远小于堆
分配方式:栈支持静态和动态分配,而堆支持动态分配
效率:栈的效率高

简单说说String的intern()方法

对于这个方法实在是很少用过,但它却是一个极为重要的方法,在理解java内存模型中。

String s = new String("abcf");
s.intern();

上述代码含义就是,(简单版)创建一个s字符串对象,然后把它的引用添加到常量池(也在堆中)。
(复杂版)JDK6:当调用intern方法时,如果字符串常量池先前已穿件出该字符串对象,则返回池中的该字符串的引用。否则,将此字符串添加到字符串常量池中,并返回该字符串对象的引用。
JDK6+:当调用inter方法时,如果字符串常量池先前已创建出该字符串对象,则返回池中的引用。否则,如果该字符串对象已经存在Java堆中,则将堆中此对象的引用添加到字符常量池中,并返回该对象引用;如果堆中不存在,则在池中创建该字符串并返回其应用。

Object的finalize()方法的作用是否与C++的析构函数作用相同?

上一篇 下一篇

猜你喜欢

热点阅读