
MyInterview
文章平均质量分 70
我的记录
一只小小狗
大家好我是练习时长2年半的程序员
展开
-
Java 锁 面试题(ReentrantLock、synchronized)
可重入锁是指同一个线程可以多次获得同一把锁,而不会被阻塞。ReentrantLock和synchronized都是可重入锁。概念,具体实现方式有很多种。乐观锁认为数据一般不会造成冲突,所以不会上锁,而悲观锁认为数据一般会造成冲突,所以会上锁。自旋锁是指尝试获取锁的线程不会立即阻塞,而是采用循环的方式去尝试获取锁,这样的好处是减少线程上下文切换的消耗,缺点是循环会消耗CPU。公平锁是指多个线程按照申请锁的顺序来获取锁,非公平锁是非顺序的,非公平锁的优点在于吞吐量比公平锁大。原创 2023-05-28 03:44:08 · 1767 阅读 · 0 评论 -
线程池面试题
抛出来拒绝新任务的处理。:调用执行自己的线程运行任务,也就是直接在调用execute方法的线程中运行(run)被拒绝的任务,如果执行程序已关闭,则会丢弃该任务。因此这种策略会降低对于新任务提交速度,影响程序的整体性能。如果您的应用程序可以承受此延迟并且你要求任何一个任务请求都要被执行的话,你可以选择这个策略。:不处理新任务,直接丢弃掉。:此策略将丢弃最早的未处理的任务请求。通过构造函数来创建(推荐)。原创 2023-05-28 03:41:40 · 1765 阅读 · 1 评论 -
ArrayList扩容机制
欢迎大家加入我的开源项目,或者(在我的主页联系我)加入你们的开源项目,点点Github-Stars。原创 2023-05-28 03:39:53 · 468 阅读 · 0 评论 -
HashMap面试题
为了减少哈希冲突,提高查询效率。数组大小是 2 的幂次方,那么取模运算可以转化为位运算,效率更高。原创 2023-05-28 03:37:20 · 900 阅读 · 0 评论 -
HashMap 、 HashSet 、 Hashtable 、 ConcurrentHashMap 、TreeMap 的区别是什么
欢迎大家加入我的开源项目,或者(在我的主页联系我)加入你们的开源项目,点点Github-Stars。原创 2023-05-28 03:37:23 · 2148 阅读 · 0 评论 -
ArrayList(数组) 和 LinkedList(双向链表) 的区别是什么?使用ArrayList而不使用LinkedList的原因
[toc](ArrayList(数组) 和 LinkedList(双向链表) 的区别是什么?使用ArrayList而不使用LinkedList的原因)原创 2023-05-28 03:34:05 · 755 阅读 · 0 评论 -
List Set Map Queue Deque 之间的区别是什么?
欢迎大家加入我的开源项目,或者(在我的主页联系我)加入你们的开源项目,点点Github-Stars。原创 2023-05-28 03:34:29 · 773 阅读 · 0 评论 -
Java 集合面试题、Map面试题、List面试题等
为了减少哈希冲突,提高查询效率。数组大小是 2 的幂次方,那么取模运算可以转化为位运算,效率更高。原创 2023-05-28 03:33:33 · 968 阅读 · 0 评论 -
Spring支持哪些Aware接口?
欢迎大家加入我的开源项目,或者(在我的主页联系我)加入你们的开源项目,点点Github-Stars。这两个的区别不如说是ApplicationContext和BeanFactory的区别。原创 2023-05-26 12:19:30 · 939 阅读 · 0 评论 -
Spring框架中有哪些不同类型的事件
欢迎大家加入我的开源项目,或者(在我的主页联系我)加入你们的开源项目,点点Github-Stars。原创 2023-05-26 12:16:53 · 1015 阅读 · 0 评论 -
Spring事务的实现方式
欢迎大家加入我的开源项目,或者(在我的主页联系我)加入你们的开源项目,点点Github-Stars。Spring事务的实现方式主要有两种:编程式事务管理和声明式事务管理。Spring事务是和数据库事务保持一致。原创 2023-05-26 12:16:05 · 1228 阅读 · 0 评论 -
自动 装配
欢迎大家加入我的开源项目,或者(在我的主页联系我)加入你们的开源项目,点点Github-Stars。原创 2023-05-26 12:16:51 · 1141 阅读 · 0 评论 -
Spring如何解决循环依赖问题
Spring在单例模式下的setter方法依赖注入引起的循环依赖问题,主要是通过二级缓存和三级缓存来解决的,其中三级缓存是主要功臣。第二种setter方法(多例)的情况下,每一次getBean()时,都会产生一个新的Bean,如此反复下去就会有无穷无尽的Bean产生了,最终就会导致OOM问题的出现。在Spring中,只有第(3)种方式的循环依赖问题被解决了,其他两种方式在遇到循环依赖问题时都会产生异常。第一种构造方法注入的情况下,在new对象的时候就会堵塞住了,其实也就是”先有鸡还是先有蛋“的历史难题。原创 2023-05-26 12:14:34 · 1504 阅读 · 0 评论 -
Spring的Bean的作用域
欢迎大家加入我的开源项目,或者(在我的主页联系我)加入你们的开源项目,点点Github-Stars。原创 2023-05-26 12:15:17 · 1664 阅读 · 0 评论 -
Spring的Bean的生命周期
对于BeanFactory容器,当客户向容器请求一个尚未初始化的bean时,或初始化bean的时候需要注入另一个尚未初始化的依赖时,容器就会调用createBean进行实例化。①如果这个Bean实现了BeanNameAware接口,会调用它实现的setBeanName(String beanId)方法,传入Bean的名字;当Bean不再需要时,会经过清理阶段,如果Bean实现了DisposableBean这个接口,会调用其实现的destroy()方法;原创 2023-05-26 12:13:38 · 2574 阅读 · 0 评论 -
Spring框架中的Bean是线程安全的么?如果线程不安全,那么如何处理?
【代码】Spring框架中的Bean是线程安全的么?如果线程不安全,那么如何处理?原创 2023-05-25 21:44:38 · 374 阅读 · 0 评论 -
BeanFactory和ApplicationContext有什么区别?
(1)BeanFactory是Spring里面最底层的接口,是IoC的核心,定义了IoC的基本功能,包含了各种Bean的定义、加载、实例化,依赖注入和生命周期管理。,欢迎大家加入我的开源项目,或者(在我的主页联系我)加入你们的开源项目,点点Github-Stars。是Spring的两大核心接口,都可以当做Spring的容器。和ApplicationContext。原创 2023-05-25 21:43:55 · 1859 阅读 · 0 评论 -
IOC 和 AOP 的联系和区别
IoC让相互协作的组件保持松散的耦合,而AOP编程允许你把遍布于应用各层的功能分离出来形成可重用的功能组件。,欢迎大家加入我的开源项目,或者(在我的主页联系我)加入你们的开源项目,点点Github-Stars。原创 2023-05-25 21:43:12 · 156 阅读 · 0 评论 -
JDK动态代理和CGLIB动态代理
JDK动态代理只提供接口的代理,不支持类的代理,要求被代理类实现接口。JDK动态代理的核心是InvocationHandler接口和Proxy类,在获取代理对象时,使用Proxy类来动态创建目标类的代理类(即最终真正的代理类,这个类继承自Proxy并实现了我们定义的接口),当代理对象调用真实对象的方法时,CGLIB是通过继承的方式做的动态代理,因此如果某个类被标记为final,那么它是无法使用CGLIB做动态代理的。args 是被代理目标实例某个方法的具体入参, 在方法反射调用时使用。原创 2023-05-25 21:43:25 · 2964 阅读 · 0 评论 -
JDK动态代理和CGLIB动态代理
JDK动态代理只提供接口的代理,不支持类的代理,要求被代理类实现接口。JDK动态代理的核心是InvocationHandler接口和Proxy类,在获取代理对象时,使用Proxy类来动态创建目标类的代理类(即最终真正的代理类,这个类继承自Proxy并实现了我们定义的接口),当代理对象调用真实对象的方法时,CGLIB是通过继承的方式做的动态代理,因此如果某个类被标记为final,那么它是无法使用CGLIB做动态代理的。args 是被代理目标实例某个方法的具体入参, 在方法反射调用时使用。原创 2023-05-25 21:42:54 · 2075 阅读 · 0 评论 -
Spring-AOP是什么
(2)Spring AOP使用的动态代理,所谓的动态代理就是说AOP框架不会去修改字节码,而是每次运行时在内存中临时为方法生成一个AOP对象,这个AOP对象包含了目标对象的全部方法,并且在特定的切点做了增强处理,并回调原对象的方法。面向切面编程,是对OOP的补充,它允许开发者定义横向关系,将系统中的关注点分离出来形成一个独立的模块,这个模块被称为切面,它的作用是与业务逻辑无关的,但是又为业务逻辑模块所共同调用。AOP实现的关键在于 代理模式,AOP代理主要分为静态代理和动态代理。原创 2023-05-25 21:41:56 · 2987 阅读 · 0 评论 -
DI是什么
欢迎大家加入我的开源项目,或者(在我的主页联系我)加入你们的开源项目,点点Github-Stars。依赖注入,指的是由Spring容器在运行期间,动态地将某种依赖关系注入到对象之中。原创 2023-05-25 21:41:12 · 2997 阅读 · 0 评论 -
Spring-IOC是什么
Spring-IOC是Spring框架的核心,是一个容器,它负责实例化、定位、配置应用程序中的对象及建立这些对象间的依赖。,欢迎大家加入我的开源项目,或者(在我的主页联系我)加入你们的开源项目,点点Github-Stars。原创 2023-05-25 21:40:38 · 2939 阅读 · 0 评论 -
IOC初始化 IOC启动阶段 (Spring容器的启动流程)
[toc](IOC初始化 IOC启动阶段 (Spring容器的启动流程))原创 2023-05-25 21:36:54 · 2383 阅读 · 0 评论 -
Spring相关面试题(Spring核心)
实现InitializingBean Or DisposableBean接口,分别实现afterPropertiesSet()和destroy()方法,完成bean的初始化和销毁实现BeanPostProcessor接口,分别实现postProcessBeforeInitialization()和postProcessAfterInitialization()方法,完成bean的初始化前后的处理工作执行步骤:↓↓↓destroy()原创 2023-05-25 21:35:41 · 1846 阅读 · 0 评论 -
Java中 动态代理的应用场景
欢迎大家加入我的开源项目,或者(在我的主页联系我)加入你们的开源项目,点点Github-Stars。原创 2023-05-23 16:20:07 · 473 阅读 · 0 评论 -
Java使用JDK动态代理和CGLIB动态代理,代码示例
欢迎大家加入我的开源项目,或者(在我的主页联系我)加入你们的开源项目,点点Github-Stars。原创 2023-05-23 16:18:41 · 174 阅读 · 0 评论 -
JDK动态代理 VS CGLIB动态代理
欢迎大家加入我的开源项目,或者(在我的主页联系我)加入你们的开源项目,点点Github-Stars。原创 2023-05-23 16:16:04 · 415 阅读 · 0 评论 -
动态代理是什么?
欢迎大家加入我的开源项目,或者(在我的主页联系我)加入你们的开源项目,点点Github-Stars。原创 2023-05-23 16:14:28 · 567 阅读 · 1 评论