
博客
weixin_45745355
这个作者很懒,什么都没留下…
展开
-
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 · 138 阅读 · 0 评论 -
mybatis数据库连接池
为什么使用连接池应用程序与底层DB进行通信连接时间过长,可能大于执行sql的时间。为了减少性能开销,使用连接池管理连接。数据源有三种方式转载地址:https://blog.youkuaiyun.com/yue_cui_wu/article/details/82627770https://www.cnblogs.com/yixiu868/p/8142986.html三种方式都是通过不同数据源工厂进行...原创 2019-12-07 21:42:12 · 732 阅读 · 0 评论 -
JAVA运行堆栈分析
JAVA运行堆栈分析1、jvm运行数据区a、线程栈区域是线程 独占区域,随着线程的生命周期结束而销毁b、方法区+堆区域是线程共享区域,随着虚拟机或者GC而销毁c、堆区是GC的区域。对象实例引用(指针)是放在虚拟机栈,栈默认最大值为1M...原创 2019-10-17 17:23:37 · 161 阅读 · 0 评论 -
NIO浅析(1)
NIO浅析1、为什么使用NIO?一句话:都是阻塞惹的祸BIO服务端存在请求阻塞阻塞,不能同时处理多个客户端的连接请求。有人提出在服务端accept后,创建线程去处理请求。这种方式有不足:互联网高并发场景下,过多的线程会导致OS的频繁切换,大大影响性能,即使使用线程池创建线程。以上用线程池会产生请求时间长,拒绝服务,但是服务器资源可能并未高效率使用。...原创 2019-11-07 21:14:42 · 177 阅读 · 0 评论 -
高并发分布式限流
高并发分布式限流单机简单实现Atomic 原子类2、Redis 缓存代码示例:3、单机使用:GUAVA简单实现,但是用于单机时间窗 分布式限流 每秒请求数不足:if 执行时间过长,可能导致缓存时间边长。改进:一次实现多个redis操作----lua脚本保证多操作,原子性4、3的弊端:单机手写以上:分布式:平滑取...原创 2019-10-24 21:40:25 · 231 阅读 · 0 评论 -
JAVA中内存爆炸浅析
JVM内存1、-xms:内存占用预热过程jvm所占有的操作系统内存最小设置参数。并不是JVM启动时直接划分内存到值的设置,内存达到最小值是有预热过程,除非程序使用内存太大,等于或者超过设置最小内存,否则是JVM逐步加载至此值。语义当JVM发生GC时,保留JVM使用最小内存的值。JVM直接申请至最小内存设置通过设置:-xx:+AlwaysPretouch,JVM启动时直接申请内存...原创 2019-10-15 09:03:11 · 716 阅读 · 0 评论