![](https://img-blog.csdnimg.cn/20210316183624385.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java
文章平均质量分 78
JAVA基础-高级技术
瓦素老凉
毕业于SCAU,EE专业。懂点嵌入式,目前在点后端技能树。Blog的用途:记录学习笔记和踩过的坑,也是一个地方能找到我。可以的话,还希望能够交一些志同道合的伙伴一起交流。
展开
-
【Java】MacOS IDEA 如何导入第三方的 Live Templates
Live Templates xml 文件的导入原创 2022-10-16 00:29:40 · 355 阅读 · 1 评论 -
【Java】IDEA 升级成 到 2021.02 出现的问题
问题1:运行报错:java: JPS incremental annotation processing is disabled. Compilation results on partial recompilatio解决:lombok 版本过老,升级最新版本 <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok&l原创 2021-08-11 23:44:31 · 2948 阅读 · 0 评论 -
【Spring】BeanPostProcessor 和 AOP 相关的 BeanPostProcessor
Bean后置处理器BeanPostProcessorBeanPostProcessor 是一个接口类:public interface BeanPostProcessor { Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException; Object postProcessAfterInitialization(Object bean, String beanName)原创 2021-07-17 18:45:15 · 2196 阅读 · 1 评论 -
【Java】synchronized和ReentrantLock分析
文章目录synchronized和ReentrantLock分析代码需求:思路:代码:缺点:ReentrantLock、Condition的await和signal思路ReentrantLock用法代码:synchronized分析线程的6个状态当线程竞争不到锁时阻塞时代码:输出:当线程调用wait时代码:输出:ReentrantLock分析当线程竞争不到锁时阻塞时代码:输出:当线程调用await时代码:输出:synchronized和ReentrantLock分析参考:子路老师博客: https:原创 2021-05-30 19:28:56 · 318 阅读 · 2 评论 -
【Java】synchronized的使用
文章目录synchronized锁定的资源锁定对象改变锁定对象为字符串常量减小锁的颗粒度脏读问题支持重入重入1重入2synchronized 与 异常处理synchronized的可见性问题原子性操作一道的面试题方式1:方式2:方式3:synchronized锁定的资源synchronized修饰的是方法或者代码块来实现同步,但其实锁定的资源其实是对象。synchronized修饰于3种方式(静态方法、普通方法、方法块),其锁定的资源有2种(类对象、类的实例)加synchronized关键字之后不一定能原创 2021-05-27 01:36:44 · 483 阅读 · 1 评论 -
【Java】HashSet/HashMap源码解读
文章目录HashSet解析HashSet的构造HashSet的add方法*HashMap的putVal方法HashMap的扩容方法:resizeHashMap树化方法:treeifyBinHashSet解析先从构造和add方法看起,并从此去看HashMap的相关。public static void main(String[] args) { HashSet set = new HashSet(); set.add("dog"); set.add("ca原创 2021-05-20 14:05:28 · 128 阅读 · 0 评论 -
【Java】反射机制
获取类对象的方式方式1:在编写静态源代码阶段,使用Class.forName+类全路径应用场景:读取配置文件 ——> 读取类的全路径 ——> 加载类,这种方式常用在底层框架中方式2:在Class类阶段,直接使用 类.class应用场景:用于把类作为参数传递方式3:在代码运行阶段时,当创建了事例对象时,通过对象名.getClass方法方式4:使用类加载器【类加载器一共有4种】classLoader.loadeClass()基本数据类型和其包装类的类基本数据类型都是装箱原创 2021-05-18 10:51:56 · 69 阅读 · 0 评论 -
【Netty】NIO模型的基础组件
初识NIOIO模型在java中有三种IO模型BIO 同步阻塞阻塞式IO,在java1.4之前通过InputStream、OutputStream实现。对于每个网络请求都需要创建一个线程,因为需要消耗资源,所以不适合高并发场景,优点时稳定。NIO 同步非阻塞基于BIO的问题,java1.4之后加入了NIO.实现原理时基于多路复用选择器来监测(双向管道)连接状态并通知线程处理。AIO 异步非阻塞NIO的非阻塞时基于多路复用选择器的对管道的轮询实现的。当管道数目较多,性能会被影响。在java1.7原创 2021-03-28 21:57:52 · 74 阅读 · 0 评论 -
【Netty】Netty的线程模型及简单用法
Netty的线程模型Reactor模型Netty的模型就是基于Reactor(反应堆)模式实现的,所以一定要先认识下Reactor。Reactor模型也叫Dispatch(派遣)模型。当一个或多个请求同时传给服务端,服务端将它们同步分派给各个请求的处理线程。Reactor模型的三种角色Acceptor:处理客户端新连接,并分配请求到处理链中Reactor:负责监听和分配事件,将I/O事件分配给对应的HandlerHandler:事件处理,如编码、业务处理、解码等Reactor的线程模型原创 2021-04-13 08:24:22 · 349 阅读 · 0 评论 -
【Netty】Netty的零拷贝原理与应用
Netty的零拷贝原理与应用IO中的零拷贝内存的用户空间和内核空间DMA 直接存储访问上下文切换普通的文件传输方式内存映射(MMAP)方式Linux的sendFile()优化Linux2.1的方式Linux2.4的方式NIO中的零拷贝内存堆内存特点:堆外内存特点:文件传输Netty中的零拷贝内存:文件传输IO中的零拷贝内存的用户空间和内核空间内存中有用户空间提供给用户调用内存中内核空间给操作系统的指令使用DMA 直接存储访问DMA:直接存储访问,即不会经过CPU的运算,直接由DMA总线进行拷贝原创 2021-04-28 00:05:34 · 294 阅读 · 0 评论 -
【并发】Executor框架(持续)
Executor框架大概描述:将线程池的工作单元和执行机制分开,JDK1.5出了Executor框架来实现线程池功能Executor的三大组成任务:工作单元。被执行的任务为需要实现Runnable或Callable接口执行:执行机制。将任务分配给线程的执行机制。Executor接口及ExecutorService结果:异步返回的计算结果。Future接口及FutureTask流程框架:Executor线程池种类:待记录提交任务execute和submit的区别submit:原创 2021-04-10 13:30:04 · 88 阅读 · 0 评论