随笔分类 -  Java

1 2 下一页

Java并发编程之AbstractQueuedSynchronizer队列同步器与可重入锁ReentrantLock
摘要:前言:之前有写过关于重入锁ReentrantLock的解析,而重入锁ReentrantLock的核心在于它的两个锁非公平锁和公平锁的所继承的父类AbstractQueuedSynchronizer,接下来就是关于AbstractQueuedSynchronizer的详解,包括图文、源码。后文Abst 阅读全文

posted @ 2022-06-19 22:42 lyjlyjlyj 阅读(50) 评论(0) 推荐(0)

Java线程池之可缓存的线程池Executors.newCachedThreadPool()与阻塞队列SynchronousQueue
摘要:前言:上一篇单线程池的随笔提到了非固定线程数的线程池,那么本文就以前文为基础,剖析Java线程池中的Executors.newCachedThreadPool()。Executors.newCachedThreadPool(),后文简称为缓存线程池。 ***Executors.newCachedTh 阅读全文

posted @ 2022-06-14 22:42 lyjlyjlyj 阅读(2967) 评论(0) 推荐(0)

Java线程池之Executors.newSingleThreadExecutor()
摘要:Java线程池Executors.newSingleThreadExecutor() 前言:本文先就Java线程池 ThreadPoolExecutor 进行分析,然后逐步分析单线程池的源码工作流程 ThreadPoolExecutor的工作流程 我们执行以下代码: ExecutorService 阅读全文

posted @ 2022-06-13 21:13 lyjlyjlyj 阅读(3492) 评论(0) 推荐(0)

IO、NIO与Netty
摘要:IO、NIO与Netty 前言:此文主要用于记录Netty学习之后的总结与笔记,较为浅显 Demo源码地址 1.BIO、NIO、AIO Java中有三种网络模型:BIO、NIO和AIO 1.1 BIO同步阻塞IO BIO就是Java IO包中的一系列流 import java.io.*; BIO作为 阅读全文

posted @ 2022-06-09 16:43 lyjlyjlyj 阅读(122) 评论(0) 推荐(0)

JVM之GC调优
摘要:GC调优 参考:美团JVM调优文章 参数例子 java -jar -Xmx1024m -Xms1024m -Xmn256m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/jvmlogs/ -XX:+UseParNewGC -XX:+Use 阅读全文

posted @ 2021-06-03 15:24 lyjlyjlyj 阅读(373) 评论(0) 推荐(0)

JVM的栈、堆
摘要:栈 什么是栈 栈又叫堆栈,是先入后出的数据结构 栈是线程私有的,不能互相访问的,栈随着线程的创建而创建,并且在编译时就已确定了栈的大小 栈通过栈帧保存了局部变量、对象的内存引用地址、操作栈、动态链接等等 栈帧 栈帧就是栈中的最小单位,第一个方法的调用就会生成栈帧,并将其压如栈中,就是压栈。 第一个方 阅读全文

posted @ 2021-04-29 09:50 lyjlyjlyj 阅读(171) 评论(0) 推荐(0)

SpringMVC及其HandlerMapping、HandlerInterceptor、HandlerAdapter等组件的原理解析
摘要:SpringMVC的原理 加载的过程 关于加载,在SpringIOC的加载过程中,并不会直接将HandlerMapping等组件给加载进去,而是在第一次请求的时候,进行初始化 SpringMVC核心类,DispatcherServlet的类图 关于DispatcherServlet的初始化过程:由H 阅读全文

posted @ 2021-04-21 00:05 lyjlyjlyj 阅读(267) 评论(0) 推荐(0)

