JAVA
文章平均质量分 91
burg_xun
热爱运动
展开
-
记一次服务假死的问题排查
日常问题总结原创 2022-03-05 14:29:19 · 784 阅读 · 0 评论 -
FastJson 过滤复杂数据对象
FastJson 过滤复杂数据对象前言描述分析SimplePropertyPreFilter 的使用过滤名称重复的字段改良的版本依旧不灵活的问题最终版本过滤带层级属性 PropertyPreFilter其余的过滤器介绍总结前言很久 没有 写博客了 一晃都已经2个月了 到新东家也有2个月了,好快!博客还是要重新拾起了,养成一个好习至少要21天 但是毁掉它只需要一个借口~描述先描述下问题,最近做了一个任务,主要是处理数据的问题,所有的原始数据存在的我们的Nosql 数据库中,使用的是AWS 的Dyn原创 2020-11-10 17:05:12 · 791 阅读 · 1 评论 -
一次使用Redis做短信次数验证的小思考
前文都好久没写博文了,一转眼都一个月过去了,今天写点儿简单的,是我工作中遇到的,前一段时间做一个任务,里面涉及到一个发送短信次数的验证:需求原需求是这样的:要求用户没小时发送短信的次数不能超过5次,如果超过了就当天限制发送!想法拿到这样的需求,各位小伙伴会有怎么样的想法呢,你心中的方案是什么?话不多说!我一开始的第一个想到的方案 是 存数据库 建一张表 记录发送的记录 然后每次发送的时候 查表再做下验证!为嘛为会这么想呢,因为我看系统里面之前发送短信频次的验证就是这么写的!如果这样时候原创 2020-08-22 19:13:22 · 845 阅读 · 2 评论 -
HashMap 容量大小的问题-为什么长度都是2的幂?
前言在之前的文章 我分析过HashMap 初始化容量的问题 不清楚的可以看这个。经过这篇文章 我们知道了 HashMap是什么时候 设置容量大小的,容量大小和容量的阀值 是怎么计算的,但是有的小伙伴 包括我 可能对一点比较好奇 为什么默认的容量是16 而且计算是自己容量的时候,最终计算出来的容量也是2的幂次方?可能 有的小伙伴知道 这个是为了 降低哈希碰撞率,那是为什么呢?那我们今天就来聊一聊分析容量计算 /** * Returns a power of two size f原创 2020-07-07 12:03:48 · 358 阅读 · 1 评论 -
ConcurrentHashMap 怎么样去保证线程安全的, 读操作为什么不需要加锁
ConcurrentHashMap前言分析初识ConcurrentHashMap数据结构对比HashMap和ConcurrentHashMapConcurrentHashMapinitTable初始化put的线程安全transfer 扩容时的线程安全get总结前言最近在看公众号 看到一个问题:为什么 ConcurrentHashMap 的读操作不需要加锁?第一次看到这个问题的时候 我也确实比较懵逼 我虽然知道ConCurrentHashMap 是怎么在put的时候 去保证线程安全的,但是真的没关注原创 2020-07-01 23:18:26 · 2028 阅读 · 0 评论 -
HashMap 容量设置-什么时候初始化
HashMap 容量设置问题的分析前言问题剖析源码分析初始化存放元素resize()总结前言最近 在看 HashMap 看到一个问题:HashMap 初始容量设置为 10000 时,放入 10000 条数据是否需要扩容;如果初始容量设置为 1000 时,放入 1000 条数据是否需要扩容?不知道有多少小伙伴 能回答出这个问题哈问题剖析看到这个问题 我一开始也不知道,但是从题目中 我们可以看出 初始容量的设置大小 对后面的 存放数据的多少 一定有影响 不然问题也不会这么问。我们知道原创 2020-06-29 15:20:20 · 1612 阅读 · 0 评论 -
SpringMVC(三)-DispatcherServlet(一)
FrameworkServlet前言结构HttpServletBeanFrameworkServletcontextConfigLocationcontextClasswebApplicationContextinitServletBeaninitWebApplicationContextrootContextfindWebApplicationContextcreateWebApplicationContextonRefreshconfigureAndRefreshWebApplicationContex原创 2020-06-27 18:29:04 · 191 阅读 · 0 评论 -
SpringMVC(二)-ContentLoaderListener去创建Root web容器
前言今天继续上一篇文章,上篇文章中只要将了 我们SpringMVC 中的ContextLoaderListener 是怎么被加入监听 然后tomact又是怎么去加载web.config配置的 最后怎么去调用ContextLoaderListener#contextInitialized方法的 不清楚的小伙伴 可以回到上篇文章 去看下ContextLoaderListener我们从前文中分析得到 程序启动的时候 是调用了contextInitialized的方法那我就从这个方法入手 看看到底执行原创 2020-06-26 17:43:46 · 187 阅读 · 0 评论 -
一起聊聊JVM 运行时数据区(二)
JVM 运行时数据区运行时数据区共享区堆区方法区隔离区虚拟机栈栈帧本地方法栈程序计数器运行时数据区JVM 运行时数据区主要分为5块方法区 JDK1.8以后叫做元数据区(Metaspace)堆区虚拟机栈区本地方法栈区程序计数器方法区和堆都是线程共享的,在JVM启动时创建,在JVM停止时销毁,而Java虚拟机栈、本地方法栈、程序计数器是线程私有的,随线程的创建而创建,随线程的结束而...原创 2020-04-13 22:44:18 · 125 阅读 · 0 评论 -
一起聊聊JVM 虚拟机&&类加载(一)
JVM 虚拟机&&类加载虚拟机虚拟机简介Class 文件常量池虚拟机类加载加载验证准备解析字段的解析类方法解析接口方法解析类加载器加载器类型双亲委派什么是双亲委派如何打断为什么要使用双亲委派虚拟机虚拟机简介Java 虚拟机(JVM)是运行java程序的抽象计算机,它是计算机设备的规范,可以采用不同方式进行实现,java 程序通过运行在JVM中实现跨平台,一次编译到处运行,不同...原创 2020-04-13 02:02:14 · 427 阅读 · 0 评论