垃圾收集器
Serial收集器
Serial收集器是一个单线程收集器,它进行垃圾收集时,必须暂停其他所有的工作线程(Stop the world),直到它垃圾收集结束 client模式。
ParNew收集器<br>
其实就是Serial收集器的多线程版本,在运行在Server模式下的虚拟机中,ParNew收集器是首选的新生代收集器。
CMS收集器
一款并发收集器(用户线程与垃圾收集线程同时执行),是一种以获取最短回收停顿时间为目标的收集器,它是基于标记-清除算法实现的初始标记、重新标记仍然需要"Stop the World",但是它们的速度都很快。初始标记只是标记一下GC Roots能直接关联到的对象,重新标记是为了修正并发标记期间因为用户线程继续运作而导致标记产生变动的那一部分对象的标记记录。(初始标记→并发标记→重新标记→并发清除)
<span style="color: rgb(0, 0, 0); font-family: verdana, "ms song", 宋体, Arial, 微软雅黑, Helvetica, sans-serif; font-size: 12px;">ClassLoader类加载器</span>
原理
加载类的顺序使用双亲委托方式,也就是说当加载一个类的时候,首先调用父级
分类
BootstrapClassLoader
加载java_home的jre下的lib等相关文件
ExtClassLoader
加载java_home的jre的lib的ext下相关的文件
AppClassLoader
加载classpath下的类和配置文件
CustomerClassLoader
凡是java开头的类都是由BootstrapClassLoader加载的,所以比如自己加载一个string说不可能的
继承ClassLoader,复写findClass类,还有defindClass是什么鬼??