9 王建坤

海尔集团 后端开发工程师

https://jiankunking.com

等级
TA的排名 137

面试必备:Java JUC Atomic LongAdder 详解

基于OpenJDK12阅读本文前,推荐先阅读以下两篇文章,以便能更好的对比理解:[译]JavaConcurrentAtomicPackage详解面试必备:JavaJUCAtomicLong实现解析LongAdder是JDK1.8新增的原子类,基于Striped64实现。从官方文档看,LongAdder在高并发的场景下会比AtomicLong...

2019-08-09 07:23:46

面试必备:Java JUC AtomicLong 实现解析

基于OpenJDK12本文的目的是为后续文章解析LongAdder做一个引子,以便两者对比。AtomicPackage解析参考(比如lazySet原理解析):[译]JavaConcurrentAtomicPackage详解AtomicLong的常用方法如下: longaddAndGet(longdelta):以原子方式将输入的数值与实例中的值(Atom...

2019-08-07 20:42:24

[译]Java Concurrent Atomic Package详解

翻译自:Packagejava.util.concurrent.atomic地址:https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/package-summary.html#package.description翻译JDK8而不是12的原因是JDK8对与内存语义部分讲解更加详细。Pack...

2019-08-07 11:28:07

[译]ZGC: 一个可伸缩的低延迟垃圾收集器

翻译自:JEP333地址:https://openjdk.java.net/jeps/333一、摘要Z垃圾收集器,也称为ZGC,是一个可伸缩的低延迟垃圾收集器。二、目标 GC暂停时间不超过10ms 能处理大小从相对较小(几百MB)到非常大(TB级)的堆 与使用G1相比,应用程序吞吐量减少不超过15% 方便日后在此基础上利用彩色指针和内存屏障...

2019-07-31 07:48:20

elasticsearch 倒排索引原理

如何快速检索?Elasticsearch是通过Lucene的倒排索引技术实现比关系型数据库更快的过滤。特别是它对多条件的过滤支持非常好,比如年龄在18和30之间,性别为女性这样的组合查询。倒排索引很多地方都有介绍,但是其比关系型数据库的b-tree索引快在哪里?到底为什么快呢?笼统的来说,b-tree索引是为写入优化的索引结构。当我们不需要支持快速的更新的时候,可以用预先排...

2019-07-29 19:26:20

红黑树、B(+)树、跳表、AVL等数据结构,应用场景及分析

AVL树:最早的平衡二叉树之一。应用相对其他数据结构比较少。windows对进程地址空间的管理用到了AVL树红黑树:平衡二叉树,广泛用在C++的STL中。map和set都是用红黑树实现的。我们熟悉的STL的map容器底层是RBtree,当然指的不是unordered_map,后者是hash。B/B+树用在磁盘文件组织数据索引和数据库索引Trie树字典树,用在统计和排序大量字符串...

2019-07-29 19:23:49

linux 查看java的安装路径

在linux下,如何找java的安装路径jiankunking@ubuntu:/etc$whereisjavajava:/usr/bin/java/usr/share/java/usr/lib/jvm/java-8-openjdk-amd64/bin/java/usr/share/man/man1/java.1.gzjiankunking@ubuntu:/etc$ls-lrt...

2019-07-19 21:05:03

关于日志的那些事儿

在满足业务需求的前提下,代码、架构,越简单,越稳定。通用性的架构意味着,考虑的比较全,也就会比较重(比如:会引入很多组件),而这些组件对于你的场景有可能并不是不可或缺的,同时运维这些组件又会产生一定的成本,所以说通用架构对于你来说有可能并不一定是最好的。

2019-07-16 16:41:32

Elasticsearch 7.0 废弃mapping type原因及替代方案

RemovalofmappingtypesIndicescreatedinElasticsearch7.0.0orlaternolongeracceptadefaultmapping.Indicescreatedin6.xwillcontinuetofunctionasbeforeinElasticsearch6.x.Typesare...

2019-06-29 14:08:36

Spring Transaction Attributes

Whataretransactionattributes?Springtransactionsallowsettingupthepropagationbehavior,isolation,timeoutandreadonlysettingsofatransaction.Beforewedelveintothedetails,hereares...

2019-06-14 13:31:31

Spring 下默认事务机制中@Transactional 无效的原因

Spring中@Transactional注解的限制同一个类中,一个nan-transactional的方法去调用transactional的方法,事务会失效Ifyouuse(default)SpringProxyAOP,thenallAOPfunctionalityprovidedbySpring(like@Transational)willo...

2019-06-13 18:45:42

epoll 的本质是什么?

从事服务端开发,少不了要接触网络编程。epoll作为Linux下高性能网络服务器的必备技术至关重要,nginx、Redis、Skynet和大部分游戏服务器都使用到这一多路复用技术。epoll很重要,但是epoll与select的区别是什么呢?epoll高效的原因是什么?网上虽然也有不少讲解epoll的文章,但要么是过于浅显,或者陷入源码解析,很少能有通俗易懂的。笔者于...

2019-05-24 18:30:48

Go 1.9 sync Map 源码阅读笔记

1.空间换时间。通过冗余的两个数据结构(read、dirty),实现加锁对性能的影响。2.使用只读数据(read),避免读写冲突。3.动态调整,miss次数多了之后,将dirty数据提升为read。4.double-checking。5.延迟删除。删除一个键值只是打标记(会将key对应value的pointer置为nil,但read中仍然有这个key:key;value:nil的键值对),只有在提升dirty的时候才清理删除的数据。6.优先从read读取、更新、删除,因为对read

2019-05-18 08:58:35

念念不忘的ReentrantReadWriteLock

来先猜一下ReentrantReadWriteLock会如何实现?都在java.util.concurrent包下,那么可以明确一点,那就是关于锁的实现,应该用的就是AQS,那么,读锁、写锁会不会对应的就是AQS中的共享模式与独占模式?

2019-05-16 07:55:03

如何手撕一个API 网关(API Gateway)?

一、什么是APIGateway一个比较普遍的定义如下:API网关是一个服务器,是系统的唯一入口。从面向对象设计的角度看,它与外观模式类似。API网关封装了系统内部架构,为每个客户端提供一个定制的API。API网关方式的核心要点是,所有的客户端和消费端都通过统一的网关接入微服务,在网关层处理所有的非业务功能。通常,网关也是提供REST/HTTP的访问API。服务端通过API-GW注册和管理...

2019-05-15 19:42:54

售达方、送达方的区别

送达方:Thepartywhoreceivesdeliveryofthegoods.售达方:Thecustomerwhoordersthegoodsorservices.Thesold-topartyiscontractuallyresponsibleforsalesorders其实简单的说,售达方就是买东西的客户,送达方就是你要发货之后收货的客户...

2019-05-15 09:12:49

如何从零手撕一个PaaS平台?

一、背景目前在用的PaaS平台是之前购买的一个商业产品,但没有源码,运维期也早就结束了,所以会遇到一些奇奇怪怪的问题,需要我们这边casebycase的处理,不胜其烦。老PaaS的架构及基本功能如下:二、重构为什么选择重构PaaS平台而不是全部迁移kubernates集群?kubernates集群的确提供了很多优秀的特性,比如:RC、滚动更新或回滚、资源监控和日志记录、负载均衡等等...

2019-05-13 18:26:08

Java JDK 动态代理(AOP)使用及实现原理分析

目录​一、什么是代理?二、Java动态代理类三、JDK的动态代理怎么使用?四、动态代理怎么实现的?五、结论一、什么是代理?代理是一种常用的设计模式,其目的就是为其他对象提供一个代理以控制对某个对象的访问。代理类负责为委托类预处理消息,过滤消息并转发消息,以及进行消息被委托类执行后的后续处理。代理模式UML图:简单结构示意图:为了保持行为的...

2019-05-08 21:28:06

清理 docker registry image

#!/usr/bin/envpythonimportrequestsfromrequests.authimportHTTPBasicAuthfromrequests.packages.urllib3.exceptionsimportInsecureRequestWarningimportjsonimportreimportargparse##thisis...

2019-05-08 18:04:03

OAuth 2.0 的四种方式

OAuth2.0是一种授权机制,主要用来颁发令牌(token)。RFC6749OAuth2.0的标准是RFC6749文件。该文件先解释了OAuth是什么。OAuth引入了一个授权层,用来分离两种不同的角色:客户端和资源所有者。…资源所有者同意以后,资源服务器可以向客户端颁发令牌。客户端通过令牌,去请求数据。这段话的意思就是,OAuth的核心就是向第三方应用颁发令...

2019-04-24 14:06:25

查看更多

CSDN身份
  • 博客专家
勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 脉脉勋章
    脉脉勋章
    绑定脉脉第三方账户获取
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。