CompletableFuture是jdk8推出的新特性。其出现目的是为了解决Java在异步编程、响应式编程的缺失,对标的Java框架是Reactive Streams之类的Spring Reactor、RxJava、Akka Streams等等。
2021年总结
Here's something encrypted, password is required to continue reading.
Git的使用与总结
记录一些常用的Git命令知识。
Hexo的使用与总结
Here's something encrypted, password is required to continue reading.
Gradle的使用与总结
Gradle
介绍
Gradle
是可以构建任何语言项目、在软件构建过程中极端灵活、对于大型项目构建性能更好、但学习成本比较高的一个软件构建工具。
构建任何语言:
Gradle
是完全允许用户自定义一个软件的构建流程。你可以自己写自己项目的构建过程,或者使用别人写好插件
极端灵活:Gradle
是构建过程是动态,你可以在build.gradle
动态指定某个任务,也就是说你可以通过在命令行、gradle.properties
指定任何参数来动态的决定软件的构建流程
构建性能更好:Gradle
采用增量构建等机制来避免不必要的流程
学习成本高:Gradle
的构建脚本是使用Groovy
、Kotlin
的DSL
来指定的,这也就意味着刚接触Gradle
时,很难理解整个构建流程在做什么事
ConcurrentHashMap源码分析
1、它实现了ConcurrentMap
接口,该接口定义了一些原子操作约定
2、线程安全
- 完全的并发读和高并发写
- 读操作完全无锁,牺牲了一致性;写操作部分有锁
- 它与
HashTable
、Collections.synchronizedMap
HashMap
支持null
,ConcurrentHashMap
、HashTable
不支持null
3、java7
- 分段锁
- 哈希表/链表
4、java8
CAS
+Unsafe
- 哈希表/链表 + 红黑树
MySQL的事务
MySQL事务的实现是在引擎级别上的,现在InnoDB
存储引擎是支持事务的
缓存的学习与总结
算是去年写代码中最有意思的事了,记录一下。
计算机IO模型总结
今天在看到Redis
的IO
多路复用时,顺便总结一下在Unix
上各个IO模型,以及他们在网络服务中的应用过程。