JVM
文章平均质量分 90
学习中呢
一个本科小生的匍匐前进之路
展开
-
类加载机制
任何一个类在使用前都要经历过完整的加载,连接和初始化三个类加载步骤。经历过这三个步骤之后类型就能随时随地被使用了。从一个类型被加载进JVM算起,直至最终被卸载出内存为止,它的整个生命周期也就随之结束。类加载器类加载器是JVM执行类加载的前提。类加载器的主要任务是根据一个类的全限定名来读取 此类的二进制字节流到JVM内部,然后转换为一个与目标类对应的java.lang.Class对象实例。原创 2017-08-12 19:51:54 · 382 阅读 · 0 评论 -
jdk动态代理的实现原理
jdk动态代理实际上是jvm帮我们建成的类实现我们传入的接口,加载字节码到jvm。实际上就是帮我们拼接的字符串和我们传进去的接口进行拼接,然后生成字节码加载进虚拟机。代理类持有InvocationHandler的引用,当我们调用方法时实际上调用的是InvocationHandler的引用的invoke方法,invoke方法中再进行反射调用方法。jdk动态代理只能代理接口接口类:public inte原创 2017-11-30 03:01:37 · 680 阅读 · 1 评论 -
一看你就懂,超详细java中的ClassLoader详解
ClassLoader翻译过来就是类加载器,普通的java开发者其实用到的不多,但对于某些框架开发者来说却非常常见。理解ClassLoader的加载机制,也有利于我们编写出更高效的代码。ClassLoader的具体作用就是将class文件加载到jvm虚拟机中去,程序就可以正确运行了。但是,jvm启动的时候,并不会一次性加载所有的class文件,而是根据需要去动态加载。想想也是的,一次性加载那么多j转载 2017-11-30 04:16:07 · 379 阅读 · 0 评论 -
MyEclipse:An internal error occurred during: "Build Project". GC overhead limit exceeded
在使用Eclipse的Build Project功能时,提示以下错误: An internal error occurred during: “Build Project”. GC overhead limit exceeded 如图: 搜索的一下,是属于java.lang.OutOfMemoryError。 OOM大家都知道,就是JVM内存溢出了,那GC overhead转载 2017-11-25 14:57:43 · 748 阅读 · 0 评论 -
GC为什么影响程序效率
java垃圾回收机制 早期的jvm使用引用计数,现在大多数jvm采用对象引用遍历。对象引用遍历从一组对 象开始,沿着整个对象图上的每条链接,递归确定可到达(reachable)的对象。如果某对 象不能从这些根对象的一个(至少一个)到达,则将它作为垃圾收集。在对象遍历阶段, gc必须记住哪些对象可以到达,以便删除不可到达的对象,这称为标记(marking)对象。下一步,gc要删除不可到达的对象。删除时转载 2018-04-04 00:31:27 · 2305 阅读 · 0 评论