个人简介

Echo Blog


江湖无名 安心练剑
  • JVM-并行垃圾收集器-19
    The Parallel Collector 并行收集器(此处也称为吞吐量收集器)是类似于串行收集器的分代收集器。 串行和并行收集器之间的主要区别在于并行收集器具有多个线程,用于加速垃圾收集。 使用命令行选项-XX:+UseParallelGC启用并行收集器。 默认情况下,使用此选项,可以并行运行次要集合和主要集合,以进一步减少垃圾收集开销。 并行收集器垃圾收集器线程数 在具有&...
    2018-10-08 15:36:46 | Java
  • JVM-影响 gc 的因素-18
    影响垃圾收集性能的因素 影响垃圾收集性能的两个最重要的因素是总可用内存和专用于年轻代的堆的比例。 总堆 影响垃圾收集性能的最重要因素是总可用内存。 由于集合在代数填满时发生,因此吞吐量与可用内存量成反比。 注意 以下有关堆的增长和收缩,堆布局和默认值的讨论使用串行收集器作为示例。 虽然其他收藏家使用类似的机制,但此处提供的详细信息可能不适用于其他收藏家。 有关其他收集...
    2018-10-08 15:36:46 | Java
  • JVM-GC 实现-17
    垃圾收集器实现 Java SE平台的一个优势是它可以保护开发人员免受内存分配和垃圾收集的复杂性的影响。 但是,当垃圾收集是主要瓶颈时,了解实现的某些方面很有用。 垃圾收集器对应用程序使用对象的方式做出假设,这些可以反映在可调参数中,可以调整这些参数以提高性能,而不会牺牲抽象的功能。 世代垃圾收集 对象被认为是垃圾,当运行程序中任何其他活动对象的任何引用无法再访问它时,VM可以重用它...
    2018-10-08 15:36:46 | Java
  • JVM-GC Ergonomics-16
    人机工程学(Ergonomics) 人机工程学是Java虚拟机(JVM)和垃圾收集启发式(例如基于行为的启发式)提高应用程序性能的过程。 JVM为垃圾收集器,堆大小和运行时编译器提供与平台相关的默认选择。 这些选择符合不同类型应用程序的需求,同时需要较少的命令行调整。 此外,基于行为的调优动态地优化堆的大小以满足应用程序的指定行为。 本节介绍这些默认选择和基于行为的调整。 在使用...
    2018-10-08 15:36:46 | Java
  • JVM-GC 概览-15
    垃圾收集调整简介 从桌面上的小型applet到大型服务器上的Web服务,各种各样的应用程序都使用Java平台标准版(Java SE)。 为了支持这种多样化的部署,Java HotSpot VM提供了多个垃圾收集器,每个垃圾收集器都旨在满足不同的需求。 Java SE根据运行应用程序的计算机的类选择最合适的垃圾收集器。 但是,这种选择对于每个应用程序可能都不是最佳的。具有严格性能目标或...
    2018-10-08 15:36:46 | Java
  • java 线程安全之无状态类
    无状态类 有状态就是有数据存储功能。有状态对象(Stateful Bean),就是有实例变量的对象,可以保存数据,是非线程安全的。在不同方法调用间不保留任何状态。 无状态就是一次操作,不能保存数据。无状态对象(Stateless Bean),就是没有实例变量的对象.不能保存数据,是不变类,是线程安全的。 无状态类例子:Servlet 线程安全类的一个很好的例子是java servle...
    2018-10-08 09:55:28 | Pattern
  • Java Immutable-Java 设计模式之不可变对象
    不可变对象 定义 如果某个对象在被创建后其状态就不能被修改,那么这个对象就称为不可变对象。 线程安全 线程安全性是不可变对象的固有属性之一,它们的不变性条件是由构造函数创建的,只要它们的状态不改变,那么这些不变性条件就能得以维持。 不可变对象一定是线程安全的。 当满足以下条件时,对象才是不可变的: 1) 对象创建以后其状态就不能修改。 2) 对象的所有域都是 final 类型...
    2018-10-08 09:55:28 | Pattern
  • Java ThreadLocal
    ThreadLocal 定义 该类提供线程局部变量。这些变量与普通的变量不同之处在于,每个访问一个变量的线程(通过它的get或set方法)都有自己的、独立初始化的变量副本。 ThreadLocal实例通常是类中希望将状态与线程关联的私有静态字段(例如,用户ID或事务ID)。 例子 例如,下面的类为每个线程生成唯一的本地标识符。线程的id在第一次调用ThreadId.get()时被分...
    2018-10-08 09:55:28 | Java