摘要:
目录数据类型堆与栈Java对象的大小引用类型按照基本回收策略分按分区对待的方式分按系统线程分如何区分垃圾如何处理碎片如何解决同时存在的对象创建和对象回收问题为什么要分代如何分代什么情况下触发垃圾回收分代垃圾回收流程示意选择合适的垃圾收集算法小结回收器选择辅助信息常见配置汇总调优总结垃圾回收的瓶颈增量 阅读全文
摘要:
参数 | 说明 | 实例 | | | Xms | 初始堆大小,默认物理内存的1/64| Xms512M Xmx | 最大堆大小,默认物理内存的1/4| Xms2G Xmn |新生代内存大小,官方推荐为整个堆的3/8| Xmn512M Xss |线程堆栈大小,jdk1.5及之后默认1M,之前默认256 阅读全文
摘要:
Full GC、Minor GC和Major GC的区别 Minor GC:发生在新生代的垃圾收集动作,因为JAVA对象大部分都具备朝生夕灭的特效,所以Minor GC会比较频繁且回收速度比较快 Major GC/Full GC 指发生在老年代的垃圾回收动作,出现Major经常会出现一次Minor 阅读全文
摘要:
JDK提供的监控和故障处理工具 jps:JVM Process Status Tool,显示指定系统内所有的HotSpot虚拟机进程 jstat:JVM Statistics Monitoring Tool,用户收集HotSpot虚拟机各方面的运行数据 jinfo:Configuration Inf 阅读全文
摘要:
JAVA内存区域介绍 程序计数器: 线程私有,很小的内存空间,可以看做是当前线程所执行的字节码的行号指示器; 每个线程都有一个独立的程序计数器,各个线程之间的计数器相互不影响,独立存储; 如果线程执行的是Java 方法,这个计数器记录的是正在执行的虚拟机字节码指令的地址,如果是一个Native方法, 阅读全文
摘要:
如何判断对象是否可回收 引用计数法 1、概念:给对象中添加一个引用计数器,每当有一个地方引用他时,计数器的值+1,当引用失效的时候,计数器 1,任何时刻计数器为0的对象就是不可以在被使用的对象。 2、缺点:无法解决对象循环引用的问题(如下图) 可达性分析法 1、概念:垃圾回收根节点(GCRoot)向 阅读全文
摘要:
算法 在计算机领域里,算法是一系列的程序指令,用于处理特定的运算和逻辑问题 衡量算法好坏的标准 时间复杂度 空间复杂度 数据结构 数据结构是数组的组织、管理和存储格式,其使用目的是为了高效地访问和修改数据 线性数据结构 数组 链表 复杂数据结构 树 图 时间复杂度 时间复杂度是对一个算法运行时间长度 阅读全文
摘要:
数组 数据是由 有限个相同类型的变量 所组成的 有序集合 ; 物理存储方式是 顺序存储 访问方式是 随机访问 ; 利用下标查找数组元素和修改数组元素的时间复杂度是O(1); 中间插入,删除数组元素的时间复杂度是O(n)。 适合读操作多,写操作少的场景 基本操作 读取 更新 删除 插入 尾部插入 中间 阅读全文