自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 记录一次蛋疼的盏溢出问题

情景:在程序运行期间莫名会出现StackOverflowError,(PS:长时间运行,数据量变大,此处由于不方便透露业务层面的东西所以将就哈啦)所谓的盏溢出是应为在当前线程运行期间不断的增加线程中的引用量举个栗子:首先为了方便我们将jvm的线程容量设置小一点即-Xss100kb其次上代码!!!!但是要注意的是我们要用八大基本类型这样才能造成栈溢出,当然这地方我会一次性将常见的堆溢出也搞出来//栈溢出栗子Integer i = 0; @Test public void tes

2020-12-24 15:32:47 148 2

原创 手撸tomcat一点思路值撸tomcat猫

论撸猫编程流程之所以tomcat可以接受到请求无非他内部封装了有一个Socket【不管你怎么改变封装都需要Socket来接受浏览器发出的请求】Socket无非内部封装的有端口号,线程池之类的我们通过Socket接受到数据后将对应的数据流转换为我们能看懂的字符当然对于网络请求还必须要有req与res对象,这两对象的规定者是J2EE,而tomcat是实现了他,req与res有数据无非就是将我们拿到的Socket内部的字符解析封装成req与res中的数据【说到底他还是通过string进行语法解析】

2020-12-03 15:33:54 216

原创 中层次理解hashmap那点事

引言 (首先先怼几个hashmap中几个参数的含义所在)扩容系数0.75

2020-12-01 14:49:45 126 2

原创 手撸JDK之Semaphore那点事

前置思想首先明确一点,削峰限流不一定非要用MQ队列,其实JDK就给我们提供了良好的环境Semaphore他主要作用是以【时间换空间】也就是我们现在处理不了的请求让他稍等一会,之后我们闲暇的空间了在处理他,此处主要是JDK已经实现了削峰限流所以手撸一个让自己更加深刻。主要思想Semaphore无非就是将不能处理的请求放入队列中,在可以处理的时候拿出。主要使用到的类LinkedBlockingQueue:此处当然少不了队列,当然此队列还有一个作用,谁哪的令牌谁放回去AtomicInteger:主要

2020-09-22 16:16:40 174

原创 手撸JDK之ReentrantLock锁那点事

前置思想首先明确一点ReentrantLock与synchronized最大的不同点在于synchronized是锁住了对象的头部,而ReentrantLock是类似于我们买一把锁,锁住我们不想因为多线程下导致资源的原子性 ,可见性的问题,在明确这一点时我们的锁其实与生活中的所没太大区别,生活中的锁无非就是大门挂一把锁,这样我们就告诉别人此处以上锁,唯一不同的是程序锁必须由上锁的人来解锁,而生活中我们可以持有别人的锁进行开锁。主要使用到的类AtomicInteger:主要保证此锁的原子性与可见性,

2020-09-21 15:10:13 889

原创 mysql分区优化的一些坑

说明:一下几种都是本人进过测试的都是向数据库中加入2000W数据,存储引擎InnoDB版本5.7主要对比几种开启分区,与未开启分区之间的优化【ps:如有不对的地方请大手不吝啬指教】1.一个表最多只能有1024个分区2.如果分区字段中有主键或者唯一索引的列,那么所有主键列和唯一索引列都必须包含进来3.分区表无法使用外键约束4.NULL值会使分区过滤无效5.所有分区必须使用相同的存储引擎分区的类型:RANGE分区:基于属于一个给定连续区间的列值,把多行分配给分区对于此分区我在测试的时候使用=、

2020-09-18 16:55:24 738 1

原创 论怎么不借助中间件来玩转并发操作

引言使用MQ主要在高并发下实现限流削峰,这是优势,但是这也增加了开发成本,主要使用新技术我们需要进行研发,踩坑等等流程,此处搬运与网易云的Kane老师,觉得老师的无论脑洞还是思路都很开阔,好了夸完了开怼!!!/---------------------------------------------超大分割线------------------------------------------------------------/思路首先我们要清楚并发无非就是一票子用户在怼你的数据库【此处不用缓存,应

2020-09-10 21:09:42 222

原创 论怎么彻底干掉ifelse的策略模式怎么实现

此处还是基于spring容器实现的此处的灵感来源于spring中自动配置bean首先我们还是定义一个策略集合public interface CalculateStrategy { /** * 角色 */ public String userType(); /** * 算钱 */ public double discount(double fee);}策略实现@Servicepublic class VipCalcu

2020-08-17 15:44:34 142

原创 基于spring实现观察者模式

观察者模式当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知依赖它的对象。观察者模式属于行为型模式。此处主要基于spring实现观察者模式,废话不多说上干货首先我们定义一个事件public class OrderEvent extends ApplicationEvent { /** * 观察者中的事件 * 主要作用是传递参,让监听者感知有事件发布 */ public OrderEve

2020-08-17 15:29:35 661

原创 关于优雅的解决Redis缓存雪崩问题

作为一个内存数据库,redis也总是免不了有各种各样的问题,这篇文章主要是针对其中一个问题进行讲解:缓存雪崩。并给出一些解决方案。关于缓存雪崩问题缓存雪崩是指大量的缓存在同一时间过期,导致大量请求请求数据库这样会导致我们的数据库压力过大,甚至崩溃解决方案主要是加共享锁+双重检测锁来实现的,当然现在基本都是基于组件开发所以我准备使用注解开发,去除一大票子重复代码!!!pom与yml省略一万字定义一个注解@Miss主要作用是获取方法上的入参名称以及值/** * CodeNOOB * * @

2020-08-06 15:03:10 173

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除