Java面试题每日三问
文章平均质量分 96
在这个专栏中,我将每天挑战自己,背诵三道Java面试题,深入理解每个问题的背后逻辑与解答思路。通过系统化的学习和总结,提升自己的Java编程能力和面试技巧,助力未来的求职之路。欢迎大家一起交流,共同进步!
时间会证明一切.
24届找不到工作,java菜鸟一枚
展开
-
【Java面试】第十一天
SpringBoot通过Spring 的条件配置决定哪些bean可以被配置,将这些条件定义成具体的Configuration,然后将这些Configuration配置到spring.factories文件中(这种方式Springboot 2.7.0版本已不建议使用,最新的方式是使用 /META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports )这允许你不仅按类型注入,还可以按名称引用具体的bean。原创 2024-09-13 21:41:45 · 2126 阅读 · 0 评论 -
【Java面试】第十天
3、约定大于配置:SpringBoot中有很多约定大于配置的思想的体现,通过一种约定的方式,来降低开发人员的配置工作。而且,每个 Prototype Bean 的实例都需要占用一定的内存,可能会导致内存资源的消耗较大。但是,很多人都会忽略一个关键的步骤(网上很多介绍SpringBoot启动流程的都没提到),那就是Web容器的启动,及Tomcat的启动其实也是在这个步骤。:这一步,是Spring启动的核心步骤了,这一步骤包括了实例化所有的 Bean、设置它们之间的依赖关系以及执行其他的初始化任务。原创 2024-09-12 19:49:12 · 1022 阅读 · 0 评论 -
【Java面试】第九天
有的时候,你排查了很久,发现都没问题,但是还是不生效,然后找别人来帮你看,他上来就看了一下你用的@Transactional,发现并不是Spring中的,而是其他什么地方的,比如 javax.transaction.Transactional ,这样也会导致事务失效。在之前的一个项目中,我就发现我们的Service层的事务全都失效了,一个SQL执行失败后并没有回滚,排查下来才发现,是因为一位同事新增了一个切面,这个切面里面做个异常的统一捕获,导致事务的切面没有捕获到异常,导致事务无法回滚。原创 2024-09-11 19:02:46 · 717 阅读 · 0 评论 -
【Java面试】第八天
除了Spring官方提供的这些作用域以外,我们还可以自定义我们自己的作用域,Spring提供了这方面的支持。要自定义一个 Spring 的作用域,需要实现接口。这个接口要求实现几个关键方法来管理 Bean 的生命周期。@Nullable@Nullable@Nullable接下来,我们需要实现接口的方法,例如 get(创建或检索 Bean 实例)、remove(销毁 Bean 实例)等。原创 2024-09-10 19:50:13 · 777 阅读 · 0 评论 -
【Java面试】第七天
这个类,而销毁主要依赖。原创 2024-09-09 17:15:07 · 2079 阅读 · 0 评论 -
【Java面试】第六天
死锁是指两个或两个以上的进程(或线程)在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。比如:丈母娘要求先买房才能结婚,但是女婿说先结婚买房并发(Concurrent),在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行。那么,操作系统是如何实现这种并发的呢?原创 2024-09-08 19:19:45 · 1005 阅读 · 0 评论 -
【Java面试】第五天
🌟个人主页:时间会证明一切.目录如何将集合编程线程安全的创建线程有几种方式Runnable和Callable区别FutureFutureTask和Callable示例什么是ThreadLocal,如何实现的ThreadLocal的实现原理如何将集合编程线程安全的在调用集合前,使用synchronized或者ReentrantLock对代码加锁(读写都要加锁)public class SynchronizedCollectionExample { private List<I原创 2024-09-07 17:12:26 · 661 阅读 · 0 评论 -
【Java面试】第四天
顾名思义,BitSet是位集合,通常来说,位集合的底层的数据结构是一个bit数组,如果第n位为1,则表明数字n在该数组中。举个例子,如果调用BitSet#set(10),业务语意是把10放到BitSet中,内部的操作则是通过把二进制的第十位(低位)置为1。这样,就代表BitSet中包含了10这个数字。原创 2024-09-06 19:06:49 · 769 阅读 · 0 评论 -
【Java面试】第三天
说简单点,就是 定义其他注解的注解。比如Override这个注解,就不是一个元注解。而是通过元注解定义出来的。这里面的@Target,@Retention就是元注解。元注解有四个:@Target(表示该注解可以用于什么地方)、@Retention(表示在什么级别保存该注解信息)、@Documented(将此注解包含在javadoc中)、@Inherited(允许子类继承父类中的注解)。一般@Target是被用的最多的。原创 2024-09-05 19:21:39 · 676 阅读 · 0 评论 -
【Java面试】第二天
Java泛型(generics) 是JDK 5中引入的一个新特性,允许在定义类和接口的时候使用类型参数(type parameter)。声明的类型参数在使用时用具体的类型来替换。泛型最主要的应用是在JDK 5中的新集合类框架中。方便:可以提高代码的复用性。以List接口为例,我们可以将String、Integer等类型放入List中,如不用泛型,存放String类型要写一个List接口,存放Integer要写另外一个List接口,泛型可以很好的解决这个问题。原创 2024-09-04 15:48:35 · 867 阅读 · 0 评论 -
【Java面试】第一天
一般在实际开发中,我们会先把接口暴露给外部,然后在业务代码中实现接口。如果多个实现类中有相同可复用的代码,则在接口和实现类中间加一层抽象类,将公用部分代码抽出到抽象类中。可以参考下模板方法模式,这是一个很好的理解接口、抽象类和实现类之间关系的设计模式。原创 2024-09-03 16:47:37 · 514 阅读 · 0 评论