Loading...
TLAB(Thread Local Allocation Buffer) 线程本地分配缓存区由于对象一般分配在堆上,而堆是线程共用的,因此可能会有多个线程在堆上申请空间,而每一次的对象分配都必须加锁保证线程同步,会使分配的效率下降。考虑到对象分配几乎是 Java 中最常用的操作,因此 JVM 使用了 TLAB 这样的线程专有区域来避免多线程冲突,提高对象分配的效率。我们说 TLAB 是线程独...
使用过 Java 的函数接口,就会被简介的语法深深的吸引,苦于代码中大量的 try...catch 繁琐代码,最近借鉴 java.util.Optional 的实现写了个简化的小工具。以 Long.valueOf() 为例,假如需要把一个字符串转换为long,如果转换失败则设置默认值为 -1,一般会作如下处理:String param = "10s"; long res...
随着互联网的迅速发展,网络安全问题日益凸显,现在 Chrome 浏览器已经开始阻止非 https 网站的访问了。对于 https 的流程一直不是十分清晰,借着还没有完全复工有时间,大概画了个图总结一下。想要了解 https 流程,CA 的相关知识,加密方式(对称加密、非对称加密),以及哈希计算(例如:MD5、sha256)等技术必须得掌握,这里先不做介绍,后续有时间再进行归纳总结。https...
settings.xml 是 maven 的配置文件,用户配置文件存放于 ${user.home}/.m2/ 目录下,系统全局配置文件放置于 ${mave...
网关做灰度的时候,要控制流量的比例,比如 3:7 的分发流量到两个不同版本的服务上去。刚开始的想法是每次流量过来生成 100 以内的随机数,随机数落在那个...
提到分布式应用,就不得不考虑分布式事务。在分布式事务中,常见的有 CAP,BASE 理论,解决方案也有很多种,比如:2PC、TCC 、最终一致性等。2PC(两阶段提交)比较适合单块应用,跨多个库的分布式事务。因为严重依赖于数据库层面来搞定复杂的事务,效率很低,绝对不适合高并发的场景,而且,对于微服务而言,不推荐一个服务出现跨多个数据库操作, 如果需要操作其它数据库数据,推荐通过调用别的服务接...
通俗的理解,事务是一组原子操作单元。我们希望一些列的操作能够全部正确执行,如果这一组操作中的任意一个步骤发生错误,那么就需要回滚之前已经完成的操作。也就是...
接着上次 JVM 中 GC 机制的总结,这次主要复习一下垃圾收集的常用算法和 Minor GC、Full GC 相关的一些知识点。一、垃圾收集算法1.1 ...
在 JVM 运行时数据区域中,程序计数器、虚拟机栈和本地方法栈这三个区域属于线程私有的,只存在于线程的生命周期内,线程结束之后也会消失,因此不需要对这三个...
一些零碎的知识点总是似懂非懂,用法老是模棱两可,每次都要去网络上查询,长时间不用又忘记了。比如 Java 中的位运算。今天抽空归纳总结一下,加强一下记忆。...