刘研的博客

平时遇到的就记下来

我的理解阻塞\非阻塞,同步\异步

要解释I\O的阻塞\非阻塞,同步\异步,实在难以下笔。涉及内容太多,很多知识点我也没有搞清楚,很怕误导别人。算是把看到的认为好的内容搬运过来,整合一下,再把自己不理解的内容抛出来,做个记录,日后想着学懂。 说I/O模型,不得不提《UNINX网络编程》这本书,“第六章:I/O复用”中把Uninx可...

2019-03-16 15:31:10

阅读数 49

评论数 0

记一次线上FGC排查经历

背景:线上服务,启动后很快必定FGC一次,随后GC变正常。服务器上JDK版本为jdk1.8.0_66。启动参数为: -Xms8g -Xmx8g -Xmn3g -Xss1024K -XX:ParallelGCThreads=20 -XX:+UseConcMarkSweepGC -XX:+UseP...

2018-12-09 22:13:14

阅读数 902

评论数 2

一次Java空指针异常排查经历

同理先说背景:我们的一个注册中心服务,多节点部署,客户端会hash到一个节点,启动定时任务与之通信拉取配置。突然有业务线说客户端大量报超时异常。 首先当然赶紧让业务线把异常日志发给我。先分析了一下日志,找到了对应的超时异常,根据堆栈信息分析出是拉取配置任务大量连续超时,再定位到是哪一台服务。 ...

2018-12-05 20:53:17

阅读数 429

评论数 1

记一次重构经历

背景:最近新接触一个web项目,要求新增加一个审批流程。简化抽象模型,订单分为三种A\B\C。其中AB的审批流程完全一致,简化为审批1->审批2->审批后动作。C的审批流程略有不同,简化为审批0->审批1->审...

2018-11-25 17:30:45

阅读数 142

评论数 0

ZGC窥探(翻译a first look into zgc)

ZGC目的是为了减少空间整理的耗时。像GC的基本算法里,标记清除算法就是不进行空间整理,会产生空间碎片。复制清除和标记整理算法都会进行空间整理,不会产生空间碎片。虽然空间整理减少产生空间碎片,但是需要用户线程全部暂停,也就是我们所说的stop the world现象。只有gc结束之后,用户线程才可...

2018-10-29 17:48:52

阅读数 114

评论数 0

总结

最终还是离职了,晃晃悠悠毕业两年了,沉淀半年,19年开始写点有深度的文章。加油

2018-06-21 15:06:09

阅读数 49

评论数 0

数据库主键生成方案

问题产生的背景:数据量到达一定程度时,需要做数据的分库分表(这又是一个很值得讨论的问题,什么量级的数据做分库分表),此时我们需要保证数据库主键的唯一性、单调递增。并且获取唯一主键的服务要保证高可用、高吞吐率。一般常用的方法有snowflake算法、UUID、数据库自增主键等等。因为MySql是聚集...

2018-04-19 22:23:48

阅读数 236

评论数 0

JDK赏析-HashMap(二)

终于有电脑了,换了份工作,38天的空档期,没有工作学习的状态了。新同事水平平均很高,我属于拉低平均线的档次了,要继续努力了。最近食言了,没有看并发编程那本书,而是买了两本mysql书,一本是innodb存储引擎,一本是性能优化,目前在看innodb存储引擎,收获很大,等看完全本,把这本书的读书笔记...

2018-03-11 15:13:07

阅读数 59

评论数 0

jdk赏析-HashMap(一)

HashMap可以说是日常使用非常频繁的数据结构了,存储k/v结构,可以做对象的映射。提供了所有的相关map的操作,可以允许null值作为key和value,和HashTable的区别就是不同步和允许null。HashMap不保证存储的顺序也不保证操作都是O(1)的,有两个关键性的属性影响操作的性...

2018-01-27 17:19:53

阅读数 110

评论数 0

jdk欣赏-ArrayList(2)

ArrayList中有两个转换为数组的方法,Object[] toArray()和 T[] toArray(T[] a)。 两个方法的唯一区别就是返回的数据类型不同,最终都是这个方法: public static T[] copyOf(U[] original, int newLeng...

2018-01-21 16:55:39

阅读数 90

评论数 0

jdk欣赏-ArrayList(1)

《深入理解java虚拟机》这本书大概看了一遍,收获很大,博客就暂时告于段落,不过学习还是继续,下一本书读《java并发编程实战》,配合之前学习的内容,应该可以串联上。博客新开一个系列,jdk源码系列,读并发和jvm比较枯燥,jdk源码就当做调味品。从集合类开始,最简单的ArrayList类,我们可...

2018-01-17 22:33:14

阅读数 87

评论数 0

java内存模型与线程

java内存模型规定了所有的变量都存储在主内存中,每条线程还有自己的工作内存,工作内存保存了被该线程所使用到的变量的主内存副本拷贝,线程所有操作都在工作内存中进行,不能直接读写主内存,包括volatile变量。 java内存模型定义了内存间数据的交互8个操作,这些操作都是原子的: lock:作...

2018-01-10 21:30:02

阅读数 102

评论数 0

转换json工具

实体类转换成json的小工具类,写着玩,省时间而已。

2017-12-25 14:45:50

阅读数 691

评论数 0

关于DTO分层作用

DTO作用

2017-12-12 18:24:59

阅读数 2173

评论数 1

jvm之虚拟机字节码执行引擎(续)

之前学习了静态分派和动态分派,静态分派典型的应用是方法重载,动态分派典型的应用的方法重写。 静态分派在编译阶段就确定,也就是在编译阶段就确定了invokeviryual指令,也就是确定了方法的签名。 在动态分派的过程中,也就是当执行到这条invokevirtual指令时候,方法的实际接收者确定步骤...

2017-12-09 16:01:17

阅读数 115

评论数 0

JVM之虚拟机字节码执行引擎

栈帧结构:局部变量表,操作数栈,动态链接,返回地址,方法调用

2017-12-05 16:54:07

阅读数 114

评论数 0

jvm之虚拟机类加载

类的生命周期:加载、验证、准备、解析、初始化、使用、卸载 只有加载、验证、准备、初始化和卸载这五个阶段的顺序确定。解析可以在初始化后,为了支持运行时绑定。

2017-11-22 22:03:52

阅读数 101

评论数 0

JVM之虚拟机内存监控与故障处理工具

java查看虚拟机状态的工具

2017-11-15 21:51:53

阅读数 144

评论数 0

jvm之内存分配策略

GC相关的参数和内存空间分配

2017-11-13 21:50:59

阅读数 220

评论数 0

JVM之垃圾收集器

垃圾收集器的简单介绍

2017-11-12 17:22:31

阅读数 101

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