摘要:
java的枚举倒是一直在使用,但没有深究过,最近看guava的代码里,发现大量使用枚举,于是详细看了下。 首先java的枚举实际上是语法糖,本质上还是class,编译之后就与class无异。那既然是class,当然也具有class的一些特性,如继承,实现接口等。 关键字enum定义的枚举类型,实际上 阅读全文
摘要:
java线程池干了些什么事 主要是维持一些常驻的线程,避免每次执行任务新建线程的开销 将线程的执行和提交解耦,用户只用关心线程的提交,而不用关心线程的执行 我们通常怎么使用线程池 ExecutorService threadPoolExecutor = Executors.newFixedThrea 阅读全文
摘要:
先看几个case public class SimpleTest { @Test public void threadThrowException() { Thread thread = new Thread(()->{int a = 1/0;}); thread.start(); } @Test 阅读全文
摘要:
上周因为项目中的线程池参数设置的不合理,引发了一些问题,看了下代码,发现对JUC中的一些概念需要再清晰些。 Runnable @FunctionalInterface public interface Runnable { /** * When an object implementing inte 阅读全文
摘要:
mysql架构 锁 为了解并发问题,引入锁,mysql中锁分为读锁和写锁,即share lock和exclusive lock。故名思义,share lock之间不互斥,share lock和exclusive lock之间互斥,exclusive lock之间互斥。mysql 提供行锁row lo 阅读全文
摘要:
mysql索引结构: mysql索引使用B+tree,为什么使用B+tree呢,首先,使用索引是为了加快查找的速度,B+tree的查找时间复杂度为log(n).那为什么不用o(1)的hashMap呢。mysql是有使用hashMap结构的hash索引的,但大部分情况下,我们使用的索引并不是hash索 阅读全文
摘要:
都知道虚拟机和docker的区别,虚拟机是每个虚拟机内跑独立的os,os层面隔离。docker是同一个os上,使用linux的namespace机制做资源隔离,为什么我们docker image还需要依赖一个linux的发行版,一般最小是busybox呢,那我的进程跑起来,到底是用我容器内的os还是 阅读全文
摘要:
DDD, domain-driven-develop,领域驱动设计。最近看了一些文章和eric evans那本《领域驱动设计:软件复杂性之道》,谈谈我从DDD中学到了什么。 DDD中的几个概念 valueObject: 无状态,纯pojo的一些类,一般是不可变的,不可变意味着安全和简单,所以能归为v 阅读全文
摘要:
首先看对jdk中对java.lang.LinkageError的定义 Subclasses of {@code LinkageError} indicate that a class has some dependency on another class; however, the latter 阅读全文
摘要:
powerMock和mockito powermock和mockito都是做mock的框架,powermock在mockito的基础上扩展而来,支持mockito的操作(也支持别的mock框架比如easyMock)。因此在maven引入powermock的时候,需要引mockito的包。powerm 阅读全文