自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Redis之存储数据结构

通用命令Type key 可查看key 存储的数据类型存储Stirng 数据类型px:失效毫秒;ex:失效秒;nx:如果不存在才可以设置成功,返回true,否则返回falseListSetSringCache注解也可以实现缓存查询,写入必须设置Spring 的开启缓存注解配置缓存bean查询缓存key= 1+2删除缓存更新缓存...

2020-04-06 06:34:38 81

原创 Spring之解决Bean间循环依赖

Spring通过DI(依赖注入)实现IOC(控制反转)实例Bean注入1、构造方法注入:a) xml文件配置 b) java代码public class UserService implements IUserService {private IUserDao userDao;public UserService(IUserDao userDao) { t...

2019-12-08 10:04:43 105

原创 mybatis数据库连接池

为什么使用连接池应用程序与底层DB进行通信连接时间过长,可能大于执行sql的时间。为了减少性能开销,使用连接池管理连接。数据源有三种方式转载地址:https://blog.csdn.net/yue_cui_wu/article/details/82627770https://www.cnblogs.com/yixiu868/p/8142986.html三种方式都是通过不同数据源工厂进行...

2019-12-07 21:42:12 668

原创 NIO浅析(1)

NIO浅析1、为什么使用NIO?一句话:都是阻塞惹的祸BIO服务端存在请求阻塞阻塞,不能同时处理多个客户端的连接请求。有人提出在服务端accept后,创建线程去处理请求。这种方式有不足:互联网高并发场景下,过多的线程会导致OS的频繁切换,大大影响性能,即使使用线程池创建线程。以上用线程池会产生请求时间长,拒绝服务,但是服务器资源可能并未高效率使用。...

2019-11-07 21:14:42 135

原创 高并发分布式限流

高并发分布式限流单机简单实现Atomic 原子类2、Redis 缓存代码示例:3、单机使用:GUAVA简单实现,但是用于单机时间窗 分布式限流 每秒请求数不足:if 执行时间过长,可能导致缓存时间边长。改进:一次实现多个redis操作----lua脚本保证多操作,原子性4、3的弊端:单机手写以上:分布式:平滑取...

2019-10-24 21:40:25 189

原创 JAVA内存模型之可见性

volatile并不是禁止JVM对所有的指令进行重排,只是对影响读数据的情况才会进行指令重排语义是: can not be cached

2019-10-18 16:21:50 128

原创 线程通信学习小结

线程通信浅析java支持多线程执行,线程之间需要进行数据交互,消息传输,必然会存在线程间的通信。例如:线程自旋,线程等待,锁,线程唤醒等。下面介绍几种线程通信api说明1、suspend/resume组合此组合以及被jdk废弃掉。原因:此通信api很容易导致线程通信的死锁。死锁示例共两个代表示例:a) 两个线程同时使用同一个对象锁,相互持有锁时,就会出现死锁情况。b) 执行resu...

2019-10-17 20:21:59 168

原创 JAVA运行堆栈分析

JAVA运行堆栈分析1、jvm运行数据区a、线程栈区域是线程 独占区域,随着线程的生命周期结束而销毁b、方法区+堆区域是线程共享区域,随着虚拟机或者GC而销毁c、堆区是GC的区域。对象实例引用(指针)是放在虚拟机栈,栈默认最大值为1M...

2019-10-17 17:23:37 126

原创 JAVA常用命令工具小结

JDK内置工具1、javap反编译工具,主要根据字节码反编译为 java源代码。主要使用:javap -v 查看方法定义,输出附加信息等2、jps查看java进程,pid编号3、jstat监视JAVA虚拟机统计信息,主要用于JVM性能 优化4、jcmd可以替代jps查看本地java进程列表5、jmap打印java内存中Object 对象的情况或将vm中堆信息,以二进制的形...

2019-10-15 14:01:30 216

原创 JAVA中内存爆炸浅析

JVM内存1、-xms:内存占用预热过程jvm所占有的操作系统内存最小设置参数。并不是JVM启动时直接划分内存到值的设置,内存达到最小值是有预热过程,除非程序使用内存太大,等于或者超过设置最小内存,否则是JVM逐步加载至此值。语义当JVM发生GC时,保留JVM使用最小内存的值。JVM直接申请至最小内存设置通过设置:-xx:+AlwaysPretouch,JVM启动时直接申请内存...

2019-10-15 09:03:11 640

转载 mysql 索引查询

mysql 查询计划解释:目前转载一篇,后续随时更新https://www.cnblogs.com/acm-bingzi/p/mysqlExplain.html

2019-10-14 11:15:39 76

原创 类加载器学习小结

类加载器学习小结本篇博客会介绍类加载器的类型、类是否会被重复加载、双亲委派模型、类中静态代码块及静态方法何时被加载1、类加载器类型顶级加载器---------BootstrapClassLoader此类加载器会加载C:\Program Files (x86)\Java\jre1.8.0_131\lib/ 目录下面的.jar包。比如:rt.jar等扩展类加载器------ExtClassL...

2019-10-14 09:30:10 75

原创 多线程编程之线程池使用

多线程编程之JAVA线程池多种使用方式1、基于无界队列如果corePoolSize == maxmumPoolSize时,等同于使用工具类实现Executors.newFixedThreadPool(corePoolSize )code 如下:优点:队列无限大,任务可以不断写入缺点:任务不易控制备注:若执行任务未达到核心线程池数量,线程池则会建立新的线程执行;若执行任务数量达到核心...

2019-10-13 17:29:06 152

空空如也

空空如也

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

TA关注的人

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