自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 jvisualvm内存泄漏排查

第一步双击要查看的线程,选择监视,然后点击堆Dump按钮,就会生成一份内存快照信息。也可以直接导入服务器的dump文件第二步选择类那一列,右键点击要查看的类(可排序),点击在实例视图中显示,打开类实例视图第三步类实例视图页面可以查看类的属性信息、值和引用信息,最重要的是类的引用信息、在引用视图,右键this选择显示最近的垃圾回收根节点(我一般是直接一层层打开),可以看到Utts类被一个叫utsMap的hashMap引用,而这个utsMap又被Test类引用(即utsMap可能定义在Tes

2020-08-06 20:27:31 2534

原创 CompletableFuture使用记录

Java8引入CompletableFuture提供了非常强大的Future的扩展功能,可以帮助我们简化异步编程的复杂性,并且提供了函数式编程的能力,可以通过回调的方式处理计算结果,也提供了转换和组合 CompletableFuture 的方法。可以代表一个明确完成的Future,也可以代表一个阶段( CompletionStage ),支持在计算完成以后触发一些函数或执行某些动作。使用场景只有当每个操作很复杂需要花费相对很长的时间(比如,调用多个其它的系统的接口;比如,商品详情页面这种需要从多个系统

2020-08-06 20:03:56 262

原创 java多线程:银行窗口业务

本人面试遇到的多线程笔试题,主要考察的多线程编程和面向对象思想。主要关注:多个窗口办理业务,有VIP窗口和普通窗口。VIP窗口可以办理普通业务,普通业务窗口只能办理普通业务,VIP用户在VIP窗口可以优先办理。一般核心业务实现出来就可以了。题目1、银行内有6个业务窗口,1-4号窗口为普通窗口,5号窗口为快速窗口,6号窗口为VIP窗口;2、有三种对应类型的客户:VIP客户,普通客户,快速客户...

2020-04-23 00:00:34 1199 2

原创 缓存穿透、缓存雪崩和缓存击穿

缓存穿透缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中需要查询DB,查不到数据则不写入缓。这将导致这个不存在的数据每次请求都要到DB去查询。解决如果一个查询返回的数据为空(不管是数据不存在,还是系统故障),我们仍然把这个空结果进行缓存,但它的过期时间会很短,最长不超过五分钟。采用布隆过滤器,将所有可能存在的数据哈希到一个足够大的bitmap中,一个一定不存在的数据会被 这个...

2020-03-17 23:31:43 134

原创 Redis分布式锁

介绍单机环境下,操作系统能够在进程或线程之间通过本地的锁来控制并发程序的行为。而在分布式架构或者集群环境下,基于本地单机的锁无法控制分布式系统中分开部署客户端的并发行为,此时分布式锁就应运而生了。特性(本例支持特性):多进程可见性(支持):多个客户端可感知互斥性(支持):作为锁,需要保证任何时刻只能有一个客户端(用户)持有锁可重入(不支持): 同一个客户端在获得锁后,可以再次...

2020-03-17 23:21:42 146

原创 mybatis主键生成插件

keyplugin-spring-boot-starter使用springboot-starter模块化开发的mybatis自定义主键生成,底层使用mybatis拦截器实现。支持UUID(UUID-String主键)、SNID(雪花算法-String主键)、LNID(雪花算法-Long主键)。支持注解@Id指定主键,注解优先级大于全局配置。支持分布式。github源码使用方式直接引入即可使...

2020-01-10 00:07:51 472

原创 SpringBoot自动配置

1、SpringBoot的主配置类@SpringBootApplicationpublic class SpringBootApplication { public static void main(String[] args) { SpringApplication.run(SpringBootApplication.class, args); }}...

2019-12-24 23:21:25 95

原创 linux实用命令-screen

前言系统迁移,linux服务器导入oracle备份分文件,由于文件太大,竟然长达几个小时。而远程终端窗口,因为它们执行的时间太长了。必须等待它们执行完毕,在此期间不能关掉窗口或者断开连接,否则这个任务就会被杀掉,一切半途而废了。上网查了一下解决办法,发现screen命令对于这种情况特别好使。概念简单来说,Screen是一个可以在多个进程之间多路复用一个物理终端的窗口管理器。Screen中有会...

2019-12-24 22:49:48 134

原创 nginx安装与负载均衡

安装依赖如果依赖没有安装,需要安装下面依赖,不然安装过程会报错。PCRE库zlib库ssl安装nginxwget -c https://nginx.org/download/nginx-1.16.0.tar.gztar -zxvf nginx-1.16.0.tar.gzcd nginx-1.16.0 ./configure --prefix=/software/nginx ...

2019-12-24 22:44:41 136

原创 linux -redis安装

前言nginx+多tomcat集群的方案。nginx作为负载均衡中间件,可以将请求分发到不同的tomcat上。这样就产生了一个新的问题:如果你使用了负载均衡把请求分发到不同的机器呢?这个时候会话session在客户端是没有问题的,但是如果用户的两次请求到了两台不同的机器,而它的session数据可能存在其中一台机器,这个时候就会出现取不到session数据的情况。这个项目采用redis-sses...

2019-12-24 22:30:40 61

原创 Mybatis拦截器

可拦截的接口可以拦截的Mybatis四大核心组件ExecutorMyBatis 执行器,是MyBatis 调度的核心,负责SQL语句的生成和查询缓存的维护StatementHandler 封装了JDBC Statement操作,负责对JDBC statement 的操作,如设置参数、将Statement结果集转换成List集合ParameterHandler 负责对用户传递的参...

2019-12-24 22:16:03 245

原创 责任链模式

责任链模式(Chain of Responsibility) : 在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新组织和分配责任。应用场景一个请求需要一系列的处理工作,可以避免避免大段的if else语句...

2019-12-24 18:02:58 132

原创 Java 线程池

类型Java通过Executors提供四种线程池,分别为:newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。newScheduledThreadPool 创建一个定长线程池,支持定时及周期性任...

2019-12-24 17:12:47 271

原创 jq获取select选中下标

$("#ID").prop('selectedIndex')//获取选中下标

2018-12-29 09:49:23 3497

空空如也

空空如也

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

TA关注的人

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