ALID Blog

A light in the dark

数据处理并同步

构建一个数据实时同步处理系统

经常我们需要将两份相同的数据保存成不同的数据结构 。比如一边是代理商政策录入系统,但代理商维护的数据不能直接拿来使用。并且为了方便代理商修改,我们不能让代理商信息保存成我们可以直接使用的数据结构,而且可能两者保存。则我们需要又一个中间系统进行数据的转换。 case 这里我们定义A系统为代理商政策录入系统,B系统为业务查询系统。到这里是不是有点像读写分离的做法,录入和读取分成了2个系统。但...

HashMap

重学Java-数据结构

Map基础 基础的Map有一下2种 HashMap HashTable 当然还有并发包加入的ConcurrentHashMap, 因为不属于基础的HashMap就先不说了 最简单的区别就是HashTable是线程安全的,这里主要聊一下HashMap中的一些知识点. hash算法 红黑树的使用 hashcode() & equals() 成环...

反射

反射为什么这么慢

Java反射 首先提到反射是如何实现的, 首先从类加载阶段说起. 在加载阶段, 就把类信息加载到了方法区中 在解析阶段就可以把符号引用解析为直接引用(也可以不在类加载阶段完成) 在初始化阶段会对所有类对象进行初始化, 当然这一步也不一定要在类加载阶段完成. 但是触发类加载的条件有一项就是: 使用反射 API 对某个类进行反射调用时,初始化这个类. 现在拥有了 Method...

类加载机制

重学Java-Jvm

类加载步骤 什么情况下虚拟机需要开始加载一个类呢?虚拟机规范中并没有对此进行强制约束,这点可以交给虚拟机的具体实现来自由把握。 类加载的过程主要就可以分为 5 个阶段:载入、验证、准备、解析和初始化, 具体每一步做了什么接下来一步一步说 加载阶段 通过一个类的全限定名来获取定义此类的二进制字节流。 将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构。 ...

为什么我的Sql跑的这么慢

分析sql执行慢可能存在的原因

偶尔会出现很慢的情况 我的sql没问题 肯定不是我的锅 数据库在刷新脏页我也无奈啊 当我们要往数据库插入一条数据、或者要更新一条数据的时候,我们知道数据库会在内存中把对应字段的数据更新了,但是更新之后,这些更新的字段并不会马上同步持久化到磁盘中去,而是把这些更新的记录写入到 redo log 日记中去,等到空闲的时候,在通过 redo log 里的日记把最新的数据同步到磁盘中去。 ...

TreeRangeMap

怎样范围查询缓存

base Range guava提供的一个用于区间操作的类,提供了以下几种方法: 方法 含义 open(C, C) (a..b) closed(C, C) [a..b] closedOpen(C, C) [...

为什么Lambda中的引用的变量不能修改?

从Stream.foreach的中的i++说起

CASE 匿名内部类等效于Lambda, 在本文中2者都有提到, 可以当做同一个概念理解 让我们来看一下问题的切入点: 1 2 3 4 int i = 0; str.forEach(s -> { i++; // 编译错误:Variable used in lambda expression should be final or effectively final })...

反射获取Field

记录一次遇到反射获取不到Field的问题

知识准备 java.lang.reflect.Field 为我们提供了获取当前对象的成员变量的类型,和重新设值的方法 可以做到: 获取变量类型 获取成员变量的修饰符 获取成员变量的值和名称,修改成员变量的值 方法: getFields()只能获取public的字段,包括父类的。 getDeclaredFields()只能获取自己声明的各种字段,包括pub...

CPU暴增问题处理记录

记录一次线上问题处理

问题记录 定时任务运行时CPU,1min内达到100%,而内存占用非常少。 问题解决过程 首先在确定代码没有明显问题的情况下,考虑复现问题。 1 2 sudo -u tomcat jstack -F <pid> top -Hp <pid> 通过这两种方式查看实时信息找到占用CPU较大的线程来解决问题 通过查看当时占用CPU较高的线...

枚举

我们能用枚举做什么

1. 定义 枚举类型(enum type)是指由一组固定的常量组成合法的类型。Java中由关键字enum来定义一个枚举类型。下面就是java枚举类型的定义。 1 2 3 public enum Season { SPRING, SUMMER, AUTUMN, WINER; } 2. 特点 Java定义枚举类型的语句很简约。它有以下特点: 1) 使用关键字enum ...