6、JVM
java 虚拟机里面的内容这篇文章大概能介绍个百分之七十,后面会继续深入补充了解
如何解决内存泄露问题
内存泄露是指对象占有空间而没办法正常释放空间造成内存泄露。java虚拟机本身有垃圾回收机制,但还是会存在内存泄露问题,归根到底是我们编程不规范的问题。
1、如果要释放对象,就必须使其的引用记数为0,只有那些不再被引用的对象才能被释放,
2、不同情况,比如:数据库连接(dataSourse.getConnection()),网络连接(socket)和io连接,以及使用其他框架的时候,除非其显式的调用了其close()方法(或类似方法)将其连接关闭,否则是不会自动被GC回收的。其实原因依然是长生命周期对象持有短生命周期对象的引用。比如ThreadLocal,用remove().
3、运行GC的函数是System.gc(),调用后启动垃圾回收器开始清理;以及一些清理工作,我们可以放到finalize()中
Java类加载器
jdk自带了三个类加载器:bootstrapClassLoader、ExtClassLoader、AppClassLoader.
bootstrapClassLoader:负责加载%java_home%lib下的jar包和class文件。
ExtClassLoader:负责加载%java_home%lib下ext文件夹下的jar包和class文件。
AppClassLoader:负责加载classPath下的类文件。
双亲委派模型
加载器首先并不会先自己加载,而是向上委托,实际是向上查找缓存,是否加载了该类,有则返回,没有则继续向上查找。委派到顶层之后,缓存中没有,则到加载路径中查找,有则加载返回,没有则向下查找。

浙公网安备 33010602011771号