首页
首页
沸点
课程
直播
活动
竞赛
商城
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
天堂同志
掘友等级
Java工程师
学习
获得徽章 4
动态
文章
专栏
沸点
收藏集
关注
作品
赞
76
文章 76
沸点 0
赞
76
返回
|
搜索文章
最新
热门
FactoryBean——Spring的扩展点之一
1. FactoryBean的用法 自定义一个类CustomerFactoryBean,让它实现了FactoryBean接口,重写了接口中的两个方法,在getObejct()方法中,返回了一个UserService的实例对象;在getObjectType()方法中返回了User…
@Autowired注解的实现原理
1. 问题 2. Demo 运行main()方法,最终会在query()方法中打印出UserService对象。 3. 实现原理:AutowiredAnnotationBeanPostProcessor 在分析AutowiredAnnotationBeanPostProcess…
面试官:来!聊聊线程池的实现原理以及使用时的问题
无论是在工作中,还是在书本中,我们都可以听到或者看到关于线程在使用时的一些建议:不要在代码中自己直接创建线程,而是通过线程池的方式来使用线程。使用线程池的理由大致可以总结为以下几点。 1. 降低资源消耗。线程是操作系统十分宝贵的资源,当多个人同时开发一个项目时,在互不知情的情况…
读写锁ReadWriteLock的实现原理
synchronized和ReentrantLock实现的锁是排他锁,所谓排他锁就是同一时刻只允许一个线程访问共享资源,但是在平时场景中,我们通常会碰到对于共享资源读多写少的场景。对于读场景,每次只允许一个线程访问共享资源,显然这种情况使用排他锁效率就比较低下,那么该如何优化呢…
为什么JDK的动态代理要基于接口实现而不能基于继承实现?
1. 问题 2. JDK的动态代理的固定写法 JDK的动态代理的写法比较固定,需要先定义一个接口和接口的实现类,然后再定义一个实现了InvocationHandler接口的实现类。然后调用Proxy类的newInstance()方法即可。示例代码如下: 再定义一个Invocat…
redo log —— MySQL宕机时数据不丢失的原理
在开始阅读本文之前,可以先思考一下下面两个问题。 在 MySQL 5.5 以后,默认的存储引擎为 InnoDB,且只有 InnoDB 引擎支持事务和数据崩溃恢复,因此本文所有内容均是基于 InnoDB 存储引擎为前提。 MySQL 在更新数据时,为了减少磁盘的随机 IO,因此并…
ConfigurationClassPostProcessor —— Spring中最!最!最!重要的后置处理器!没有之一!!!
0. 疑惑 1. 作用 ConfigurationClassPostProcessor是一个BeanFactory的后置处理器,因此它的主要功能是参与BeanFactory的建造,在这个类中,会解析加了@Configuration的配置类,还会解析@ComponentScan、…
MySQL索引的工作原理
索引是一种加快查询的数据结构,在 MySQL 中,索引的数据结构选择的是 B+Tree,至于 B+Tree 是什么以及为什么 MySQL 为什么选择 B+Tree 来作为索引,可以去查看公众号的前三篇文章。 今天主要来聊聊 MySQL 中索引的工作原理,这一部分的知识,在工作中…
面试官:为什么《阿里巴巴Java开发手册》上要禁止使用Executors来创建线程池
在《阿里巴巴Java开发手册》第一章第6讲并发处理中,强制规定了线程池不允许使用Executors去创建。那么为什么呢?这就得从线程池和Executors这个类的本质上说起了。 在Java中提供了两种类型的线程池来供开发人员使用,分别是ThreadPoolExecutor和Sc…
阻塞队列LinkedBlockingQueue实现原理
在JUC包下提供了很多线程安全的队列,通常称之为阻塞队列。这些阻塞队列在线程池中的应用十分广泛,搞懂阻塞队列的实现原理,对平时使用阻塞队列会有很大帮助。本文将结合源码主要分析下LinkedBlockingQueue这个阻塞队列的实现原理。 LinkedBlockingQueue…
下一页
个人成就
优秀创作者
文章被点赞
954
文章被阅读
201,702
掘力值
5,854
关注了
12
关注者
544
收藏集
0
关注标签
55
加入于
2018-11-28