摘要: 类加载 类加载过程 1.加载 ①将类的字节码载入方法区,并创建.class对象。 ②如果此类的父类没有加载,先加载父类。 ③加载是懒惰执行。 2.链接 ①验证-验证类是否符合字节码规范,合法性、安全性检测。 ②准备-为static变量分配空间,设置默认值。 ③解析-将常量池的符号引用解析为直接引用。 阅读全文
posted @ 2022-08-26 17:23 临易 阅读(25) 评论(0) 推荐(0)
摘要: java创建对象的过程主要分为一下五个步骤: (1)类加载检查 Java虚拟机(jvm)在读取一条new指令时候,首先检查能否在常量池中定位到这个类的符号引用,并且检查这个符号引用代表的类是否被加载、解析和初始化。如果没有,则会先执行相应的类加载过程。 (2)内存分配 在通过(1)后,则开始为新生的 阅读全文
posted @ 2022-08-26 16:54 临易 阅读(81) 评论(0) 推荐(0)
摘要: 内存溢出 项目中什么情况下会内存溢出,怎么解决的 1.误用固定大小线程池 当前线程任务超时后,其余任务将被加入任务队列中,任务对象所耗费的内存会导致整个堆内存耗尽,导致内存溢出异常。 解决方法: 不要用工具类提供的线程池来创建线程池。而是使用线程池时自己使用线程池的构造方法,根据实际情况设置一个有大 阅读全文
posted @ 2022-08-26 14:48 临易 阅读(40) 评论(0) 推荐(0)
摘要: JVM垃圾回收 GC和分代回收算法 GC的目的: 实现无用对象内存自动释放,减少内存碎片,加快分配速度。 GC要点: 1.回收区域是堆内存,不包括虚拟机栈,在方法调用结束会自动释放方法占用的内存。 2.判断无用对象,使用可达性分析算法,三色表记法标记存活对象,回收未标记对象。 3.GC具体的实现称为 阅读全文
posted @ 2022-08-26 11:54 临易 阅读(54) 评论(0) 推荐(0)