[toc] 领域驱动设计 领域对象的生命周期 每个对象都有生命周期,如图6 1所示。对象自创建后,可能会经历各种不同的状态,直至最终消亡——要么存档,要么删除。当然,很多对象是简单的临时对象,仅通过调用构造函数来创建,用来做一些计算,而后由垃圾收集器回收。这类对象没必要搞得那么复杂。但有些对象具有更 ...
分类:
其他好文 时间:
2020-03-21 15:09:56
阅读次数:
64
java虚拟机底层原理与性能优化 1、java虚拟机内存模型能说说吗? 2、类加载器的双亲委派模型是什么? 3、java垃圾收集算法与收集器有哪些? 4、JVM诊断调优工具有哪些 5、每秒几十万并发的秒杀系统为什么会频繁发生GC? MySQL索引数据结构与性能优化 1、索引数据结构红黑树、Hash、 ...
分类:
其他好文 时间:
2020-03-15 13:43:13
阅读次数:
69
成都每一个家庭都需要几个垃圾桶每年大约有25%的食物被扔掉厨房垃圾占垃圾填埋场垃圾的五分之一一个令人惊讶的数字所以成都垃圾桶公司开发了一种厨房垃圾收集器ZERA▽它看起来像一个大垃圾桶但它可以在24小时内完成把厨房垃圾变成植物肥料▽把机器顶上的垃圾倒掉就行了▽把成都垃圾桶加满,然后放进去ZERA的特 ...
分类:
其他好文 时间:
2020-03-14 21:56:41
阅读次数:
55
Java 堆内存被划分为新生代和老年代两部分,因此 JVM 通常采用分代回收算法。新生代主要使用复制和标记 清除垃圾回收算法 ,老年代主要使用标记 整理垃圾回收算法。JVM 中针对新生代和年老代分别提供了多种不同的垃圾收集器。 根据线程特点,可以将收集器分为三类: 1. 串行收集器 :Serial ...
分类:
其他好文 时间:
2020-03-14 20:12:46
阅读次数:
69
对象的创建通常通过new关键字(例外:反序列化,复制),其过程如下: 当遇到new指令时,首先检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并检查这个符号引用代表的类是否被加载,解析和初始化过,如果没有,必须先执行相应的类加载过程。 在类加载过程检查通过后,需要为新生对象分配内存,对象所 ...
分类:
其他好文 时间:
2020-03-06 17:04:01
阅读次数:
65
JVM的内存区域是怎么划分的?JVM的内存划分中,有部分区域是线程私有的,有部分是属于整个JVM进程;有些区域会抛出OOM异常,有些则不会,了解JVM的内存区域划分以及特征,是定位线上内存问题的基础。那么JVM内存区域是怎么划分的呢?首先是程序计数器(ProgramCounterRegister),在JVM规范中,每个线程都有自己的程序计数器。这是一块比较小的内存空间,存储当前线程正在执行的Jav
分类:
其他好文 时间:
2020-03-04 00:24:06
阅读次数:
63
一、jdk1.7的堆内存模型 1、Young 年轻区(代) Young区被划分为三部分,Eden区和两个大小严格相同的Survivor区,其中,Survivor区间中,某一时刻只有其中一个是被使用的,另外一个留做垃圾收集时复制对象用,在Eden区间变满的时候, GC就会将存活的对象移到空闲的Surv ...
分类:
其他好文 时间:
2020-03-03 17:46:45
阅读次数:
97
垃圾收集器在对堆进行回收前,第一件事是要确定这些对象中那些还活着 1、引用计数法:给对象中添加一个引用计数器,每当有一个地方引用它时,计数器就加1;当引用失效时计数器就减1;任何时刻计数器为零的对象是不可能再被使用的。但存在对象互相引用的情况 objA.instance = objB 和 objB. ...
分类:
编程语言 时间:
2020-03-02 00:56:35
阅读次数:
82
一、概述 MyBatis像大多数持久层框架一样,也提供了缓存策略,通过缓存策略来减少数据库的查询次数,从而提高性能。 MyBatis分为一级缓存和二级缓存,同时也可以配置关于缓存的设置。 二、一级缓存 1.介绍 一级缓存是在SqlSession上的缓存,只要 SqlSession 没有 flush ...
分类:
其他好文 时间:
2020-03-01 20:19:00
阅读次数:
90
JVM结构 JVM是 Java Virtual Machine的简称,意为Java虚拟机 。是Java可以在不同平台保证编译运行程序的保证。主要分为五大模块: 类装载器子系统 、 运行时数据区 、 执行引擎 (堆操作)、 本地方法接口 (对接本地方法栈)和 垃圾收集模块 (GC操作)。 类装载器子系 ...
分类:
其他好文 时间:
2020-02-25 12:48:54
阅读次数:
94