一行代码引发的性能暴跌 10 倍
代码测试
1 | import com.google.common.base.Stopwatch; |
1 | import com.google.common.base.Stopwatch; |
1 |
|
这篇博客是为了深入探究 Java 中对象的知识。
首先我们先看下一个简单创建对象的代码,看一个对象到底是如何在内存中创建的。
1 | public static void main(String[] args) { |
为了更清楚的看 synchronized 的锁的升级的过程,我们用代码来打印对象的布局,使用的类库是:
1 | <dependency> |
Synchronized 是 Java 中的一种锁的方式,是在 JVM 层面一种锁。在 jdk 1.6以前是一种重量级锁,在经历过优化后 Synchronized 锁已经没有那么“重”了。
Synchronized 有 3 种使用方式:
在 JVM 虚拟机规范中有对 class 字节内容的顺序的一句话,多字节数据项总是按照 Big-Endian 的顺序进行存储
,刚开始不太明白,只是根据规范解析了一下,具体的java 代码:
1 |
|
linux 和 mac
1 | echo "export GOPROXY=https://goproxy.cn" >> ~/.profile && source ~/.profile |
写了一个小工具,主要是爬取西瓜视频的教程,方便下载下载学习,语言使用 goLang
. 软件是编译成 exe 文件,想要源码直接联系我。
Redis 中的每个数据库,都由一个 redis.h/redisDb 结构表示:
1 | typedef struct redisDb { |