静态代理、动态代理和CGLIB,SpringAOP中的代理
摘要:静态代理、动态代理和CGLIB 动态代理和CGLIB都是运行时构建代理对象,动态代理通过反射的方式,CGLIB通过java字节码织入继承父类的方式实现 静态代理 静态代理的核心在于,代理类和被代理的类实现同一个接口 public interface IUserService { void save( 阅读全文

posted @ 2021-04-16 09:24 lyjlyjlyj 阅读(86) 评论(0) 推荐(0)

重入锁ReentrantLock详解
摘要:重入锁ReentrantLock详解 ReentrantLock 实现自AQS队列同步器,其字面意思是可以重复进入的锁,其功能也如其名,在一个同步代码块中,可以多次调用 lock() 进行上锁,当然也需要对其进行多次解锁,才能使同步状态归0,其它线程才能重新获得锁。 重入锁又分为非公平锁和公平锁两种 阅读全文

posted @ 2020-11-20 14:12 lyjlyjlyj 阅读(176) 评论(0) 推荐(0)

关于反射效率的测试
摘要:前言:由于项目中有一些公共的属性需要初始化,例如创建人、创建时间等。考虑两种做法,一种是通过反射的方式实现,还有就是通过继承公共类的方式。两种方式各有利弊,反射对原有的类侵入性小,但是反射有效率问题,而继承公共类的话对类侵入性大,可维护性不太好。所以呢,想使用反射,然后测试一下反射的效率 publi 阅读全文

posted @ 2020-06-29 21:46 lyjlyjlyj 阅读(209) 评论(0) 推荐(0)

Spring Bean DI装配问题、高级装配、根据环境注入、同父类的多个子类注入问题、作用域、如何运行时注入配置
摘要:Spring的初衷 简化系统的复杂性; 使用依赖注入降低系统耦合度,减少开发者对对象的维护; 提供切面编程,将模块组件化,而非代码直接调用; 提供特定模块的模板,避免开发者写重复代码; 利于测试; Spring Bean的装配 三种装配方式:XML、JavaConfig、自动装配 XML通过XML文 阅读全文

posted @ 2020-05-16 14:10 lyjlyjlyj 阅读(1327) 评论(0) 推荐(0)

并发工具类CountDownLatch、CyclicBarrier(同步屏障)、Semaphore(控制并发线程数)、Exchanger(线程交换数据)
摘要:CountDownLatch 简介原理 CountDownLatch是由队列同步器实现的。 在构建新的CountDownLatch对象时,需要传入一个大于0的整形int参数。而这个参数就作为队列同步器的state同步状态了。 public CountDownLatch(int count) { if 阅读全文

posted @ 2020-04-22 11:48 lyjlyjlyj 阅读(180) 评论(0) 推荐(0)

Lock接口、AbstractQueuedSynchronizer队列同步器、重入锁、读写锁
摘要:一、Lock接口 Lock接口提供了一些方法,比如lock(),tryLock()等方法,像ReentrantLock就是基于队列同步器来实现的 二、AbstractQueuedSynchronizer 1.什么是队列同步器 队列同步器是一个抽象类,提供了实现线程队列获取同步状态的一系列方法(简单理 阅读全文

posted @ 2020-04-17 22:42 lyjlyjlyj 阅读(134) 评论(0) 推荐(0)

SpringMVC一点简单地源码解析
摘要:. 1.1 init(初始化) 在第一次发出请求时,会调用HttpServletBean 的init()方法 org.springframework.web.servlet.HttpServletBean.init() //读取配置文件,初始化等操作 org.springframework.web. 阅读全文

posted @ 2020-02-21 11:30 lyjlyjlyj 阅读(141) 评论(0) 推荐(0)

MyBatis源码部分简单地解析
摘要:. 一、解析xml: > org.apache.ibatis.session.SqlSessionFactoryBuilder.build(java.io.InputStream, java.lang.String, java.util.Properties) > org.apache.ibatis 阅读全文

posted @ 2020-02-21 11:04 lyjlyjlyj 阅读(199) 评论(0) 推荐(0)

HashMap ConcurrentHashMap解读
摘要:前言: 常见的关于HahsMap与ConcurrentHashMap的问题: 数据结构、线程安全、扩容、jdk1.7 HashMap死循环、jdk1.8 HashMap红黑树、容量必须是2的冥次 HashMap 数据结构:数组,单向链表 线程安全:不安全,HashTable线程安全,但是全用了 sy 阅读全文

posted @ 2020-02-20 21:28 lyjlyjlyj 阅读(227) 评论(0) 推荐(0)

LocalDateTime整合到SpringBoot + MyBatis中
摘要:啥也不说先贴两个代码: 一:MVC层配置 二、关于数据层MyBatis需要配置pom新增依赖: 阅读全文

posted @ 2019-11-04 16:50 lyjlyjlyj 阅读(522) 评论(0) 推荐(0)

SpringBoot + redis + @Cacheable注解实现缓存清除缓存
摘要:一、Application启动类添加注解 二、注入配置 三、缓存注解 四、清除缓存注解 更详细请参考: https://blog.csdn.net/dreamhai/article/details/80642010 阅读全文

posted @ 2019-10-21 11:50 lyjlyjlyj 阅读(4145) 评论(0) 推荐(0)

Java8 Stream分组
摘要://根据排课id分组 Map<Integer, List<Schedule4Homework>> idSchedule4HomeworksMap = schedule4Homeworks.stream().collect(Collectors.groupingBy(Schedule4Homework 阅读全文

posted @ 2019-09-03 16:47 lyjlyjlyj 阅读(296) 评论(0) 推荐(0)

《Java并发编程的艺术》并发编程的基础(四)
摘要:一、线程简介 1.线程的概念 系统运行的最小单元 2.为何使用多线程 更好地利用系统资源(处理器多核心),提高响应速度。 3.线程的状态 关于wait和notify: 结果: wait方法会释放锁,sleep则不会 二、启动和终止线程 1.启动线程 1.构建线程 注意:最好给线程初始化名称,方便JV 阅读全文

posted @ 2019-07-04 15:20 lyjlyjlyj 阅读(150) 评论(0) 推荐(0)

1 2 下一页

导航