苏打绿发新歌了,不过现在好像叫只能叫Sodagreen,而不能叫中文名了。看了好几个音乐平台都是新的歌手页,没有和以前的苏打绿放在一起。

阅读更多

Java Runtime Data Area,即运行时数据区。一个 class 文件经过 ClassLoader 加载进入运行时数据区。

那么运行时数据区包含了什么信息呢?

阅读更多

后端讲求的是高并发、高性能、高可用(3H),但是要实现 3H,通常是通过优化架构(横向分层,纵向分割)、使用缓存、分布式化和集群化等手段来实现。很少会自己写线程代码,日常开发在需要用到多线程的地方也大多都交给框架处理,对多线程和锁原理的理解一直不够深入。

趁着周末有时间,从简单的线程创建方式开始讲起,逐步深入了解关于线程的几种状态和锁原理。针对一些以前没写过独立文章的锁实现,还会展开来讲。

阅读更多

Nacos 是阿里提供的一个“全站式”的,用于发现、配置和管理微服务的解决方案。

目前大有取代 Eureka、Config & Bus 的趋势。

阅读更多

业务中的各种查询通常对应用户所看到的各项列表,而列表一般是根据某个维度进行排序,或是根据时间排序或是根据分类进行排序。换句话说,业务中使用 SELECT 语句的时候除了不可避免的搭配 WHERE 以外,还会配合 ORDER BY 进行使用。

今天来好好聊聊 MySQL 的 ORDER BY 排序。

阅读更多

Java 中实现线程同步用得最多的是 synchronized ,但使用 synchronized 本质是锁升级的过程。当升级到重量级锁之后会有性能问题。而且无法当并发数下来之后,无法进行“锁降级”操作。

ReentrantLock 本质是 CAS 操作,都是在用户态进行,没有涉及到重量级锁的内核态指令,而且能够手动控制获取锁和释放锁。

阅读更多

在与 Python 异步的第一次接触应该是听说大名鼎鼎的异步 web 框架 Tornado ,之后更多的接触是在一些零零散散的资料中看到不少使用 asyncawait 的代码片段。趁着有空系统整理下与之相关的内容。

阅读更多

我们知道,直接编写好的类( java 文件)是不能被直接运行的,必须先编译成 class 文件,才能被 JVM 所运行。

今天要聊的就是 JVM 加载 class 文件进内存的过程,也就是 Java Class 的加载过程。

阅读更多

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×