摘要:
Java堆溢出 错误原因: java.lang.OutOfMemoryError: Java heap space 堆内存溢出 解决办法:设置堆内存大小 // -Xms1m -Xmx10m -XX:+PrintGCDetails -XX:+HeapDumpOnOutOfMemoryError 下面这 阅读全文
摘要:
JVM参数配置 JVM提供了诸多的参数进行JVM各个方面内存大小的设置,为Java应用进行优化提供了诸多的工具,本文将会详细分析各个参数的功能与使用。 常见参数配置 -XX:+PrintGC 每次触发GC的时候打印相关日志 -XX:+UseSerialGC 串行回收 -XX:+PrintGCDeta 阅读全文
摘要:
1.标记清除算法 概念 该算法有两个阶段。 1. 标记阶段:找到所有可访问的对象,做个标记 2. 清除阶段:遍历堆,把未被标记的对象回收 应用场景 该算法一般应用于老年代,因为老年代的对象生命周期比较长。 优缺点 标记清除算法的优点和缺点 1. 优点 - 是可以解决循环引用的问题 - 必要时才回收( 阅读全文
摘要:
如何判断对象是否存活 引用计数法 概念 引用计数法就是如果一个对象没有被任何引用指向,则可视之为垃圾。这种方法的缺点就是不能检测到环的存在。 首先需要声明,至少主流的Java虚拟机里面都没有选用引用计数算法来管理内存。 什么是引用计数算法: 给对象中添加一个引用计数器,每当有一个地方引用它时,计数器 阅读全文
摘要:
JVM内存结构图: 1.Java堆 Java堆是java虚拟机所管理的内存中最大的一块,是被所有线程共享的一块内存区域,在虚拟机启动时创建。此内存区域的唯一目的就是存放对象实例,这一点在Java虚拟机规范中的描述是:所有的对象实例以及数组都要在堆上分配。[垃圾收集算法] 堆是垃圾收集器管理的主要区域 阅读全文
摘要:
什么是策略模式 定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。 策略模式由三种角色组成 策略模式应用场景 策略模式的用意是针对一组算法或逻辑,将每一个算法或逻辑封装到具有共同接口的独立的类中,从而使得它们之间可以相互替换。策略模式使 阅读全文
摘要:
什么是原型模式 克隆 原型模式是一个创建型的模式。原型二字表明了改模式应该有一个样板实例,用户从这个样板对象中复制一个内部属性一致的对象,这个过程也就是我们称的“克隆”。被复制的实例就是我们所称的“原型”,这个原型是可定制的。原型模式多用于创建复杂的或者构造耗时的实例,因为这种情况下,复制一个已经存 阅读全文
摘要:
什么是外观模式 外观模式(Facade Pattern)门面模式,隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。 这种模式涉及到一个单一的类,该类提供了客户端请求的简化方法和对现有系统类方法的委托调用 阅读全文
摘要:
什么是适配器 在设计模式中,适配器模式(英语:adapter pattern)有时候也称包装样式或者包装(wrapper)。将一个类的接口转接成用户所期待的。一个适配使得因接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包裹在一个已存在的类中。 适配器分类 适配器分为,类适配器、对象适 阅读全文
摘要:
什么是模板方法 模板方法模式:定义一个操作中的算法骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的 重复代码全部在父类里面,不同业务的,抽取给子类进行实现。抽取过程 抽象方法。 某些特定步骤。 核心:处理某个流程的代码已经都具备,但是其中某个节点的代码暂时不 阅读全文