摘要: 怎么判定对象是否为垃圾对象 1.引用计数法 在每个对象中添加一个引用计数器,当有地方引用这个对象的时候,引用计数器就+1,当引用失效的时候,计数器的值就-1。任何时刻计数器为0的对象就是不可能再被使用的。 优点:容易实现 缺点:很难解决对象之间相互循环引用的问题 2.可达性分析 目前的JAVA虚拟机 阅读全文
posted @ 2022-08-25 22:14 -Lucas 阅读(186) 评论(0) 推荐(0)
摘要: 创建对象的几种方式 1. new关键字 Object obj = new Object(); 2. 反射 3.克隆 4.反序列化 创建对象的过程 1.创建过程 (1)检查是否加载过 虚拟机解析new指令,首先检查常量池是否有类的符号引用,并且检查是否已经加载解析和初始化,没有就执行类加载过程 (2) 阅读全文
posted @ 2022-08-25 12:17 -Lucas 阅读(148) 评论(0) 推荐(0)
摘要: 溢出区域 内存溢出分为堆内存溢出和栈内存溢出 如果虚拟机在扩展堆时无法申请到足够大的内存空间时,就会抛出outOfMemoryError 如果线程请求的栈深度大于虚拟机所允许的最大深度,则抛出StackOverflflowError 栈溢出 public class TestOverFlow { p 阅读全文
posted @ 2022-08-24 23:36 -Lucas 阅读(114) 评论(0) 推荐(0)
摘要: 什么是JVM JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一个虚构出来的计算机,有着自己完善的硬件架构,如处理器、堆栈等。 为什么需要JVM Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代 阅读全文
posted @ 2022-08-24 16:51 -Lucas 阅读(88) 评论(0) 推荐(0)
摘要: ###1.什么是类的初始化 JVM执行类的初始化语句,为类的静态变量赋值。 如果这个类还没有被加载和链接,那就先进行加载和链接 如果这个类存在父类,且为被初始化,先对其父类进行初始化 如果这个类存在初始化语句(static块),依次执行初始化语句 ###2.类的初始化顺序 父类的静态变量和stati 阅读全文
posted @ 2022-01-18 20:44 -Lucas 阅读(349) 评论(0) 推荐(0)
摘要: 准备工作 创建Student类及其父类Person package com.xinay.annotation.reflex; /** * @Author xin * @date 2021/5/30 16:39 * @Description 得到class类对象的几种方式 */ public clas 阅读全文
posted @ 2021-05-30 23:23 -Lucas 阅读(635) 评论(0) 推荐(0)