03 2021 档案

摘要:在web.xml中的额外配置 <!-- 配置Shiro过滤器,拦截所有的请求 --> <!-- 使用于SpringMVC整合的过滤器 ,使用Spring代理过滤器实现--> <!-- 问题:为什么需要使用SpringWEB提供的代理过滤器拦截Shiro处理的请求呢? 答:DelegatingFilt 阅读全文
posted @ 2021-03-10 15:14 茁壮成长的菜鸡 阅读(114) 评论(0) 推荐(0)
摘要:什么是享元模式享元 顾名思义就是共享同一个单元;目的是复用对象,节省内存,前提是享元对象是不可变的 Java中常见的享元模式运用Integer相关运用 public static void main(String[] args) { Integer i1 = 56; Integer i2 = new 阅读全文
posted @ 2021-03-09 10:06 茁壮成长的菜鸡 阅读(80) 评论(0) 推荐(0)
摘要:使用缘由 在描述volatile的作用时往往会采用并发情况下单例对象的创建的例子进行举例 下方代码为通过双重检锁机制实现单例 package com.lch; ​ public class Singleton { public static volatile Singleton singleton; 阅读全文
posted @ 2021-03-07 21:55 茁壮成长的菜鸡 阅读(90) 评论(0) 推荐(0)
摘要:适用场景 追求吞吐量;同步代码块执行时间较长 概念 当轻量级锁膨胀到重量级锁之后,意味着线程只能被挂起阻塞来等待唤醒了。每个对象中都有一个Monitor监视器,而Monitor依赖操作系统的MuteLock(互斥锁)来实现,线程被阻塞后便进入内核(Linux)调度状态,这个会导致系统在用户态和内核态 阅读全文
posted @ 2021-03-06 14:52 茁壮成长的菜鸡 阅读(441) 评论(0) 推荐(0)
摘要:适用场景 一般用于两个线程在交替使用锁的时候,由于没有同时抢锁,属于一种比较和谐的状态,就可以使用轻量级锁 加锁 线程在执行同步代码块之前,JVM会先在当前线程的栈帧中创建用于存储锁记录的空间,并将对象头中的Mark Word复制到锁记录中,官方称为Displaced Mark Word。然后当前线 阅读全文
posted @ 2021-03-06 14:51 茁壮成长的菜鸡 阅读(778) 评论(0) 推荐(0)
摘要:锁的存储方式 在HotSpot虚拟机中,对象在内存中的存储布局,可分为三个区域:对象头(header)、实例数据(Instance Data)、对齐填充(Padding)。Synchronize的锁是存在java对象头里。 java对象头例包含两部分信息: 1)Mark Word 用于存储自身的运行 阅读全文
posted @ 2021-03-06 14:49 茁壮成长的菜鸡 阅读(695) 评论(0) 推荐(0)
摘要:微服务与分布式事务 分布式事务是随着服务拆分而产生的问题,至于为什么要做服务拆分以及什么是微服务,可以参考下这里 我们知道对于分布式场景而言,肯定是遵循CAP理论的,所以对于这种情况下的事务而言,跨多个服务的调用事务则成了一个令人头疼的点,而Seata则是一个用于解决分布式环境下事务的框架。 Sea 阅读全文
posted @ 2021-03-06 14:43 茁壮成长的菜鸡 阅读(768) 评论(0) 推荐(0)