AI工具人
提示词工程师

Java

深入理解Spring的事件通知机制

   Spring作为一个优秀的企业级应用开发框架,不仅提供了众多的功能模块和工具,还提供了一种灵活高效的事件通知机制,用于处理组件之间的松耦合通讯。本文将详细介绍Spring的事件通知机制的原理、使用方法以及示例,希望...

赞(0)xindooxindoo阅读(377)去评论

Java高并发之CyclicBarrier简介

  Java 中的 CyclicBarrier 是一种同步工具,它可以让多个线程在一个屏障处等待,直到所有线程都到达该屏障处后,才能继续执行。CyclicBarrier 可以用于协调多个线程的执行,以便它们可以在某个点上...

赞(0)xindooxindoo阅读(253)去评论
谷歌Guava LoadingCache介绍-XINDOO

谷歌Guava LoadingCache介绍

  在工作中,加Cache是非常常见的一种性能优化手段,操作系统底层、计算机硬件层为了性能优化加了各种各样的Cache,当然大多数都是对应用层透明的。但如果你想在应用层加Cache的话,可能就需要你自己实现了。 &ems...

赞(0)xindooxindoo阅读(342)去评论
用Netty实现WebSocket网络聊天室-XINDOO

用Netty实现WebSocket网络聊天室

  最近学习Netty,学习到WebSocket一章节,将Netty中WebSocket的样例代码做了一些简单的改造,实现了一个简易的WebSocket网络聊天室,源码并非完全自己实现,只是将一些别人的代码做了下整合改造...

赞(0)xindooxindoo阅读(535)去评论
在netty中使用protobuf并实现数据加密传输-XINDOO

在netty中使用protobuf并实现数据加密传输

  最近学习netty,为了实践一些知识点,写了一个小demo,完成了client和server端之间的加密数据传输,并使用了protobuf对数据进行封装,代码虽然简单,但对初学者学习netty应该会有些许帮助,特此记...

赞(0)xindooxindoo阅读(435)去评论
面试题精选:字符串替换-XINDOO

面试题精选:字符串替换

字符串处理在程序猿日常工作工作中非常常见,常见到几乎各种语言中都已经封装好了字符串相关的API,我们只需要直接拿过来用就好。就拿Java为例,jdk中的String()类几乎封装了所有字符串相关的操作,其方法数量有近百个,几乎满足了程序猿所...

赞(0)xindooxindoo阅读(2811)去评论
面试题精选:数据伪造-XINDOO

面试题精选:数据伪造

这道题应该算是我原创的的一道题,来源于我遇到的一个具体需求。大致需求是已知一批数和每个数出现的次数,然后写个接口,每次调用都能返回已知数据中的某个数,且返回的概率和原始数据中每个数出现的概率一致,题目描述起来有些绕口,我们来举个实际的例子。...

赞(0)xindooxindoo阅读(3082)去评论
我背着CSDN偷偷记录了大半年我博客数据-XINDOO

我背着CSDN偷偷记录了大半年我博客数据

作为一个数据控+一个有追求的技术博主,总是希望自己能知道自己博客历史每日粉丝数量、阅读量、积分、评论……的数据,然而官方博客管理后台给展示的数据太少了,只有每日访问量、评论数、粉丝数、收藏数这几个数据,而且目前最多只能看最近一个月的数据。 ...

赞(0)xindooxindoo阅读(2905)去评论
面试题精选:两个线程按顺序交替输出1-100-XINDOO

面试题精选:两个线程按顺序交替输出1-100

陆陆续续,各个公司的校招季都开始了,我也成为了我司的校招面试官,最近也面了不少同学了,面试过程中也发现了很多问题,即有面试者的、也有面试官的、更有自己的问题,这里先挖个坑,后续写个博客详细聊聊,感兴趣的同学可以关注下。另外,我也有个专栏《面...

赞(0)xindooxindoo阅读(2929)去评论
Java中synchronized与ReentrantLock性能对比-XINDOO

Java中synchronized与ReentrantLock性能对比

前两天逛博客的时候看到有个人写了一篇博客说ReentrantLock比synchronized慢,这就很违反我的认知了,详细看了他的博客和测试代码,发现了他测试的不严谨,并在评论中友好地指出了他的问题,结果他直接把博客给删了 删了 了…… ...

赞(0)xindooxindoo阅读(3333)去评论
JDK11现存性能bug(JDK-8221393)深度解析-XINDOO

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

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

赞(1)xindooxindoo阅读(3945)去评论
Json字段选取器介绍和实现-XINDOO

Json字段选取器介绍和实现

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

赞(2)xindooxindoo阅读(4571)去评论
StampedLock源码分析-XINDOO

StampedLock源码分析

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

赞(2)xindooxindoo阅读(4550)去评论
翻译:Java volatile 关键词-XINDOO

翻译:Java volatile 关键词

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

赞(0)xindooxindoo阅读(4378)去评论
ReentrantReadWriteLock源码解析-XINDOO

ReentrantReadWriteLock源码解析

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

赞(0)xindooxindoo阅读(4403)去评论
ReentrantLock源码解析-XINDOO

ReentrantLock源码解析

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

赞(0)xindooxindoo阅读(4800)去评论
Ehcache食用指南-XINDOO

Ehcache食用指南

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

赞(0)xindooxindoo阅读(6135)去评论
Java中的String、StringBuffer和StringBuilder-XINDOO

Java中的String、StringBuffer和StringBuilder

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

赞(0)xindooxindoo阅读(4882)去评论
LinkedHashMap源码解析-XINDOO

LinkedHashMap源码解析

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

赞(0)xindooxindoo阅读(4949)去评论

PriorityQueue 源码分析

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

赞(0)xindooxindoo阅读(5099)去评论
ThreadLocal Java多线程下的影分身之术-XINDOO

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

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

赞(0)xindooxindoo阅读(5294)去评论

Java WeakHashMap

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

赞(0)xindooxindoo阅读(4966)去评论

Java弱引用(WeakReferences)

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

赞(0)xindooxindoo阅读(4923)去评论
Java HashMap源码浅析-XINDOO

Java HashMap源码浅析

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

赞(1)xindooxindoo阅读(5061)去评论

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

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

赞(0)xindooxindoo阅读(6340)评论(2)

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

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

赞(0)xindooxindoo阅读(4877)去评论