xindoo is
always here

Java

JDK11现存性能bug(JDK-8221393)深度解析-XINDOO

JDK11现存性能bug(JDK-8221393)深度解析

xindoo阅读(2)评论(0)赞(0)

这是一篇鸽了很久的博客,因为博客内容和素材早就准备差不多了,但就是一直懒得整理,今天终于下定决心终于整理出来了,这也是这个bug JDK-8221393唯一一篇中文介绍博客。 先大致介绍下这个bug,准确说这个应该是jdk11新引入的zgc...

Json字段选取器介绍和实现-XINDOO

Json字段选取器介绍和实现

xindoo阅读(81)评论(0)赞(0)

最近为了工作方便写了一个小工具,这个小工具作用很简单,就是从一个json字符串中筛出你想要的部分。 介绍 背景是这样的,我们为了线上调试方便,有个工具可以模拟发起一次数据请求,然后将结果以json的形式展示到页面上。但问题是这个数据包含的信...

StampedLock源码分析-XINDOO

StampedLock源码分析

xindoo阅读(450)评论(0)赞(1)

@[TOC] 前言 之前已经说过了ReentrantLock ReentrantReadWriteLock,可以参考之前的博客。在ReentrantReadWriteLock源码解析文末,我提到了ReentrantReadWriteLock...

翻译:Java volatile 关键词-XINDOO

翻译:Java volatile 关键词

xindoo阅读(481)评论(0)赞(0)

Java中的volatile关键词被用来将变量标记为“存储在内存中”。准确地的讲每次volatile变量的读取和写入都是直接操作内存,而不是cpu cache。 实际上自从java 5之后,volatile关键词保证除了volatile变量...

ReentrantReadWriteLock源码解析-XINDOO

ReentrantReadWriteLock源码解析

xindoo阅读(647)评论(0)赞(0)

上回说到ReentrantLock,今天来谈谈读写锁(ReentrantLock)和其具体实现ReentrantReadWriteLock。看这篇文章前,强烈建议你回到先读懂ReentrantLock,因为ReentrantReadWrit...

ReentrantLock源码解析-XINDOO

ReentrantLock源码解析

xindoo阅读(884)评论(0)赞(0)

谈到多线程,就不避开锁(Lock),jdk中已经为我们提供了好几种锁的实现,已经足以满足我们大部分的需求了,今天我们就来看下最常用的ReentrantLock的实现。

Ehcache食用指南-XINDOO

Ehcache食用指南

xindoo阅读(1353)评论(0)赞(0)

  最近我们有个服务的时延(Latency)略微上涨,gc时间上涨了一倍,dump出java堆(Heap)之后用Mat分析发现,有份cache数据占据了20%+的堆内存,拥有上千万个小对象。然而这部分数据只是部分逻辑会用到,所以它占据这么大...

Java中的String、StringBuffer和StringBuilder-XINDOO

Java中的String、StringBuffer和StringBuilder

xindoo阅读(1204)评论(0)赞(0)

  作为作为一个已经入了门的java程序猿,肯定对Java中的String、StringBuffer和StringBuilder都略有耳闻了,尤其是String 肯定是经常用的。但肯定你有一点很好奇,为什么java中有三个关于字符串的类?一...

LinkedHashMap源码解析-XINDOO

LinkedHashMap源码解析

xindoo阅读(1183)评论(0)赞(0)

相信即便是Java初学者都应该用过Java中的HashMap和TreeMap,但貌似大多数人都没怎么用过LinkedHashMap,对其知之甚少。因为基本上大多数情况下TreeMap和HashMap都能满足需求,只有在需要map中K-V保持...

PriorityQueue 源码分析

xindoo阅读(1250)评论(0)赞(0)

  学过数据结构的人应该对Queue 队列很熟悉了,队列是一种先进先出(FIFO)的数据结构,所以它出队列的优先级就是进入队列的次序。但我们有时候需要其它的优先级,很多高级语言都会提供带优先级的队列,在Java中就是PriorityQueu...

ThreadLocal Java多线程下的影分身之术-XINDOO

ThreadLocal Java多线程下的影分身之术

xindoo阅读(1227)评论(0)赞(0)

如果写过多线程的代码,你肯定考虑过线程安全问题,更进一步你可能还考虑在在线程安全的前提下性能的问题。大多数情况下大家用来解决线程安全问题都会使用同步,比如用synchron或者concurrent包提供的各种锁,当然这些都能解决问题。但有多...

Java WeakHashMap

xindoo阅读(1114)评论(0)赞(0)

  作为一个java开发者肯定都知道且使用HashMap,但估计大部分人都不太知道WeakHashMap。从类定义上来看,它和普通的HashMap一样,继承了AbstractMap类和实现了Map接口,也就是说它有着与HashMap差不多的...

Java弱引用(WeakReferences)

xindoo阅读(1129)评论(0)赞(0)

  前一段时间当我面试有些来应聘高级java开发工程师岗位的候选人时,在我问的众多问题中,有个问题是“你能告诉我弱引用是啥吗”,我不期望得到像论文中的细节一样的答案。我很可能从有个20多年的老工程师口中得到“嗯……是不是和gc有关”这样的答...

Java HashMap源码浅析-XINDOO

Java HashMap源码浅析

xindoo阅读(1271)评论(0)赞(1)

  之前虽然很频繁使用java的hashmap,但一直都是纯用,至于里面怎么实现的,一直都是糊里糊涂的。今年4月份跳槽找工作,大概看了一下HashMap的源码,在面试过程中也被多位面试官问到HashMap的相关问题,有些问题也没回答出来。本...

Java生产者消费者的三种实现

xindoo阅读(1808)评论(2)赞(0)

  Java生产者消费者是最基础的线程同步问题,java岗面试中还是很容易遇到的,之前没写过多线程的代码,面试中被问到很尬啊,面完回来恶补下。在网上查到大概有5种生产者消费者的写法,分别如下。 用synchronized对存储加锁,然后用o...

Java线程间同步(诡异的IllegalMonitorStateException )

xindoo阅读(1168)评论(0)赞(0)

  前两天去面试,被问到了一个线程同步的问题,两个线程依次输出1……100,一个线程只输出奇数,一个只输出偶数。之前工作中没写过线程同步的代码,只知道使用object的wait()和notify()方法可以实现线程同步,之前也看过线程池实现...

xindoo

联系我联系我们